Продвинутое
Умные эвристики
Как устроены самые хитрые правила — от утечки локали до бюджетов 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 → ошибка индексации.