Работает ли сайт вообще
siteОтвечает ли главная вообще. Если нет, это не дефект, а остановка: сайт нужно поднимать заново.
| Код | Что проверяем | Важность | Вес |
|---|
site.unreachable | DNS не резолвится, соединение отклонено, цикл редиректов | Сайт не работает | 100 |
site.dead-status | главная отдаёт код ≥ 400; также финальный 3xx без пригодного Location | Сайт не работает | 100 |
site.broken-response | сервер ответил, но не страницей | Сайт не работает | 100 |
domain.lost | заглушка или переадресация на чужой ресурс | Сайт не работает | 100 |
domain.redirects-away | домен уводит на сайт другой организации — редиректом или meta refresh | Средне | 9 |
domain.apex-unresolved | apex без A-записи при живом www | Средне | 9 |
site.unreachable-from-vantage | таймаут при замере из ЕС | Средне | 9 |
site.blocked-from-vantage | коды 403, 429, 451, 503 при замере из ЕС | Средне | 9 |
site.broken-frame | фрейм главной отдаёт код ≥ 400 или не отвечает, остальная страница работает. Если замер из ЕС, при таймауте и кодах 403, 429, 451, 503 — Средне, 9 | Критично | 22 |
site.error-page-200 | код < 400, а в <title> или первом <h1> маркер ошибки («404», «страница не найдена», «internal server error», «forbidden»), текста меньше 1500 символов, заглушки и защиты от ботов нет | Средне | 9 |
site.broken-encoding | тело дочитано целиком, но объявленное сжатие не распаковывается | Критично | 22 |
Входные адреса
entryОткрывается ли сайт по старому адресу http:// так же, как по https://.
| Код | Что проверяем | Важность | Вес |
|---|
entry.http-broken | http:// отдал код ≥ 400, https:// того же хоста отдал страницу | Средне | 9 |
entry.http-closed | на http:// отказ соединения (connect), https:// отдал страницу | Низко | 2 |
Цепочка переадресаций
redirectsСколько переадресаций до главной и не теряется ли по дороге защищённое соединение.
| Код | Что проверяем | Важность | Вес |
|---|
redirect.too-long | цепочка не закончилась за 6 прыжков (TOO_MANY_REDIRECTS) | Средне | 9 |
redirect.long-chain | больше 2 прыжков до главной; в уликах каждый прыжок и суммарное ожидание | Низко | 2 |
redirect.downgrade | какой-то прыжок ведёт с https:// на http:// | Средне | 9 |
Адаптивность
mobileПодстраивается ли страница под экран телефона и даёт ли его увеличить.
| Код | Что проверяем | Важность | Вес |
|---|
mobile.no-viewport | нет <meta name="viewport"> | Критично | 20 |
mobile.fixed-viewport | width=<число> вместо device-width | Средне | 9 |
mobile.no-zoom | user-scalable=no или maximum-scale=1 | Низко | 2 |
Сертификат и HTTPS
tlsСертификат, срок его действия и переход на https://. Сертификат российского удостоверяющего центра из ЕС выглядит недействительным, поэтому такая находка помечается как непроверяемая, а не как ошибка.
| Код | Что проверяем | Важность | Вес |
|---|
tls.invalid | проверка доверия не прошла | Критично | 22 |
tls.expired | срок действия сертификата истёк | Критично | 22 |
tls.unverifiable-from-vantage | цепочка не проверяется с текущей точки замера | Средне | 9 |
tls.expiring | осталось < 7 дн. / < 21 дн.; справочно — сертификат выдан не больше чем на 100 дней и продлевается автоматически | Критично / Средне / Справочно | 22 / 9 / 0 |
https.no-redirect | HTTPS исправен и отвечает, но http:// отдаёт сайт и не переадресует / то же, но https:// присылает действующий HSTS | Средне / Низко | 9 / 2 |
https.broken | сертификат исправен, но по https:// страница не отдаётся | Критично | 22 |
https.absent | на 443-м порту никто не отвечает, замер из России | Критично | 22 |
https.unverifiable-from-vantage | сайт отвечает по http://, а до 443-го не достучались | Средне | 9 |
tls.hop-invalid | негодный или истёкший сертификат промежуточного https-хоста цепочки переадресаций | Критично | 22 |
tls.hop-unverifiable-from-vantage | цепочка доверия промежуточного хоста не проверяется при замере из ЕС | Средне | 9 |
Внешние зависимости
depsВнешние сервисы на странице. Важность зависит не от адреса сервиса, а от способа подключения: таблица стилей в <head> держит отрисовку, пока не загрузится, а preconnect к тому же адресу ничего не ломает.
| Код | Что проверяем | Важность |
|---|
res.ajax-googleapis | библиотеки с ajax.googleapis.com | Критично при блокирующем подключении, иначе Средне |
res.recaptcha | reCAPTCHA (google.com/recaptcha, recaptcha.net, gstatic.com/recaptcha) | Критично всегда |
res.google-fonts-css | fonts.googleapis.com | Критично в <head>, иначе Средне |
res.google-maps | maps.googleapis.com, maps.google.* | Критично |
res.hcaptcha | hcaptcha.com | Критично |
res.google-fonts-files | fonts.gstatic.com | Средне |
res.typekit | Adobe Fonts (use.typekit.net, p.typekit.net) | Средне |
res.video-embed | YouTube / Vimeo | Средне для <iframe>, иначе Низко |
res.foreign-cdn | cdnjs, jsDelivr, unpkg, bootstrapcdn, code.jquery.com | Средне при блокирующем подключении, иначе Низко |
res.meta-pixel | connect.facebook.net, facebook.com/tr | Средне при блокирующем, иначе Низко |
res.google-analytics | GTM, Google Analytics | Средне при блокирующем, иначе Низко |
deps.foreign-unknown | прочие зарубежные origin | Справочно |
Смешанное содержимое
mixedНе грузит ли защищённая страница что-то по незащищённому http://.
| Код | Что проверяем | Важность | Вес |
|---|
mixed.active-content | скрипт, стиль или iframe по http:// на https-странице | Критично | 22 |
mixed.passive-content | картинки или медиа по http:// на https-странице; свои картинки — справочно, вес 0 | Низко | 2 |
mixed.upgraded-by-policy | адреса http:// есть, но страница объявляет upgrade-insecure-requests | Справочно | 0 |
Видимость в поиске
seoНе закрыта ли страница от поисковиков и не отдаёт ли она своё место в выдаче чужому адресу.
| Код | Что проверяем | Важность | Вес |
|---|
seo.noindex | noindex в <meta name="robots"> или заголовке X-Robots-Tag для всех / только для названных роботов (X-Robots-Tag: googlebot: noindex) | Критично / Средне | 22 / 9 |
seo.canonical-elsewhere | <link rel="canonical"> указывает на другой регистрируемый домен | Средне | 9 |
seo.canonical-http | страница открыта по https://, а canonical ведёт на http:// | Низко | 2 |
Возраст разметки
staleПризнаки старой вёрстки: устаревший doctype, таблицы вместо сетки, старая jQuery, давний год у ©.
| Код | Что проверяем | Важность | Вес |
|---|
stale.jquery-legacy | jQuery ветки 1.x или 2.x; в уликах — CVE для найденной версии | Средне | 9 |
stale.doctype | doctype не HTML5 | Средне | 9 |
stale.no-doctype | doctype отсутствует — браузер в quirks mode | Средне | 9 |
stale.layout-tables | ≥ 3 таблиц вёрстки | Средне | 9 |
stale.no-charset | кодировка не объявлена | Низко | 2 |
stale.copyright | год возле «©» отстаёт на ≥ 2 лет | Низко | 2 |
stale.frameset | главная собрана из фреймов (<frameset>) | Средне | 9 |
Признаки риска по 152-ФЗ
legalЕсть ли у формы, которая собирает почту или телефон, ссылка на политику и согласие. Это признак риска для проверки юристом, а не юридический вывод.
| Код | Что проверяем | Важность | Вес |
|---|
legal.no-privacy-policy | не найдена ссылка на политику обработки ПД | Средне | 9 |
legal.form-without-consent | форма без чекбокса согласия | Средне | 9 |
Вес и скорость
weightВес HTML главной, число узлов разметки и время до первого байта.
| Код | Что проверяем | Важность | Вес |
|---|
weight.heavy-html | HTML главной больше 500 КБ | Средне | 9 |
weight.bloated-dom | больше 1500 узлов разметки (порог Lighthouse) | Низко | 2 |
weight.slow-ttfb | время до первого байта больше 2500 мс | Средне | 9 |
Ответ сервера как таковой
httpПравильно ли сервер описывает свой ответ: тип содержимого, сжатие, флаги cookie.
| Код | Что проверяем | Важность | Вес |
|---|
http.content-type-mismatch | в теле HTML, а заявлен text/plain / заявлен HTML, а в теле JSON, PDF, XML или бинарь | Критично / Низко | 22 / 2 |
http.no-compression | HTML ≥ 20 КБ после распаковки, а Content-Encoding в ответе нет | Низко | 2 |
http.cookie-without-secure | https-страница ставит cookie без флага Secure | Низко | 2 |
Google PageSpeed Insights
psiОценки Google PageSpeed Insights для главной: скорость, готовность к поиску, доступность.
| Код | Что проверяем | Важность | Вес |
|---|
psi.field-lcp | полевой LCP выше 4 с / выше 2,5 с | Критично / Средне | 22 / 9 |
psi.lab-performance | оценка производительности ниже 50 | Средне | 9 |
psi.seo | оценка SEO-готовности ниже 80 | Средне | 9 |
psi.accessibility | оценка доступности ниже 70 | Низко | 2 |
Метрики реальных посетителей
cruxСкорость у реальных посетителей по данным Chrome: первый экран, отклик на нажатие, сдвиги вёрстки.
| Код | Что проверяем | Важность | Вес |
|---|
crux.lcp | первый экран дольше 4 с / 2,5 с | Критично / Средне | 22 / 9 |
crux.inp | отклик дольше 500 мс / 200 мс | Критично / Средне | 22 / 9 |
crux.cls | смещение вёрстки выше 0,25 / 0,1 | Средне / Низко | 9 / 2 |
Заголовки безопасности
securityЗаголовки безопасности по оценке Mozilla Observatory.
| Код | Что проверяем | Важность | Вес |
|---|
security.headers | оценка Mozilla Observatory D или F / C | Средне / Низко | 9 / 2 |
Базовая гигиена
contentБазовая гигиена: заголовок вкладки, язык страницы, контакты, счётчик посещаемости.
| Код | Что проверяем | Важность | Вес |
|---|
content.weak-title | <title> пустой или короче 10 символов | Низко | 2 |
content.no-lang | не указан lang у <html> | Низко | 2 |
content.no-contacts | на главной ни телефона, ни почты, ни формы заявки | Средне | 9 |
content.no-analytics | не найден счётчик посещаемости (Метрика, GA/GTM, top.mail.ru) | Справочно | 0 |
Доступность
a11yПодписи к картинкам для тех, кто страницу не видит, а слушает.
| Код | Что проверяем | Важность | Вес |
|---|
a11y.img-alt | больше половины из ≥ 5 картинок без alt | Низко | 2 |
Как связаться с главной
reachМожно ли связаться с первого экрана и позвонить с телефона одним касанием.
| Код | Что проверяем | Важность | Вес |
|---|
reach.phone-not-tappable | на телефоне номер написан видимым текстом, а ссылки tel: в разметке нет ни одной, даже в меню | Средне | 9 |
reach.no-contact-first-screen | на первом экране монитора или телефона нет ни номера, ни ссылки на звонок, почту или мессенджер, ни формы, ни кнопки заявки | Низко | 2 |
Что ещё видно на главной
pageЧто видно глазами: не сломаны ли картинки, не ездит ли страница вбок на телефоне, вставляется ли текст в поля формы, есть ли значок вкладки и картинка у ссылки в мессенджере. Форму не отправляем.
| Код | Что проверяем | Важность | Вес |
|---|
page.broken-image | в снятой полосе картинка, которую браузер запросил и не получил (ошибка сети или код ≥ 400); «средне» — если это логотип или первый экран | Средне / Низко | 9 / 2 |
page.distorted-image | картинка от 40 px по каждой стороне показана с object-fit: fill и пропорциями, отличными от файла на 10% и больше | Низко | 2 |
page.blurry-image | картинка шириной от 200 px показана в 1,5 раза крупнее файла и больше; без srcset и <picture> | Низко | 2 |
page.horizontal-scroll | на телефоне документ шире окна раскладки больше чем на 8 px, overflow-x у html и body листать не мешает, страница с работающим meta viewport | Низко | 2 |
page.cramped-links | на телефоне от трёх ссылок и кнопок меньше 24 px, рядом с которыми в круге 24 px есть другая цель (WCAG 2.5.8); ссылки внутри предложения и управление слайдером не считаются | Низко | 2 |
page.paste-blocked | поле ввода отменяет вставку, и скрипт сам ничего не вставил | Низко | 2 |
page.no-favicon | значок вкладки не открылся картинкой ни на одном устройстве: объявленные в link rel=icon, а без них — /favicon.ico | Низко | 2 |
page.no-link-preview | в разметке нет og:image, twitter:image и link rel=image_src | Низко | 2 |