Продвинутое

Умные эвристики

Как устроены самые хитрые правила — от утечки локали до бюджетов TTFB.
  • i18n:no-locale-leak — двухслойный: (1) html lang против локали из префикса URL; (2) язык самого текста — клон body без script/style/noscript/template → доля кириллицы или арабской письменности >50% (кириллица → ru/uk/be/bg/sr/mk/kk, арабская → ar/fa/ur) либо стоп-словные профили en/de/fr/es/it (минимум 40 букв, лучший скор ≥3 и ≥2× второго места; неизвестные локали не флагаются). Ловит русский текст под /en/ даже при правильном lang.
  • images:no-lazy-above-fold — Playwright присылает src картинок, реально попавших во вьюпорт (1280×720); матчинг поштучный: lazy-дубликат той же картинки в футере не флагается. Без данных — фоллбэк «первые 3 img».
  • http:ttfb-budget — p75 по группам: явные budgets: {'/listing/**': 500} матчатся route-pattern'ом, остальные страницы группируются автоматически (сегменты с id/uuid → *); авто-группа предупреждает только при ≥2 сэмплах — одиночный холодный старт не сигнал.
  • http:no-soft-404 — HEAD на заведомо несуществующий путь: 200 → сайт маскирует 404; плюс паттерны «не найдено» в тексте при статусе 200.
  • indexability:ssr-content — сравнение ssrHtml и html после гидрации: H1 только на клиенте или <50% текста в SSR → ошибка индексации.