К содержанию
Содействиебиблиотека
GСайты и продуктG01-0401 · Раздел 01

Технические и контентные ошибки сайтов: заголовки, рейтинг, юрлица (часть 12)

Обновлён
10.11.2026
Редактор
gemini-3.8
Источников
1
Утверждений
52
Объём
14 889 из 15 000 знаков
На странице
  1. Технические и контентные ошибки сайтов: заголовки, рейтинг, юрлица — часть 12 из 18
  2. Утверждения темы
  3. Фрагменты корпуса темы
  4. [LG-023-F013] — LG-023, фрагмент 02, строки 95-106, тема «10. Sitemap отстает от опубликованной структуры»
  5. 10. Sitemap отстает от опубликованной структуры
  6. [LG-023-F015] — LG-023, фрагмент 03, строки 1-6, тема «Раздел 1»
  7. [LG-023-F017] — LG-023, фрагмент 03, строки 19-38, тема «13. Заголовки есть, но их уровни использованы непоследовательно»
  8. 13. Заголовки есть, но их уровни использованы непоследовательно
  9. [LG-023-F018] — LG-023, фрагмент 03, строки 39-56, тема «14. На одной важной странице не задан description; массовых дублей метатегов нет»
  10. 14. На одной важной странице не задан description; массовых дублей метатегов нет
  11. [LG-023-F021] — LG-023, фрагмент 03, строки 81-99, тема «17. HTTP нормализуется не для всех страниц»
  12. 17. HTTP нормализуется не для всех страниц
  13. [LG-023-F022] — LG-023, фрагмент 03, строки 100-109, тема «18. Кэш и время ответа: что реально измерено»
  14. 18. Кэш и время ответа: что реально измерено
  15. [LG-023-F024] — LG-023, фрагмент 04, строки 5-36, тема «19. DOM и объем CSS — резерв оптимизации с измеренными границами»
  16. 19. DOM и объем CSS — резерв оптимизации с измеренными границами
  17. [LG-023-F027] — LG-023, фрагмент 04, строки 92-97, тема «Как завершить демонстрацию»
  18. Как завершить демонстрацию

Технические и контентные ошибки сайтов: заголовки, рейтинг, юрлица — часть 12 из 18

Назначение и границы: Документ входит в блок G библиотеки материалов «Содействие» (Гомель). Тематический охват: Технические и контентные ошибки сайтов: заголовки, рейтинг, юрлица. Ответственная линия: корпус. Статус материала: есть проверенные пруфы — фрагментов 116, утверждений 628, проверенных 39.

Утверждения темы

Фрагменты корпуса темы

[LG-023-F013] — LG-023, фрагмент 02, строки 95-106, тема «10. Sitemap отстает от опубликованной структуры»

10. Sitemap отстает от опубликованной структуры

URL: robots.txt, sitemap.xml.

Как показать: открыть XML как текст, найти ritualnye-uslugi-v- и /2026/07/24/; сравнить с ссылками на региональные страницы с главной и статьи из информационного раздела.

Зафиксированный факт: robots ссылается на действующую sitemap.xml, оба ресурса отвечают 200. В карте 40 URL; нет четырех региональных страниц, четырех июльских статей и карточки венка. При этом включены семь категорий без товаров.

Доказательства: сохраненная карта, robots, CSV.

Формулировка: «Карта сайта не полностью отражает текущие полезные посадочные. Ее нужно автоматически поддерживать по утвержденной структуре». Отсутствие в sitemap не означает отсутствие в индексе: ссылки на эти страницы уже существуют.

[LG-023-F015] — LG-023, фрагмент 03, строки 1-6, тема «Раздел 1»

Зафиксированный факт: демоархив — 200, index, canonical на себя и «Ничего не найдено». https://sodeystvie.by/spasibo/ — 200, index, canonical на себя и «Спасибо за заявку!». Отдельно автор admin, рубрика и информационный раздел содержат одинаковый основной список статей, оставаясь отдельными index/self-canonical URL.

