Перейти к содержимому
Попробовать

Коды ответа сервера: что значат 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 отчёты об исключённых страницах и посмотреть, какие коды там встречаются. Затем проверить сайт целиком.

Проверить инструментом

Проверить коды ответа всех страниц сайта
SEO-аудит бесплатно проверяет до 100 страниц. В отчёте — битые ссылки, редиректы, ошибки сервера и другие проблемы, а также Health Score сайта от 0 до 100 %.
Проверить сайт

Часто задаваемые вопросы

Какой код ответа должен быть у нормальной страницы?

У страницы, которую вы хотите видеть в поиске, код ответа должен быть 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 отмечает их в отчёте «Страницы». Вручную их можно найти, открыв несуществующий адрес сайта и проверив его код ответа.

Поделиться:
SC
Команда SEO Crawler
Пишем о техническом SEO, аудите и продвижении сайтов
Ссылка скопирована