HTTP-коды отвечают на простой вопрос: что сервер сделал с запросом. Главные семейства: 2xx (успех), 3xx (редирект), 4xx (ошибка клиента), 5xx (ошибка сервера).
Знаковые для SEO: 200 (страница в норме), 301 (постоянный редирект), 302 (временный), 404 (не найдено), 410 (удалено навсегда), 500 (ошибка сервера), 503 (временная недоступность). Подмена кодов — частый источник проблем индексации.
| Код | Название | Что означает / когда отдавать |
|---|---|---|
| 200 | OK | Страница есть и отдаётся нормально |
| 301 | Moved Permanently | Постоянный редирект — старый URL переехал навсегда. Передаёт ≈90% ссылочного веса |
| 302 | Found | Временный редирект. Старый URL остаётся в индексе |
| 304 | Not Modified | Контент не изменился, используй кэш. Экономит трафик |
| 403 | Forbidden | Доступ запрещён. Часто из-за неправильных прав или WAF |
| 404 | Not Found | Страница не существует. Из индекса выпадает за ≈4–8 недель |
| 410 | Gone | Удалён намеренно и навсегда. Выпадает из индекса быстрее, чем 404 |
| 500 | Internal Server Error | Ошибка сервера. Сильно бьёт по индексации и поведенческим |
| 503 | Service Unavailable | Временно недоступно (например, на время техработ). Робот вернётся позже |
Страница отдаёт 200, но контент пустой → soft 404. Поисковик увидит пустую страницу и снизит её в выдаче.
Самая дорогая ошибка с кодами — отдавать удалённым страницам 200 вместо 404 или 301. Тогда поисковик держит в индексе пустышки и тратит на них краулинговый бюджет, который мог уйти на нужные URL. Проверять коды массово удобно screaming frog или netpeak spider: выгрузите весь сайт и отфильтруйте по столбцу Status Code — все 200 с тонким контентом, 302 на месте постоянных переездов и цепочки редиректов (301 → 301 → 200) видны сразу. В Яндекс.Вебмастере те же проблемы лежат в разделе «Страницы в поиске» и «Исключённые».
При плановых работах отдавайте 503 с заголовком Retry-After, а не 200 с заглушкой и не 404 — это сигнал «зайди позже», и робот не выкинет страницы из индекса. Для каноникализации код вторичен: canonical — это подсказка, а 301 — жёсткая директива; если страница реально переехала, склеивать дубли нужно редиректом, а rel=canonical оставить для параметрических копий. Разница Яндекса и Google тут в скорости: Google по 410 (удалено навсегда) выбрасывает URL из индекса заметно быстрее, чем по 404, тогда как Яндекс на оба кода реагирует примерно одинаково и не торопясь.
200 — страница в норме и пригодна к индексации, если контент не пустой.
301 склеивает и передаёт вес, 302 — временный и вес не переносит.
404/410 — страницы нет, 500/503 — сбой или плановые работы на сервере.
Интернет-магазин снял с продажи 1 200 товаров и оставил их URL отдавать 200 с текстом «нет в наличии». Через два месяца в Яндекс.Вебмастере доля страниц низкого качества выросла, а краулер стал реже заходить на новые карточки. После замены на 410 для снятых навсегда и 301 на аналоги для временно отсутствующих индекс очистился за 3–4 недели, обход живых страниц участился.