Доказательства: raw демоархива, raw страницы спасибо, метаданные дополнительных страниц.

Формулировка: «Нужно явно определить, какие типы страниц должны быть поисковыми посадочными, а какие — служебными». Доступность и index не равны доказанному нахождению в индексе; число 800 из этого не выводится.

[LG-023-F017] — LG-023, фрагмент 03, строки 19-38, тема «13. Заголовки есть, но их уровни использованы непоследовательно»

13. Заголовки есть, но их уровни использованы непоследовательно

URL: главная, документы, пособие, что делать.

console.table(
  [...document.querySelectorAll('h1,h2,h3,h4,h5,h6')].map((heading, index) => ({
    order: index + 1,
    level: heading.tagName,
    text: heading.textContent.replace(/\s+/g, ' ').trim()
  }))
);

Зафиксированный факт: на главной H1 присутствует, но в исходном DOM это 29-й heading после H4/H3/H2. В статье о документах 10 H1, о пособии — 11, «что делать» — 5: в H1 помещены также подразделы. В информационном разделе H1 нет. Несколько H1 не объявляются автоматической причиной штрафа.

Доказательства: CSV, HTML документов, HTML пособия, snapshots.headings в браузерном JSON.

Формулировка: «Предлагаю привести заголовки к смысловой иерархии: название страницы и уровни ее разделов, независимо от выбранного размера шрифта».

[LG-023-F018] — LG-023, фрагмент 03, строки 39-56, тема «14. На одной важной странице не задан description; массовых дублей метатегов нет»

14. На одной важной странице не задан description; массовых дублей метатегов нет

URL: Благоустройство.

({
  title: document.title,
  descriptions: [...document.querySelectorAll('meta[name="description"]')].map(meta => meta.content),
  h1: [...document.querySelectorAll('h1')].map(heading => heading.textContent.trim())
})

Зафиксированный факт: массив descriptions на этом URL пуст. В 44 целевых страницах пустых title — 0, дублей title — 0, дублей непустого description — 0; отсутствующий description — один. У двух разных URL благоустройства одинаковый H1, но разные title и основной текст.

Доказательства: HTML страницы, статистика.

Формулировка: «Здесь стоит добавить описание страницы и проверить разграничение двух посадочных по благоустройству». Не обещать, что Google обязательно возьмет заданный description в сниппет; отсутствие description не блокирует индексацию.

[LG-023-F021] — LG-023, фрагмент 03, строки 81-99, тема «17. HTTP нормализуется не для всех страниц»

17. HTTP нормализуется не для всех страниц

URL: http://sodeystvie.by/ritualnye-uslugi/kremaciya/, http://sodeystvie.by/kontakty-2/, http://sodeystvie.by/ritualnye-uslugi-v-vetke/.

Браузер может сам предпочесть HTTPS, поэтому для этого наблюдения точнее HTTP-клиент. Команда ниже выполняет обычный GET, печатает заголовки, не следует редиректу, не использует cookies и игнорирует пользовательский .curlrc:

curl -q --noproxy '*' -sS --max-time 20 \
  -A 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/140.0.0.0 Safari/537.36' \
  -D - -o /dev/null \
  'http://sodeystvie.by/ritualnye-uslugi/kremaciya/'

Зафиксированный факт: внутренние URL отвечают 200 по HTTP без редиректа. Для главной HTTP — 301 на HTTPS. Вариант http://www.sodeystvie.by/ritualnye-uslugi/kremaciya/ переводится на non-www HTTP; https://www... — на правильный HTTPS. При этом canonical внутренней HTTP-страницы уже указывает HTTPS.

Доказательства: проверка вариантов домена, подтверждение контактов и Ветки.

Формулировка: «Canonical настроен, но перенаправление HTTP → HTTPS неполное. Нужна единая серверная нормализация». Не называть это доказательством неуправляемых поисковых дублей.

[LG-023-F022] — LG-023, фрагмент 03, строки 100-109, тема «18. Кэш и время ответа: что реально измерено»

