HTTP-коды

Статусы ответа сервера

Трёхзначные коды, которыми сервер отвечает на запрос.

HTTP-коды отвечают на простой вопрос: что сервер сделал с запросом. Главные семейства: 2xx (успех), 3xx (редирект), 4xx (ошибка клиента), 5xx (ошибка сервера).

Знаковые для SEO: 200 (страница в норме), 301 (постоянный редирект), 302 (временный), 404 (не найдено), 410 (удалено навсегда), 500 (ошибка сервера), 503 (временная недоступность). Подмена кодов — частый источник проблем индексации.

КодНазваниеЧто означает / когда отдавать
200OKСтраница есть и отдаётся нормально
301Moved PermanentlyПостоянный редирект — старый URL переехал навсегда. Передаёт ≈90% ссылочного веса
302FoundВременный редирект. Старый URL остаётся в индексе
304Not ModifiedКонтент не изменился, используй кэш. Экономит трафик
403ForbiddenДоступ запрещён. Часто из-за неправильных прав или WAF
404Not FoundСтраница не существует. Из индекса выпадает за ≈4–8 недель
410GoneУдалён намеренно и навсегда. Выпадает из индекса быстрее, чем 404
500Internal Server ErrorОшибка сервера. Сильно бьёт по индексации и поведенческим
503Service UnavailableВременно недоступно (например, на время техработ). Робот вернётся позже
Основные HTTP-статусы и их значения. Зелёные — OK, фиолетовые — редиректы, терракотовые — ошибки
Пример из практики

Страница отдаёт 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, тогда как Яндекс на оба кода реагирует примерно одинаково и не торопясь.

2xx
Запрос принят

200 — страница в норме и пригодна к индексации, если контент не пустой.

3xx
Перенаправление

301 склеивает и передаёт вес, 302 — временный и вес не переносит.

4xx / 5xx
Ошибка

404/410 — страницы нет, 500/503 — сбой или плановые работы на сервере.

Семейство кода — это короткий вердикт сервера, который читает и браузер, и поисковый робот.
Пример

Интернет-магазин снял с продажи 1 200 товаров и оставил их URL отдавать 200 с текстом «нет в наличии». Через два месяца в Яндекс.Вебмастере доля страниц низкого качества выросла, а краулер стал реже заходить на новые карточки. После замены на 410 для снятых навсегда и 301 на аналоги для временно отсутствующих индекс очистился за 3–4 недели, обход живых страниц участился.