Коды ответа
Опубликовано:
Код ответа — это трехзначное число, которое сервер возвращает клиенту (браузеру или приложению) в ответ на любой запрос и сообщает, как прошла обработка: страница открылась, перенаправилась или произошла ошибка. Коды ответа HTTP влияют на то, как поисковые системы индексируют и ранжируют сайт. Все они делятся на пять групп:
- 1xx — промежуточные (идёт обработка запроса);
- 2xx — успешный ответ;
- 3xx — перенаправление;
- 4xx — ошибка клиента;
- 5xx — ошибка сервера.
В каждой группе есть множество кодов и в контексте SEO нет смысла разбирать все, но если интересно их изучить, то полный список есть на Википедии.
Первую группу не рассматриваем, поскольку эти коды не являются финальными. В остальных группах сосредоточимся только на самых важных. Более подробную информацию можно найти в справке:
Успех (200)
200 — самый частый ответ сервера, сообщающий об успешном выполнении запроса. Если страница возвращает код 200, она может быть проиндексирована поисковыми системами (но это не гарантированно). Если страница отдаёт код отличный от 200, то её адрес может быть удалён из индекса поисковой системы.
Переадресация (301 и 302)
Группа 3xx (Redirection) обозначает, что для успешного выполнения запроса клиенту необходимо выполнить дополнительные действия, чаще всего — перейти по другому адресу. Если страница навсегда перемещена на новый адрес, сервер должен ответить кодом 301 (постоянная переадресация). Если страница перемещена, но позже вернётся на старый адрес — 302 (временная переадресация). Существуют более современные и «строгие» аналоги: временный 307 и постоянный 308. Их отличие от старых кодов в сохранении метода запроса.
Есть три способа реализации переадресации:
- серверная;
- через мета-тег (meta refresh);
- через JavaScript (location).
Поисковые системы рекомендуют использовать серверную переадресацию, а если такой возможности нет — переадресацию через meta refresh. Не рекомендуется использовать JavaScript редиректы.
Подробнее о том, как поисковые системы обрабатывают перенаправления можно почитать в справке Google и Яндекс.
Переадресация — полезный инструмент, который можно и нужно использовать, но необходимо соблюдать правила:
- избегайте цепочек перенаправлений;
- не создавайте петель;
- не используйте скрытые редиректы.
Цепочки перенаправлений
Не рекомендуется создавать пошаговые редиректы. Если страница A переехала на адрес D, то перенаправление должно быть прямым: A → D. Не должно быть промежуточных этапов B и C, создающих цепочку A → B → C → D. Это замедляет работу сайта, ведь каждый дополнительный редирект создаёт задержку в обработке запроса, а поисковые роботы вовсе не выполняют больше 10 «прыжков», так что не стоит этим злоупотреблять. Тем более, что в SEO-сообществе существует мнение о потере «веса» страницы с каждым пройденным шагом в цепочке переадресаций.
Циклические перенаправления
Неправильная настройка переадресации может привести к технической ошибке, когда страница A ссылается на страницу B, а страница B — обратно на А, что создаёт бесконечную петлю (redirect loop). Если пользователь перейдёт по ссылке и попадёт в такую петлю, то его браузер покажет ошибку: «Страница выполнила слишком много перенаправлений» или «ERR_TOO_MANY_REDIRECTS». Если эту ссылку обнаружит поисковый бот, то сделает 5-10 переходов и покинет сайт. В результате, страница создающая цикл переадресаций будет удалена из индекса поисковой системы. Кроме того, будет зря потрачен краулинговый бюджет.
Обнаружить redirect loops помогут Google Search Console и Яндекс Вебмастер. Выявлять циклы могут краулеры (например Screaming Frog) или онлайн-инструменты такие как redirect-checker.org и redirectchecker.com.
Неожиданные и скрытые перенаправления
Перенаправления должны быть безопасными для пользователя, скрытые редиректы считаются видом поискового спама, о чём прямо говорят и Google и Яндекс.
В отдельную проблему поисковики выделяют скрытые мобильные редиректы — нельзя показывать пользователям ПК один контент, а мобильных пользователей перенаправлять на другой адрес. Об этом сообщали ещё в 2015 году Google и Яндекс.
Недоступность страницы (404)
Группа 4xx (Client Error) сообщает о проблеме в обработке запроса: запрос содержит ошибку или он не может быть выполнен. Вероятно, 404 — самый известный код, означающий что запрашиваемый ресурс не найден. Само по себе наличие недоступных страниц на сайте не влияет на ранжирование в поисковых системах, но если большое количество страниц сайта отдают 404 это может быть проблемой.
Важно:
- Недоступные страницы должны отдавать «честный» 404. Одной из распространённых ошибок является так называемая «soft 404» (страница оформлена как 404 или не содержит контент, но отдаёт 200).
- Для адресов отдающих 404 необходимо создать универсальный шаблон, соответствующий дизайну сайта и разместить там ссылки на важные страницы.
- Необходимо минимизировать возможность появления на сайте «битых» ссылок, т.е. тех, что ведут на адрес, отдающий 404. Полностью искоренить «битые» ссылки на сайте практически невозможно, как и автоматизировать процесс их «отлова». Поэтому придётся регулярно сканировать сайт на наличие таковых ссылок.
Справка Google по 404 и статья в блоге. Статья в блоге Яндекса про 404.
Если страница по конкретному адресу не существует и никогда не существовала, сервер должен отдавать код 404. Если страница существовала, но была окончательно удалена, то для таких адресов можно использовать код 404, но лучше подходит 410. Если страница переехала на новый адрес настоятельно рекомендуется настроить перенаправление.
Кроме 404 и 410 в группе 4xx есть и другие, но все перечислять нет смысла, отметим лишь:
- 401 — для доступа требуется авторизация;
- 403 — доступ запрещён;
- 429 — превышен лимит запросов.
Не рекомендуется использовать коды 403 и 404 для ограничения частоты запросов, используйте 429 или 503.
Ошибка (500)
Группа 5xx (Server Error) тоже сообщает о проблеме в обработке запроса, но в отличии от группы 4xx тут проблема на стороне сервера, что является серьёзной проблемой. Фактически, ошибки 5xx означают, что сайт не способен нормально функционировать. Причины могут быть разными:
- 500 — что-то сломалось на сервере;
- 502 — сервер не получил ответ от другого сервера;
- 503 — сервер временно недоступен;
- 504 — сервер не дождался ответа от другого сервера;
Исключение: код 503 не всегда означает критическую проблему. Его можно использовать в исключительных случаях, например, если сайт требуется временно отключить или «поставить на паузу». В таких случаях рекомендуется дополнительно использовать заголовок Retry-After, который позволяет указать время через которое поисковому боту стоит повторить запрос.
Массовые ответы 500 могут навредить индексации сайта: поисковые боты снизят частоту обхода технически нестабильного сайта, а затем начнут удалять его страницы из индекса. Хорошей практикой является автоматизированный мониторинг 5xx кодов ответов, что можно сделать через сервисы вроде Uptimerobot или Pingdom.
Статья в блоге Яндекса про группу 5xx.
Инструменты для проверки кодов ответа
Проверка неработающих ссылок в Вебмастере и проверка кода ответа.
Отчёт о статистике сканирования в Google Search Console и инструмент проверки URL.