Коды ответа сервера: что значат 200, 301, 404, 500 и другие
Коды ответа сервера — трёхзначные числа, с которых начинается каждый ответ сайта браузеру и поисковому роботу. Посетитель их обычно не видит, а робот смотрит на них в первую очередь: от кода зависит, попадёт ли страница в поиск, останется ли там и куда перейдёт её вес. Ниже разберём, какие коды нормальны, какие требуют реакции и как проверить код любой страницы самостоятельно.
В Яндекс Вебмастере пришло уведомление о страницах с ошибками. Или аудит сайта выдал список из сорока адресов с пометкой «404». Первая реакция — тревога: сайт сломан, позиции упадут. Чаще всего всё спокойнее. Большая часть кодов, которые видит владелец сайта, — обычная работа сервера: страница открылась, страница переехала, страницы больше нет. Проблемой код становится в конкретных ситуациях: когда на несуществующие адреса ведут ссылки с вашего же сайта, когда живые страницы отдают ошибку или когда сервер падает раз за разом.
В статье — сводная таблица самых частых кодов, которую удобно сохранить, и разбор ситуаций, где действительно нужно что-то делать.
Что такое код ответа сервера простыми словами
Код ответа сервера (его ещё называют кодом состояния HTTP) — трёхзначное число, которым сервер сообщает результат запроса страницы. Значение может быть таким: всё в порядке, страница переехала по новому адресу, такой страницы нет, сервер не справился. Этот код получают и браузер, и поисковые роботы Яндекса и Google.
Проще всего представить звонок в офис. Секретарь отвечает одной из нескольких фраз: «соединяю», «он переехал, вот новый номер», «такого сотрудника у нас нет», «линия перегружена, перезвоните позже». Коды 200, 301, 404 и 503 означают примерно то же самое.
Код передаётся в заголовках ответа, а не в тексте страницы. Это главный подвох для владельца сайта: глазами код не увидеть. Страница может выглядеть совершенно нормально, а сервер при этом отдаёт ошибку. Бывает и наоборот: на экране написано «страница не найдена», а сервер сообщает роботу, что всё в порядке. Про такие случаи — отдельный раздел ниже.
Коды стандартизированы. Их описывает спецификация протокола HTTP (актуальная редакция — RFC 9110), поэтому 404 означает одно и то же на любом сервере, в любой CMS и для любого поисковика.
Пять классов кодов: как читать первую цифру
Все HTTP-коды ответа делятся на пять классов. Первая цифра сразу подсказывает, что произошло и на чьей стороне проблема.
| Класс | Что означает | Пример | Нужна ли реакция |
|---|---|---|---|
| 1xx | Информационный, запрос в процессе | 100 Continue | Нет, владелец их почти не видит |
| 2xx | Успех, страница отдана | 200 OK | Нет |
| 3xx | Перенаправление на другой адрес | 301, 302 | Проверить, куда ведёт |
| 4xx | Ошибка на стороне запроса | 404, 410, 403 | Зависит от ситуации |
| 5xx | Ошибка на стороне сервера | 500, 502, 503 | Да, разбираться |
Коды 2xx и 3xx — штатная работа сайта. С 4xx нужно разбираться точечно: иногда страницы действительно не должно быть, иногда адрес сломан по ошибке. Коды 5xx почти всегда повод написать хостингу или разработчику, потому что сервер не смог выполнить даже корректный запрос.
Класс 1xx касается внутренней механики соединения. В отчётах аудита и в Вебмастере он практически не встречается, и думать о нём не нужно.
Шпаргалка: коды, которые встречаются чаще всего
| Код | Что значит для сайта | Как реагируют поисковики | Что делать |
|---|---|---|---|
| 200 OK | Страница открылась | Могут индексировать | Ничего |
| 301 Moved Permanently | Страница переехала навсегда | Индексируют новый адрес | Проверить, что ведёт на нужную страницу |
| 302 Found | Временный переезд | Обычно оставляют в индексе старый адрес | Убедиться, что переезд и правда временный |
| 304 Not Modified | Страница не менялась с прошлого визита | Используют сохранённую копию | Ничего, это полезно |
| 307 Temporary Redirect | Временный переезд, аналог 302 | Как 302 | Как с 302 |
| 308 Permanent Redirect | Постоянный переезд, аналог 301 | Как 301 | Как с 301 |
| 403 Forbidden | Доступ запрещён | Не индексируют | Проверить, не закрыт ли доступ роботам по ошибке |
| 404 Not Found | Страницы нет | Удаляют из индекса | Убрать внутренние ссылки на адрес |
| 410 Gone | Страница удалена навсегда | Удаляют из индекса | Убрать внутренние ссылки на адрес |
| 429 Too Many Requests | Слишком много запросов | Снижают частоту обхода | Проверить лимиты на сервере |
| 500 Internal Server Error | Сбой на сервере | Снижают частоту обхода | Писать разработчику |
| 502 Bad Gateway | Сбой в связке серверов | Как при 500 | Писать хостингу |
| 503 Service Unavailable | Сайт временно недоступен | Ждут и приходят позже | Нормально на время работ, иначе разбираться |
| 504 Gateway Timeout | Сервер не дождался ответа | Как при 500 | Писать хостингу или разработчику |
Дальше подробно разобраны только те ситуации, с которыми владелец сайта сталкивается регулярно: нормальные ответы, редиректы, 404, скрытые ошибки настройки и сбои сервера.
200 OK и 304 Not Modified: когда всё в порядке
Код ответа 200 означает, что сервер нашёл страницу и отдал её содержимое. Именно его должна отдавать каждая страница, которую вы хотите видеть в поиске: карточка товара, статья, страница услуги, контакты. В справке Яндекс Вебмастера прямо сказано, что страница с ответом, отличным от 200 OK, не может участвовать в результатах поиска.
Но 200 — необходимое условие, а не гарантия. Страница с этим кодом может не попасть в индекс, если она закрыта в robots.txt, содержит метатег noindex, является дублем другой страницы или указывает через canonical на другой адрес. Поэтому при разборе «почему страницы нет в поиске» код ответа — первый шаг проверки, но не последний.
Код 304 Not Modified отдаётся, когда робот спрашивает: «Изменилась ли страница с моего прошлого визита?» Он делает это через заголовок If-Modified-Since, в котором передаёт дату. Если страница не менялась, сервер отвечает 304 и не пересылает её целиком. Робот экономит время, сервер — ресурсы.
Для сайта на два десятка страниц разницы почти нет. Для каталога на десятки тысяч карточек поддержка If-Modified-Since полезна: роботу не приходится скачивать заново то, что не обновлялось, и он может уделить больше внимания изменившимся страницам. Яндекс поддерживает этот заголовок и даже даёт проверить его в инструменте «Проверка ответа сервера». Если настройку делает разработчик, важно одно: при реальном изменении страницы сервер должен отдавать 200 с новой версией, а не 304.
301, 302 и другие редиректы: как переезжают страницы
Редирект — ответ сервера «здесь больше ничего нет, идите по другому адресу». Браузер переходит туда автоматически, посетитель часто даже не замечает перехода.
301 редирект означает постоянный переезд. Его ставят, когда страница навсегда сменила адрес: переименовали раздел, перевели сайт на HTTPS, склеили версии с www и без www. Google в своей документации называет 301 сильным сигналом того, что в поиске нужно показывать новый адрес.
302 — временный переезд. Он подходит, когда страница действительно вернётся: идёт акция, раздел на доработке, тестируется новая версия. Для Google 302 — слабый сигнал, поэтому в выдаче может остаться старый адрес. Подробнее о выборе — в статье о том, когда ставить 301, а когда 302.
Коды 307 и 308 — более современные аналоги 302 и 301. Отличие техническое: они требуют, чтобы браузер при переходе сохранил метод запроса, например отправку формы. Google обрабатывает 308 так же, как 301, а 307 — так же, как 302.
Типовые ошибки с редиректами повторяются от сайта к сайту:
- 302 вместо 301 при окончательном переезде. Часто так настроено по умолчанию в CMS или плагине. Поисковик долго держит в индексе старый адрес.
- Цепочки редиректов. Адрес A ведёт на B, B — на C. Обычно так получается после нескольких переездов подряд. Google проходит до десяти переходов в цепочке, но каждый лишний шаг замедляет загрузку и обход. Проверить код ответа и всю цепочку редиректов можно бесплатным инструментом.
- Циклические редиректы. A ведёт на B, а B обратно на A. Страница не открывается вовсе, браузер выдаёт ошибку.
- Все удалённые страницы — на главную. Об этом подробнее в разделе про soft 404.
Правило простое: внутренние ссылки на сайте должны вести сразу на конечный адрес, без промежуточных редиректов.
404 и 410: страница не найдена — это плохо?
Ошибка 404 означает, что по запрошенному адресу ничего нет. Сам факт, что на сайте бывают 404, — норма. Товар сняли с продажи, статью удалили, посетитель ошибся в адресе, кто-то сослался на сайт с опечаткой. Поисковики это понимают и не наказывают сайт за наличие несуществующих адресов.
Проблемой 404 становится в трёх случаях.
Первый — на страницу с 404 ведут ссылки с вашего же сайта. Посетитель кликает в меню или в тексте статьи и попадает в тупик. Робот тратит обход на мёртвые адреса. Такие ссылки нужно найти и исправить, об этом подробно в статье о том, как найти битые ссылки на сайте.
Второй — 404 отдают страницы, которые должны работать. Например, после обновления CMS у части карточек сломались адреса, а владелец узнал об этом через месяц по падению заказов.
Третий — 404 массово появились после переезда сайта или смены структуры адресов, а редиректы со старых адресов на новые никто не настроил. Старые страницы выпадают из поиска, новые начинают с нуля.
Код 410 Gone сообщает, что страница удалена навсегда и не вернётся. Google в документации обрабатывает все коды 4xx, кроме 429, одинаково: страница удаляется из индекса. На практике для небольшого сайта разница между 404 и 410 невелика, и выбирать между ними не стоит долго.
Что делать с конкретной страницей с 404:
- Если у неё есть близкая по смыслу замена (новая модель того же товара, обновлённая статья на ту же тему), поставьте 301 на эту замену.
- Если замены нет, оставьте 404 или 410 и уберите все внутренние ссылки на этот адрес.
Отдельно стоит позаботиться о самой странице «не найдено». Хорошая страница 404 говорит по-человечески, что адреса нет, предлагает поиск и ссылки на основные разделы сайта. Важно, чтобы при всём этом оформлении сервер по-прежнему отдавал код 404, а не 200.
Soft 404 и другие ошибки настройки, которые не видно глазами
Самые неприятные ошибки — те, где страница и код ответа говорят разное. Глазами такую ошибку не заметить, её видит только робот.
Soft 404 — страница, которая по содержанию сообщает «не найдено» или вовсе пустая, а сервер отдаёт для неё код 200. Типичный пример — интернет-магазин, где по адресу удалённого товара открывается шаблон карточки без названия, цены и описания, и всё это с кодом 200. Для поисковика это сотни одинаковых пустых страниц, на которые он тратит обход, а часть из них может попасть в индекс как дубли. В Google Search Console такие адреса помечаются в отчёте об индексировании как soft 404.
Обратная ситуация тоже встречается. Страница открывается в браузере, товар на месте, а сервер отдаёт роботу 404 или 500. Причины бывают разные: сбой в модуле CMS, неверное правило на сервере, ошибка в шаблоне, которая не мешает показу, но меняет код ответа. Именно так возникает вопрос «почему Вебмастер пишет, что страница недоступна, если у меня она открывается». Заметить это можно, только проверив код ответа напрямую, способы описаны ниже.
Редирект всех несуществующих адресов на главную — разновидность той же ошибки. Владелец рассуждает логично: зачем показывать посетителю пустую страницу, лучше отправить его на главную. Но для поисковика сотни разных адресов, ведущих на главную, выглядят как soft 404, а посетитель, искавший конкретный товар, оказывается на странице, которая не отвечает на его вопрос.
Ещё одна скрытая ошибка — код 403 для поисковых роботов. Защита от ботов, настройки хостинга или файрвол иногда блокируют не только вредный трафик, но и роботов Яндекса и Google. Сайт открывается у всех посетителей, а в Вебмастере растёт число недоступных страниц. Если такие сообщения появились сразу после подключения защиты или смены хостинга, начать стоит с проверки её настроек.
500, 502, 503, 504: когда виноват сервер
Коды класса 5xx говорят, что запрос был корректным, но сервер не смог его выполнить.
Ошибка 500 — общая внутренняя ошибка. За ней может стоять что угодно: ошибка в коде сайта, конфликт плагинов CMS после обновления, нехватка памяти на сервере.
502 и 504 появляются, когда сайт работает через связку из нескольких серверов. Один из них, промежуточный, получил от основного некорректный ответ (502) или не дождался его вовсе (504). Посетитель видит ошибку, хотя сама программа сайта может быть исправна.
Ошибка 503 означает, что сервис временно недоступен: сервер перегружен или идут технические работы.
Поисковики относятся к разовым сбоям спокойно: сервер упал на десять минут ночью — ничего страшного не произойдёт. Если ошибки повторяются долго, последствия ощутимее. По документации Google, при ошибках 5xx и 429 робот временно снижает частоту обхода, страницы, которые уже в индексе, сначала сохраняются, но при затяжных ошибках удаляются из него. Когда сервер снова отвечает нормально, частота обхода постепенно восстанавливается. Долгие 5xx — одна из причин, почему упал трафик на сайте без видимых изменений.
Отсюда правило для технических работ. Если сайт нужно закрыть на время обновления, сервер должен отдавать 503, по возможности с заголовком Retry-After, где указано, когда вернуться:
HTTP/1.1 503 Service Unavailable
Retry-After: 3600
Заглушка «Ведутся работы» с кодом 200 — плохой вариант: робот может принять её за новое содержимое всех страниц. Код 404 на время работ ещё хуже, потому что сообщает, что страниц больше нет.
Кому писать при ошибках 5xx:
| Код | Частая причина | К кому идти |
|---|---|---|
| 500 | Ошибка в коде, конфликт плагинов, нехватка памяти | Разработчик сайта |
| 502 | Основной сервер упал или отвечает некорректно | Хостинг, затем разработчик |
| 503 | Перегрузка или техработы | Хостинг, если работ не планировали |
| 504 | Сервер слишком долго обрабатывает запрос | Хостинг и разработчик вместе |
В обращении укажите адрес страницы, точное время ошибки, код ответа и что вы делали перед этим, например обновляли плагин. С такими данными причину находят быстрее.
Как проверить код ответа страницы
Яндекс Вебмастер. В разделе «Инструменты» есть «Проверка ответа сервера»: вставляете адрес и видите код, заголовки ответа и содержимое страницы так, как его получает робот Яндекса. Там же можно проверить, правильно ли сервер отвечает на If-Modified-Since. В разделе «Индексирование» видно, какие страницы исключены из поиска и по какой причине, включая ошибки сервера и 404.
Google Search Console. Отчёт «Страницы» в разделе «Индексирование» показывает адреса, которые не попали в индекс, с причинами: «Не найдено (404)», «Ошибка сервера (5xx)», soft 404, переадресация. Инструмент «Проверка URL» показывает, как Googlebot видит конкретную страницу.
Инструменты разработчика в браузере. Нажмите F12, откройте вкладку Network (Сеть) и обновите страницу. В первой строке списка будет код ответа основного документа. Способ удобен разработчикам, когда нужно увидеть и цепочку редиректов, и заголовки.
Командная строка. Для тех, кому привычен терминал, хватит одной команды:
curl -I https://site.ru/page
Первая строка ответа покажет код, например HTTP/1.1 200 OK.
Онлайн-проверка одной страницы. Тот же инструмент проверки кода ответа и редиректов покажет код и все промежуточные переходы. Если нужно найти ссылки, ведущие на несуществующие адреса, подойдёт проверка битых ссылок.
Проверка всего сайта. Все способы выше работают со страницами по одной. Чтобы увидеть картину целиком, нужен обход сайта: SEO-аудит проходит по страницам так же, как поисковый робот, и показывает, где отдаются 404, ошибки сервера и цепочки редиректов, а заодно откуда на проблемные адреса ведут ссылки.
Коротко: что запомнить
Коды 200 и 301 — нормальная работа сайта, нужно лишь следить, чтобы редиректы вели сразу на нужную страницу. 404 — тоже норма, пока на такие адреса не ведут ссылки с вашего сайта и пока ошибку не отдают живые страницы. Повод разбираться всерьёз — повторяющиеся 5xx, soft 404 и случаи, когда страница открывается в браузере, а робот видит ошибку.
Что можно сделать сегодня: открыть в Яндекс Вебмастере и Search Console отчёты об исключённых страницах и посмотреть, какие коды там встречаются. Затем проверить сайт целиком.
Проверить инструментом
Часто задаваемые вопросы
Какой код ответа должен быть у нормальной страницы?
У страницы, которую вы хотите видеть в поиске, код ответа должен быть 200 OK. Только с таким кодом страница может участвовать в поиске Яндекса и Google. Если страница переехала, со старого адреса нужен 301 на новый, а новый адрес должен отдавать 200. Код 304 тоже нормален: он означает, что страница не менялась с прошлого визита робота.
Вредят ли ошибки 404 позициям сайта?
Сами по себе нет: несуществующие адреса есть почти на любом сайте, и поисковики это учитывают. Вредят ситуации вокруг них. Это внутренние ссылки на удалённые страницы, 404 на страницах, которые должны работать, и массовые 404 после переезда без редиректов. Проверьте, нет ли среди адресов с 404 нужных вам страниц и не ведут ли на них ссылки с сайта.
Чем отличается 301 от 302 редиректа для SEO?
301 сообщает, что страница переехала навсегда, и поисковики переносят в индекс новый адрес. 302 означает временный переезд, поэтому в выдаче часто остаётся старый адрес. Для окончательной смены адреса, перехода на HTTPS и склейки зеркал нужен 301. 302 ставят, только если страница действительно вернётся на прежнее место.
Что делать, если сайт отдаёт ошибку 500 или 503?
Сначала проверьте, ошибка разовая или повторяется: откройте страницу ещё раз через несколько минут. Если повторяется, ошибку 500 обычно исправляет разработчик, а 502, 503 и 504 чаще связаны с хостингом. В обращении укажите адрес, время и код ошибки. Если 503 появился во время запланированных работ, это нормальное поведение.
Как проверить код ответа сервера для страницы?
Быстрее всего воспользоваться инструментом «Проверка ответа сервера» в Яндекс Вебмастере или бесплатной онлайн-проверкой кода и редиректов. Разработчики смотрят код во вкладке Network инструментов браузера или командой curl -I. Чтобы проверить все страницы сайта сразу, нужен SEO-аудит, который обходит сайт целиком.
Что такое soft 404 и как его найти?
Soft 404 — страница, которая сообщает «не найдено» или пустая, но при этом отдаёт код 200 вместо 404. Поисковик тратит на такие страницы обход, а часть из них может попасть в индекс как дубли. Google Search Console отмечает их в отчёте «Страницы». Вручную их можно найти, открыв несуществующий адрес сайта и проверив его код ответа.