Технические и контентные ошибки сайтов: заголовки, рейтинг, юрлица (часть 12)
На странице
- Технические и контентные ошибки сайтов: заголовки, рейтинг, юрлица — часть 12 из 18
- Утверждения темы
- Фрагменты корпуса темы
- [LG-023-F013] — LG-023, фрагмент 02, строки 95-106, тема «10. Sitemap отстает от опубликованной структуры»
- 10. Sitemap отстает от опубликованной структуры
- [LG-023-F015] — LG-023, фрагмент 03, строки 1-6, тема «Раздел 1»
- [LG-023-F017] — LG-023, фрагмент 03, строки 19-38, тема «13. Заголовки есть, но их уровни использованы непоследовательно»
- 13. Заголовки есть, но их уровни использованы непоследовательно
- [LG-023-F018] — LG-023, фрагмент 03, строки 39-56, тема «14. На одной важной странице не задан description; массовых дублей метатегов нет»
- 14. На одной важной странице не задан description; массовых дублей метатегов нет
- [LG-023-F021] — LG-023, фрагмент 03, строки 81-99, тема «17. HTTP нормализуется не для всех страниц»
- 17. HTTP нормализуется не для всех страниц
- [LG-023-F022] — LG-023, фрагмент 03, строки 100-109, тема «18. Кэш и время ответа: что реально измерено»
- 18. Кэш и время ответа: что реально измерено
- [LG-023-F024] — LG-023, фрагмент 04, строки 5-36, тема «19. DOM и объем CSS — резерв оптимизации с измеренными границами»
- 19. DOM и объем CSS — резерв оптимизации с измеренными границами
- [LG-023-F027] — LG-023, фрагмент 04, строки 92-97, тема «Как завершить демонстрацию»
- Как завершить демонстрацию
Технические и контентные ошибки сайтов: заголовки, рейтинг, юрлица — часть 12 из 18
Назначение и границы: Документ входит в блок G библиотеки материалов «Содействие» (Гомель). Тематический охват: Технические и контентные ошибки сайтов: заголовки, рейтинг, юрлица. Ответственная линия: корпус. Статус материала: есть проверенные пруфы — фрагментов 116, утверждений 628, проверенных 39.
Утверждения темы
- [факт] [LG-023-C108]
- [закон] [LG-023-C109] [Пруф: download/legacy/research/codex-astra-audit/04-ssylki-bloki-i-vosproizvedenie.md]
- [факт] [LG-023-C110]
- [факт] [LG-023-C111]
- [факт] [LG-023-C112]
- [дата] [LG-023-C113]
- [факт] [LG-023-C114]
- [факт] [LG-023-C115]
- [факт] [LG-023-C116]
- [факт] [LG-023-C121]
- [факт] [LG-023-C122]
- [факт] [LG-023-C124]
- [факт] [LG-023-C125]
- [дата] [LG-023-C135]
- [закон] [LG-023-C136] [Пруф: sodeystvie.by/ritualnye-uslugi/pominki]
- [факт] [LG-023-C137]
- [факт] [LG-023-C139]
- [факт] [LG-023-C140]
- [факт] [LG-023-C141]
- [факт] [LG-023-C142]
- [дата] [LG-023-C143]
- мнение [LG-023-C144]
- [факт] [LG-023-C145]
- [факт] [LG-023-C162]
- [факт] [LG-023-C163]
- [факт] [LG-023-C165]
- [закон] [LG-023-C166] [Пруф: sodeystvie.by]
- [дата] [LG-023-C167]
- [факт] [LG-023-C168]
- [факт] [LG-023-C169]
- [закон] [LG-023-C170] [Пруф: download/legacy/research/codex-astra-audit/audit-2026-09-18/content/findings.md]
- [факт] [LG-023-C171]
- [факт] [LG-023-C172]
- [факт] [LG-023-C173]
- [число] [LG-023-C174] [Пруф: download/legacy/research/codex-astra-audit/04-ssylki-bloki-i-vosproizvedenie.md]
- [факт] [LG-023-C175]
- [факт] [LG-023-C176]
- [факт] [LG-023-C177]
- [факт] [LG-023-C178]
- [факт] [LG-023-C183]
- [факт] [LG-023-C184]
- [число] [LG-023-C185] [Пруф: download/legacy/research/codex-astra-audit/04-ssylki-bloki-i-vosproizvedenie.md]
- [число] [LG-023-C186] [Пруф: download/legacy/research/codex-astra-audit/04-ssylki-bloki-i-vosproizvedenie.md]
- [факт] [LG-023-C187]
- [факт] [LG-023-C188]
- [факт] [LG-023-C190]
- [факт] [LG-023-C191]
- [факт] [LG-023-C202]
- [факт] [LG-023-C203]
- [факт] [LG-023-C204]
- мнение [LG-023-C205]
- [факт] [LG-023-C206]
Фрагменты корпуса темы
[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 должна оставаться отделенной от проверки неизмененного сайта.