18. Кэш и время ответа: что реально измерено

URL: главная и ее статические файлы; пример — CSS, указанный в link[rel="stylesheet"].

Как показать: DevTools → Network → CSS → Headers, либо открыть сохраненные GET/HEAD-заголовки. Для подтверждения 304 смотреть результаты условного GET с ETag, а не судить по наличию плагина. Размер распакованного файла не равен переданным по сети байтам.

Зафиксированный факт: у 10 статических ресурсов Cache-Control: max-age=8380800 (97 дней), Expires, ETag и Last-Modified; все 10 условных GET вернули 304. HTML показал LiteSpeed cache hit и Brotli. У сжатых CSS/JS/SVG нет Vary: Accept-Encoding, хотя CSS для identity отличается — небольшая настройка согласованности промежуточных кэшей, а не доказанная поломка у посетителей.

Пять прямых последовательных замеров до получения заголовков дали медианы: главная 94,9 мс, кремация 94,8 мс, памятники 95,1 мс, Ветка 94,5 мс. Это одна точка, одна сессия и прогретый кэш, не полевая скорость аудитории.

[LG-023-F024] — LG-023, фрагмент 04, строки 5-36, тема «19. DOM и объем CSS — резерв оптимизации с измеренными границами»

19. DOM и объем CSS — резерв оптимизации с измеренными границами

URL: главная.

(() => {
  const elements = [...document.querySelectorAll('*')];
  let maxDepth = 0;
  for (const element of elements) {
    let depth = 0;
    for (let node = element; node; node = node.parentElement) depth++;
    maxDepth = Math.max(maxDepth, depth);
  }
  const navigation = performance.getEntriesByType('navigation')[0];
  return {
    elements: elements.length,
    maxDepth,
    responseStartMs: navigation?.responseStart,
    encodedHtmlBytes: navigation?.encodedBodySize,
    decodedHtmlBytes: navigation?.decodedBodySize
  };
})()

Зафиксированный факт: до взаимодействия 1365 элементов, после 1423, максимальная глубина 23; iframe/shadow DOM отдельно не учитывались. Главный CSS — 1 108 703 распакованных байта, около 176 381 сетевого байта в мобильном сценарии. Coverage «настольная главная + окно» использовал 11,78% символов CSS. Остальные 88,22% не использованы в этом сценарии, а не гарантированно лишние для всего сайта.

При этом в двух обычных мобильных лабораторных прогонах responseStart — 319,6/246,2 мс, наблюдавшийся LCP до первого действия — 712/564 мс. Плохие LCP/TTFB в этих условиях не подтверждены; Lighthouse/PageSpeed-балл не получен, API вернул 429.

Доказательства: первый прогон, повтор, Coverage, desktop.cssCoverage; разбор метрик.

Формулировка: «Есть измеримый объем универсальных стилей и сложность DOM, которые можно уменьшить. Приоритет — восстановить поведение интерфейса и проверить выигрыш, а не объявлять сайт медленным по одному размеру файла».

[LG-023-F027] — LG-023, фрагмент 04, строки 92-97, тема «Как завершить демонстрацию»

Как завершить демонстрацию

«Здесь достаточно конкретики для постановки задач: воспроизводимые действия, адреса и критерии проверки после исправления. Часть базовых вещей уже работает — сервер быстро отвечает, кэш настроен, основные метатеги и canonical есть. Предлагаю обсуждать, кто и в какой срок доведет эти сценарии до приемки, а не спорить о профессионализме команды или приписывать недостатки самой CMS».

После исправлений сохранять новый датированный снимок рядом с исходным, а не перезаписывать доказательства 18 сентября. Присутствующие в папке автоматизированные браузерные скрипты при обычном запуске перезаписывают одноименные JSON; для повторной проверки сначала следует выбрать новые выходные имена. Локальная диагностическая интервенция из interaction-check.cjs должна оставаться отделенной от проверки неизмененного сайта.