Ошибки сайта 404 и другие

#статьи


  • 0

Проблема на стороне пользователя или на стороне владельца сайта? Объясняем в статье.

Иллюстрация: Polina Vari для Skillbox Media

ChatGPT

Контент подготовлен нейросетью, которая анализирует тысячи источников в режиме реального времени. Факты проверил редактор Skillbox Media.

Ошибка 404 — распространённая проблема, с которой пользователи сталкиваются при попытке получить доступ к веб-странице. Кроме того, это важный сигнал о неисправностях для владельцев сайтов и разработчиков. В статье разбираемся:

  • что означает ошибка 404;
  • почему она возникает;
  • как последствия ошибки 404 проявляются на сайте;
  • как исправить ошибку 404 со стороны пользователя;
  • как исправить ошибку 404 со стороны владельца сайта;
  • какие есть инструменты для отслеживания ошибки 404.

Ошибка 404, также известная как «Not Found» или «Не найдено», является стандартным HTTP-статусным кодом, который указывает на отсутствие запрашиваемого ресурса на сервере.

Ошибки 404 возникают в результате взаимодействия между клиентским устройством (например, веб-браузером) и сервером, когда клиент пытается получить доступ к странице, изображению, файлу или любому другому ресурсу. Если сервер не может найти запрашиваемый ресурс, он отправляет клиенту ответ со статусным кодом 404.

Ошибка 404 может возникать по нескольким причинам: неправильно введён URL, устарела или не работает ссылка на другом сайте, ресурс перемещён или удалён с сервера, во внутренней структуре или в серверной конфигурации сайта есть проблемы.

Для пользователей ошибка 404 означает, что запрашиваемая информация или страница временно или постоянно недоступна. Это может вызывать недовольство, особенно если пользователь ожидал найти важные сведения или материалы. 

Для владельцев сайтов и разработчиков ошибка 404 является сигналом о неисправностях в системе. Она может указывать на проблемы в структуре и навигации сайта, ошибки в ссылках или отсутствие обработчиков ошибок. Исправлять ошибки 404 важно для улучшения пользовательского опыта, сохранения SEO-рейтинга и обеспечения правильной работы сайта.

В следующих разделах мы рассмотрим причины возникновения ошибки 404 подробнее и дадим рекомендации по её исправлению.

Ошибка 404 возникает, когда сервер не может найти запрашиваемый ресурс. Рассмотрим несколько распространённых причин её появления.

  • Неверно введён URL. Это самая распространённая причина. Если пользователь случайно вводит неправильный адрес в адресной строке браузера, сервер не сможет найти соответствующую страницу и вернёт ошибку 404. Ошибки в адресе могут быть вызваны случайными опечатками, неправильным регистром или отсутствием необходимых символов.
  • Ссылка ведёт на несуществующие страницы. Если ссылка ведёт на страницу, которая была перемещена или удалена, пользователь, кликнувший по ней, столкнётся с ошибкой 404. 
  • Ссылки на других сайтах устарели. Если другой сайт содержит ссылку на вашу страницу, но эта страница была удалена или перемещена, а ссылку на другом сайте не обновили, пользователь, перешедший по этой ссылке, получит ошибку 404.
  • Ресурсы перемещены или удалены с сервера. Если владелец сайта переместил или удалил ресурс (например, страницу или файл), но не настроил перенаправление или обновление ссылок, клиенты, которые обращаются к этому ресурсу, получат ошибку 404.
  • Есть проблемы с серверной конфигурацией. Ошибка 404 также может появляться, если сервер настроен неправильно или доступ к определённым файлам или директориям закрыт.
  • Во внутренней структуре сайта есть ошибки. Например, если ссылка на страницу указывает путь неправильно, сервер не сможет найти соответствующий ресурс и вернёт ошибку 404.

Возникновение ошибки 404 может иметь негативные последствия как для пользовательского опыта, так и для поисковой оптимизации и репутации сайта. Вот несколько возможных последствий.

Вред для SEO. Если сайт содержит много неработающих ссылок, это может негативно сказаться на SEO. Разрушение внутренней и внешней ссылочной структуры приводит к потере органического трафика, ухудшению показателей SEO, затруднению навигации.

Потеря трафика и позиций в поисковых системах. Если на сайте много ошибок 404, это отражается на его позиции в поисковой выдаче. Поисковые системы принимают во внимание частоту ошибок 404 при определении качества сайта и его релевантности для пользователей. Если ошибок 404 при обращении к сайту много, сайт теряет позиции в результатах поиска.

Ухудшение репутации и уменьшение доверия. Ошибка 404 может создать впечатление непрофессионализма создателей сайта и его ненадёжности. Посетители могут начать сомневаться в качестве контента и услуг, предлагаемых на сайте, если регулярно сталкиваются с ошибками 404.

Потеря потенциальных клиентов или покупателей. Если ошибки 404 возникают на страницах с продуктами, услугами или контактами, это может привести к потере потенциальных клиентов или покупателей. Посетители начнут искать альтернативные варианты, если не смогут получить доступ к информации.

Важно принимать меры по предотвращению и исправлению ошибок, чтобы сайт функционировал эффективно.

Если вы сталкиваетесь с ошибкой 404 при посещении сайта, вы можете проверить, с вашей ли стороны проблема, и предпринять действия, чтобы её исправить. Вот несколько рекомендаций.

  • Проверьте правильность написания URL. Убедитесь, что вы правильно ввели URL в адресной строке браузера. Проверьте, нет ли в нём опечаток, правильный ли использован регистр. Если есть сомнения, попробуйте переписать URL или воспользуйтесь поиском по сайту.
  • Обновите страницу или повторите попытку позже. Иногда ошибка 404 может быть временной проблемой, связанной с недоступностью сервера или перегрузкой. Попробуйте обновить страницу или повторить запрос через некоторое время. Если ошибка сохраняется, перейдите к следующему шагу.
  • Используйте поиск по сайту. Если на сайте есть функция поиска, воспользуйтесь ей. Это может помочь обнаружить страницу или контент, который вы ищете, даже если ссылка на него была изменена или удалена.
  • Проверьте, нет ли другой ссылки на эту страницу, с помощью поискового запроса. Возможно, страница была перемещена или переименована, а запрос в поисковике приведёт вас к нужному ресурсу.
  • Сообщите о проблеме владельцу сайта. Если вы уверены, что запрашиваемый ресурс должен существовать, а ошибка 404 сохраняется, свяжитесь с владельцем сайта или администратором и сообщите о проблеме. Они могут принять меры для исправления ссылки или восстановления удалённой страницы, предоставить другой путь к нужному контенту.
  • Ищите альтернативные источники информации. Если вы не можете получить доступ к конкретной странице, поищите другие ресурсы по теме. Возможно, аналогичный контент доступен на других сайтах.

Несмотря на то что исправление ошибки 404 в основном зависит от владельца сайта, эти шаги могут помочь пользователю обойти проблему или найти альтернативные способы получить нужную информацию.

Если вы владелец сайта, на страницах которого возникает ошибка 404, вы можете предпринять несколько действий для исправления этой проблемы. Вот несколько рекомендаций:

  • Проверьте, есть ли на вашем сервере запрашиваемый ресурс. Убедитесь, что файл или страница, на которую указывает ссылка, находится в нужном месте. Если ресурс был перемещён или удалён, возможно, его следует восстановить или предоставить пользователям альтернативу.
  • Обновите ссылки и редиректы. Если вы переместили ресурс или изменили его URL, убедитесь, что все ссылки и редиректы на вашем сайте перенастроены. Обновление ссылок позволит пользователям получить доступ к нужному контенту без ошибок 404. Используйте редирект (например, 301 или 302), чтобы автоматически направлять пользователей на новый адрес.
  • Создайте дизайн специальной страницы 404 с информацией и советами по навигации. На этой странице можно поместить сообщение о том, что запрошенный ресурс не найден, и предложить перейти к другим страницам сайта.
  • Усовершенствуйте внутреннюю структуру сайта. Проанализируйте структуру вашего сайта и проверьте наличие сломанных или устаревших ссылок. Используйте инструменты для проверки ссылок и обновите нерабочие ссылки в меню, футере, виджетах и других разделах вашего сайта.
  • Настройте поиск по сайту. Он поможет пользователям найти нужную информацию, даже если они столкнутся с ошибкой 404. Убедитесь, что поиск настроен правильно и охватывает все важные страницы. Это позволит пользователям искать нужную информацию непосредственно на вашем сайте.
  • Мониторьте ошибки 404 и анализируйте их. Используйте инструменты аналитики для отслеживания и мониторинга ошибок 404 на вашем сайте. Это позволит вам получить информацию о том, какие страницы часто выдают ошибку 404, и исправить проблему. Анализ ошибок 404 позволит определить, что в структуре сайта и вашей ссылочной стратегии следует улучшить.

Исправление ошибки 404 со стороны владельца сайта требует некоторых усилий, но поможет улучшить пользовательский опыт и обеспечить более эффективную навигацию по вашему сайту.

Упростить отслеживание и управление ошибками 404 позволяют специальные инструменты. Вот несколько полезных инструментов со ссылками на их официальные сайты:

  • Google Analytics. Популярный бесплатный инструмент от Google, который предоставляет подробные отчёты о посещаемости вашего сайта. Он также отслеживает ошибки 404 и предоставляет информацию о страницах, на которых возникли ошибки.
  • Google Search Console. Бесплатный инструмент от Google, который позволяет  отслеживать индексацию и видимость сайтов в поисковой выдаче Google. Он также предоставляет отчёты об ошибках 404 на сайте.
  • Веб-мастер Яндекса. Инструмент от «Яндекса», предназначенный для анализа сайтов. Он предоставляет отчёты об ошибках 404, позволяет вам просмотреть страницы, вызывающие ошибки.
  • Screaming Frog. Популярный платный инструмент для сканирования сайтов, который помогает обнаружить ошибки 404 и другие проблемы с сайтом. Он проводит аудит сайта и выдаёт подробные отчёты о неработающих ссылках, включая ссылки с ошибкой 404.
  • Dead Link Checker. Онлайн-инструмент, который позволяет проверить ваш сайт на наличие неработающих ссылок. Вы можете указать URL вашего сайта, и Dead Link Checker составит отчёт о неработающих ссылках, включая ошибки 404.
  • Ошибка 404 — это HTTP-код, который указывает на то, что запрашиваемый ресурс не найден на сервере. Ошибка 404 возникает, когда пользователь или поисковая система обращаются к несуществующей странице, удалённому контенту или недоступному файлу.
  • Ошибка 404 может возникать по нескольким причинам: перемещение или удаление страницы или файла, неправильно введённый URL, некорректные ссылки на сайте, проблемы с сервером или недоступность ресурса из-за ошибок в программировании или конфигурации сервера. Ошибка 404 также может возникать при попытке перейти к защищённому контенту без соответствующих разрешений.
  • Чтобы исправить ошибку 404, пользователю следует проверить правильность написания URL и обновить страницу или повторить попытку позже, а если это не сработало — воспользоваться функцией поиска на сайте для поиска нужной информации или ресурса.
  • Для исправления ошибки 404 владельцу сайта следует проверить, есть ли нужный материал на сервере, обновить ссылки и редиректы, а также создать специальную информационную страницу для ошибки 404.
  • Существуют специальные инструменты, предназначенные для отслеживания ошибок 404 на сайтах. Они позволяют провести сканирование страниц и предоставляют детальные отчёты о неработающих ссылках.

Как зарабатывать больше с помощью нейросетей?
Бесплатный вебинар: 15 экспертов, 7 топ-нейросетей. Научитесь использовать ИИ в своей работе и увеличьте доход.

Узнать больше

Список самых распространенных ошибок сайта из-за которых не растут позиции и продажи. Виды и типы ошибок, откуда они появляются, что с ними делать, как их быстро найти самостоятельно, влияние на продвижение в Яндекс/Google и продажи.

Всем привет. Меня зовут Толстенко Александр. Я частный специалист по продвижению сайтов в Яндекс/Google.

Работаю в сфере создания и продвижения сайтов с 2009 года (уже более 13 лет).

Кейсы продвижения и другие статьи, подтверждающие экспертизу, можно посмотреть на сайте marketing-digital.ru или в профиле на vc.ru.

Переодически провожу бесплатные консультации (10-15 минут) и платные консультации.

Ошибка сайта: что это такое

Если попробуете загуглить информацию про ошибки сайта, в результатах поиска первые два результата будут ссылки на: справку Яндекса и определение Википедии. На обоих ресурсах, говорится про коды ответа серверов.

Код ответа сервера: что это такое, что означает

Немного теории, чтобы было понимание, что такое код ответа сервера и что они означают. Когда вы открываете какой-то url, ваш браузер отправляет HTTP-запрос на сервер, где лежит физически этот сайт. В ответ на HTTP-запрос, сервер отдаст код состояния HTTP (трехзначное число) и определенные параметры.

Данное число будет принадлежать одному из пяти классов состояний:

1** — информационные;

2** — ок, получили страницу;

3** — перенаправление (редирект);

4** — ошибка на стороне клиента (сервера, страница не существует);

5** — ошибки на стороне сервера (сервер не справляется с нагрузкой).

Распространенные ошибки web серверов

С полным списком ошибок сервера можно ознакомиться в официальной справке Яндекса или любом другом источнике. Ниже акцентирую внимание, только на самые важные при SEO продвижении. Расскажу, что поисковой робот делает при получении различных ответов сервера.

Коды 4xx (ошибка клиента): что значит

1) 404 Not Found — Страница не найдена (битые ссылки)

Пример

404 ошибка означает, что запрашиваемый документ, который ранее существовал, больше не существует по данному url.

Причин может быть много, от вмешательства программиста, до случайного или намеренного отключения/удаления в админке сайта ресурсов.

Удалять нужно осознанно, осторожно. В противном случае вы себе же в ногу стреляете, т.к. потеряете часть трафика, который давал заказы/продажи. Очень частая проблема у клиентов.Если такой страницы никогда не существовало, игнорируйте эту ошибку, возможно, кто-то поставил некорректную ссылку на ваш ресурс.

2) 403 Forbidden — Доступ к ресурсу запрещен

Пример

403 ошибка означает, что доступ к документу запрещен. Если вы хотите, чтобы страница индексировалась, необходимо разрешить доступ к ней.

Чаще всего встречается на проектах, где есть личный кабинет и часть информации доступна только после авторизации. Или нужно просто закрыть данный раздел от робота в .htaccess.

3) 410 Gone — Ресурс недоступен

401 ошибка означает, что данный документ был удален с сайта навсегда. Т.е. данный код ответа сервера говорит роботу, чтобы он забыл про данную ссылку и больше никогда не обращался по данному url.

Коды 3xx (перенаправление): что значит

1) 301 Moved Permanently — Ресурс перемещен навсегда (301 редирект)

301 ошибка означает, что документ перемещен навсегда и находится по-новому url. При попытке перейти по-старому, пользователя всегда будет перенаправлять на новый документ. Поисковой робот проиндексирует новую страницу, если она будет доступна для индексирования.

Страница по-старому url заменится в результатах поиска, на новый url и со временем, все накопленные показатели документа, передаются новой странице.

Если на сайте будет много 301-х редиректов, на большом проекте будет сильно снижаться скорость обхода страниц и скорость учета изменений на старых.

2) 302 Moved Temporarily — Ресурс временно перемещен

302 ошибка означает, что запрошенный ресурс временно находится по другому адресу. В результатах выдачи, будет находится url старого адреса. Т.е. при переходе по ссылке из результатов поиска, будет сделан 302 редирект на новый адрес на сайте.

До тех пор, пока не будет настроен 301 редирект со старого адреса на новый, накопленные метрики старого url не передаются по новому. Рекомендуется сразу делать 301 редирект на новый адрес для “склейки” накопленных метрик.

3) 304 Not Modified — Содержимое страницы не изменилось

304 ошибка означает, что если страница не изменилась с момента последнего обращения робота. Данный HTTP код ответа позволяет ускорить индексирование новых страниц и быстро учитывать внесенные изменения на старых.

Last-modified позволяет поисковому боту не тратить время на распаршивание html разметки, а сразу увидеть дату последнего изменения документа, сравнить ее с данными в базе. Если дата одна и та же, пропустить страницу и обратиться к следующей.

Настраивать и внедрять Last-modified заголовок, есть смысл на больших проектах, чтобы краулинговый бюджет не тратился не понятно на какие страницы.

Коды 5xx (ошибка сервера): что значит

1) 500 Internal Server Error — Внутренняя ошибка сервера

500 ошибка означает, что сервер столкнулся с непредвиденным условием, которое не позволяет ему выполнить запрос. Любая внутренняя ошибка сервера, которая не входит в рамки остальных ошибок класса.

2) 504 Gateway Timeout — время ожидания ответа сервера истекло

504 ошибка означает, что прокси-сервер не дождался ответа от вышестоящего сервера и завершил запрос.

Важность кодов ответа сервера

Описанные серверные web ошибки выше, очень сильно влияют на эффективность продвижения сайта в Яндекс/Google. Это база (как фундамент у дома), это то, с чего должно начинаться SEO продвижение, т.к. от этого будет сильно зависеть эффективность дальнейшего продвижения.

Если попробовать перефразировать простым языком: Ваш код ответа сервера, говорит поисковой машине, что делать с документом: поместить страницу в результаты выдачи или удалить ее оттуда.

Большое количество 4хх и 3хх ошибок замедлит учет изменений на сайте (будет впустую тратиться краулинговый бюджет). Если у вас большой портал — это будет критично.

🛑 Рекомендую, каждый раз после внесения программистами важных или масштабных изменений сканировать сайт Screaming Frog SEO на наличие технических ошибок. Практика показывает, очень часто вылезают различные баги или что-то отваливается. Так же, рекомендую проводить плановый технический аудит, т.к. периодически появляются неработающие ссылки и редиректы (большое количеств, негативно сказывается на продвижении).

Что делать, если сайт выдает ошибку

Если при открытии сайта, выдается 3хх или 4хх код ответа сервера — желательно не затягивать с их исправлением (если это не массовая техническая проблема, после внесения правок).

Если 5хх — бить тревогу, т.к. робот очень быстро начнет удалять страницы, дающие трафик из результатов поиска. За один день можно лишиться большей части трафика, который потом можно и не восстановить.

Другие ошибки веб сайта

Помимо серверных проблем, встречаются и другие. Они также сильно влияют на эффективность продвижения в Яндекс и Google.

1) Ошибки html верстки

Один не закрытый тег или не верно поставленная кавычка в head, может затруднить распознавание информации на странице сайта для робота, хотя в браузере все будет выглядеть нормально. Проверить ошибки верстки можно через сервис validator.w3.org или любой другой валидатор. Данные сервисы покажут конкретные проблемные места в верстке, которые нужно будет устранить.

2) Некорректная работа мобильной версии сайта

Частая проблема, когда на ПК сайт работает отлично, а проверяешь его с мобильного телефона, часть функционала не доступна (скрыта), отображается некорректно или мобильная версия и вовсе отсутствует.

3) Проблемы скорости загрузки сайта

Медленная загрузка сайта напрямую к техническим ошибкам не относится, хотя по рекомендациям поисковых систем, скорость загрузки ресурса должна быть не более 3-5 секунд, а в 2021 году Google включил метрику в факторы ранжирования.

На сколько это важный фактор ранжирования, спорный вопрос (рекомендую смотреть на средние значения конкурентов в ТОП 10, должно быть не хуже, чем у них), а вот с точки зрения повышения количества заказов, даже очень весомый фактор.

Проверить скорость загрузки ресурса можно в сервисе Google PageSpeed Insights (рекомендуется добиться зеленой зоны).

4) JavaScript-ошибки

Считается, что если сайт работает, значит проблем нет. Это не так, часто забывают про ошибки js, которые могут блокировать важную работу функционала и отключить возможность отправки заказов/заявок через сайт. Увидеть и исправить все ошибки Java Script можно, например через сервис Track.js.

5) Неверно прописаны правила сканирования в robots.txt

Проводя технические аудиты сайтов, часто встречаешь правила, которые случайно закрывают раздел или какие-то типы страниц от индексации для поисковых роботов.

6) Неправильно настроенный или отсутствующий тег canonical на дублирующих страницах

Чаще всего, тег не верно настраивают для страниц пагинации в интернет магазинах. Иногда встречаются магазины, у которых один и тот же товар, находится в разных категориях по разным url (полные дубли страниц), что мешающие СЕО-продвижению. Данную болезнь, частенько встречал у сайтов на 1с Битрикс.

7) Отсутствие или неправильное написание метатегов на страницах

h1, title, description — самые важные метатеги. Имея определенную структуру на сайте и сделав базовую оптимизацию с помощью применения масок этих тегов, можно увеличить видимости по продвигаемым ключевым запросам (пример: базовой оптимизации сайта и ее результаты)

8) Страницы дубли (каннибалы)

9) Ошибка сертификата ssl (HTTPS — защищенное соединение)

Поисковые системы учитывают безопасность соединения при упорядочивании результатов выдачи.

Если сайт использует незащищенную версию протокола (HTTP) — это будет минусом для посетителей (увидят уведомление на экране браузера) и негативно отразится на позициях в результатах выдачи.

Периодически бывает так, что на страницах появляется mixed content или просто отваливается HTTPS протокол по техническим причинам.

10) И другие web ошибки, которые мешающие продвижению

Поисковые роботы учитывают более 1000 факторов ранжирования. У каждого проекта свой набор ошибок, поэтому все нет смысла описывать в общем обзоре.

Как можно проверить сайт на ошибки самостоятельно

Самый быстрый и простой способ узнать, какие проблемные места на сайте без сканирования программой, привлечения опытного СЕО-специалиста или использования какого ни будь онлайн сервиса — заглянуть в панель Яндекс.Вебмастер, открыть отчет: Индексирование -> Страницы в поиске

Выбрать: Исключённые и увидеть все технические проблемы, которые видит робот Яндекса

Даже, не понимая ничего в SEO-продвижении, в пару кликов можно самостоятельно узнать, в каком техническом состоянии находится сайт и насколько качественно сделана оптимизация проекта под требования поисковых систем.

🛑 Найти и исправить все ошибки можно проведя детальный технический аудит. Ознакомиться с ошибками проекта одного из клиентов, данными рекомендациями и увидеть результаты после исправления, можно в статье технический аудита сайта.

Как проверить сайт на ошибки онлайн

Сейчас, существует много онлайн сервисов проверки. Какой-то конкретный, рекомендовать не буду, особенно платный.

Яндекс.Вебмастер + Google Search Console покажут практически все недостатки. Если их дополнить еще данными из Screaming Frog, разобрать все типы ошибок и написать рекомендации по исправлению — получится профессиональный SEO аудит.

Если, все же есть необходимость проверить сайт на ошибки в онлайн сервисе, погуглите. Их щас на любой вкус и цвет.

Что делать с найденными ошибками сайта

Если, вы уже занимаетесь продвижением и не первый месяц, задать вопрос: почему, большая часть ошибок сайта еще не устранена? Они должны были быть найдены в первые месяцы работ при проведении техаудита, и подготовлены рекомендации по их исправлению.

🛑 Если, оптимизацией никогда не занимались, если хватит опыта исправить существующие ошибки или заказать технический аудит с рекомендациями по исправлению у специалистов.Прежде чем заказать, рекомендую спросить посмотреть примеры сделанных аудитов. Если они будут +/- как этот пример аудита — не рекомендую заказывать. Конкретные рекомендации не получите, вопросов будет еще больше, чем ответов.

Почему, важно все исправить: что получит бизнес в результате исправления

Многие, недооценивают влияние технических ошибок на видимость сайта в результатах выдачи. Хотя, сделав даже одну базовую оптимизацию, можно получить рост позиций и заказов. Пример клиента 1, Пример клиента 2.

Наличие большого количества техошибок, говорит роботу, что сайт “не качественный”, а не качественные проекты никогда не будут лидерами ниши (если вы, конечно, никакой ни будь М.Видео, которому роботы много чего прощают).

Поэтому, рекомендуется исправлять технические проблемы на старте, в первые 2-3 месяца, периодически следить за появлением новых, параллельно продолжать работы по оптимизации текущих и новых страниц проекта. В будущем, это позволит кратно увеличить посещаемость, заказы и продажи.

На этом все, спасибо за внимание.

✌ Нужна консультация?

👉 Пишите в личные сообщения кодовое слово: «ОшибкиСайтаVc»

Уточню кое какие вопросы, определим дату, время созвона по видео связи расскажу какие проблемы продвижения есть у вас (бери исправляй и получай профит), узнаете на сколько можно вырасти в продажах, глянув трафик конкурентов.

Уровень сложности
Простой

Время на прочтение
4 мин

Количество просмотров 8.3K

Если вы не специалист по REST, то, вероятно, в своих ответах постоянно используете одни и те же HTTP-коды, в основном 200, 404 и 500. Если применяется аутентификация, то, возможно, добавляются 401 и 403; если есть переадресации, то 301 и 302, но на этом, скорее всего, список заканчивается. Но спектр возможных кодов состояний гораздо шире и он может сильно улучшить семантику. Хотя во многих обсуждениях REST упор делается на сущностях и методах, применение подходящих кодов ответов о состояниях может повысить удобство вашего API.

201: Created

Многие приложения позволяют создавать сущности: аккаунты, заказы и так далее. В общем случае применяется HTTP-код состояния 200, и этого вполне достаточно. Однако код 201 более конкретен и подходит лучше:

HTTP-код ответа 201 Created об успешном состоянии показывает, что запрос выполнен успешно и привёл к созданию ресурса. По сути, новый ресурс был создан до отправки этого ответа, а сам новый ресурс возвращается в теле сообщения, его местоположением становится или URL запроса, или содержимое заголовка Location.

— Веб-документация MDN

205: Reset Content

Аутентификация при помощи форм может быть успешной или неудачной. При неудачном выполнении обычно повторно отображается форма с очищенными полями.

И как раз для этого предназначен код состояния 205:

HTTP-код состояния 205 Reset Content сообщает клиенту, что нужно сбросить визуализацию документа, то есть, например, очистить содержимое формы, сбросить состояние canvas или обновить UI.

— Веб-документация MDN

428: Precondition Required

При использовании Optimistic Locking валидация при обновлении может быть неудачной, потому что данные уже были обновлены кем-то ещё. По умолчанию фреймворки (например, Hibernate) в таком случае выбрасывают исключение. В свою очередь, разработчики могут перехватывать его и отображать удобное информационное окно, просящее перезагрузить страницу и ввести данные повторно.

Давайте проверим код состояния 428:

Исходный сервер требует, чтобы запрос был условным. Это нужно для устранения проблемы «утерянного обновления», когда клиент при помощи GET получает состояние ресурса, изменяет его и помещает при помощи PUT обратно на сервер, в то время как третья сторона изменила состояние на сервере, что приводит к конфликту.

— Веб-документация MDN

Этот код чётко описывает случай конфликта при optimistic locking!

В RFC 6585 упоминается термин условный и показывается пример использования заголовка If-Match. Однако в нём не показано, как конкретно достичь этого условия.

409: Conflict

Любопытно, что по поводу кода 409 написано следующее:

HTTP-код ответа состояния 409 Conflict говорит о конфликте запроса с текущим состоянием сервера.

— Веб-документация MDN

Он также применим в предыдущем случае, но более обобщённый. Например, типичным примером использования будет обновление уже удалённого ресурса.

410: Gone

Чаще всего, когда вы пытаетесь получить при помощи GET ненайденный ресурс, сервер возвращает код 404. Но что, если ресурс существовал ранее, но теперь его нет? Интересно, что для конкретно этого случая есть альтернатива: об этом может сообщить семантика возвращаемого HTTP-кода. И именно поэтому используется 410.

HTTP-код ответа о клиентской ошибке 410 Gone показывает, что доступ к целевому ресурсу уже отсутствует на исходном сервере и это состояние, скорее всего, будет постоянным.

Если неизвестно, временное это состояние или постоянное, то нужно использовать код состояния 404.

— Веб-документация MDN

300: Multiple choices

Это может показаться натянутым выбором, но спецификация IETF соответствует данному случаю.

Приложения на основе HATEOAS имеют корневую страницу, которая становится точкой входа, позволяющей выполнять дальнейшую навигацию.

Например, вот какой ответ возникает при доступе к Spring Boot Actuator:

{
  "_links": {
    "self": {
      "href": "http://localhost:8080/manage",
      "templated": false
    },
    "beans": {
      "href": "http://localhost:8080/manage/beans",
      "templated": false
    },
    "health": {
      "href": "http://localhost:8080/manage/health",
      "templated": false
    },
    "metrics": {
      "href": "http://localhost:8080/manage/metrics",
      "templated": false
    },
  }
}

В этом местоположении отсутствует обычный ресурс. Сервер предоставляет множество ресурсов, каждый из которых имеет свой идентификатор. Это подходит для кода состояния 300:

[…​ ] сервер ДОЛЖЕН генерировать полезную нагрузку в ответе 300, содержащую список метаданных описания и ссылок на URI, из которого пользователь или агент пользователя может выбрать наиболее подходящий ему.

— IETF HTTP 1.1: Semantics and Content

Заключение

В общем случае конкретные состояния HTTP имеют смысл при наличии REST-бэкенда, доступ к которому выполняет JavaScript-фронтенд. Например, сброс формы (205) не имеет смысла, если страницу генерирует сервер.

Проблема этих кодов связана с семантикой: интерпретировать их можно по-разному. Зачем выбирать 409 вместо 428? В конечном итоге, это может быть вопросом интерпретации.

Если вы предоставляете публичный REST API, то у вас есть комбинация этих (и других) кодов, а также заголовки. Вам нужна подробная документация на все случаи, чтобы уточнить общую семантику для вашего конкретного контекста. Это не должно отталкивать вас от их использования, ведь они представляют собой богатое множество, из которого можно выбирать подходящие ответы.

Дальнейшее чтение

  • HTTP response status codes

  • List of HTTP status codes

  • Series of posts on HTTP status codes

  • The HTTP Status Codes Problem

Коды ответов сервера или, как их еще называют, коды состояния HTTP (англ. HTTP Status Codes) передаются в заголовке ответа сервера на запрос клиента по протоколу HTTP, и содержат информацию о том, насколько серверу удалось обработать запрос клиента.

Звучит сложновато? На самом деле ничего сложного в этом нет. Смотрите..

Для начала нужно разобраться, что такое клиент и сервер, и, как говорится, зачем они вам. Клиент-серверная архитектура лежит в основе привычного нам интернета. Контент сайтов и приложений находится на серверах, и для доступа к нему используются программы-клиенты, которые умеют взаимодействовать с серверами (они также являются программами) по различным сетевым протоколам (каналам), в частности по протоколу HTTP.

Взаимодействие клиента и сервера происходит путем обмена сообщениями. Сообщения от клиента называются запросами (request), а сообщения от сервера — ответами (response). Каждое сообщение должно содержать заголовок и может содержать так называемое тело.

client_server_architecture.png

Когда какой-либо веб-клиент (браузер или поисковый робот) запрашивает у сервера информацию (страницу, файл или другие данные), сервер пытается выполнить запрос и отдать результат клиенту (ведь клиент всегда прав ;) Если серверу это удается, он сообщает об этом (в заголовке ответа) и отдает (в теле ответа) то, что нужно клиенту. Но бывает и такое, что сервер не может найти нужный файл/страницу, или он перегружен запросами, или для доступа к контенту нужна авторизация, или еще что-то. Обо всем этом он также должен сообщить клиенту. Клиент и сервер общаются они при помощи кодов. Получив ответ от сервера, клиент должен его обработать согласно коду состояния.

Эти коды стандартизированы и используются всеми серверами и клиентами, которые взаимодействуют при помощи протокола HTTP. Они состоят из 3 цифр, первая из которых указывает на класс (категорию) кода статуса. Существует 5 классов:

1ххInformation (Информация) — временные коды, при помощи которых сервер сообщает клиенту о том, что он принял и обрабатывает запрос

  • 100 Continue
  • 101 Switching Protocols
  • 102 Processing

2ххSuccess (Успешное выполнение) — передаются при успешной обработке запроса

  • 200 OK
  • 201 Created
  • 202 Accepted
  • 203 Non-Authoritative Information
  • 204 No Content
  • 206 Partial Content

3ххRedirection (Перенаправление) — сообщают о том, что для выполнения запроса клиенту нужно выполнить дополнительные действия.

  • 300 Multiple Choices
  • 301 Moved Permanently
  • 302 Found
  • 303 See Other
  • 304 Not Modified
  • 307 Temporary Redirect
  • 308 Permanent Redirect

4ххClient Error (Ошибка на стороне клиента) — сервер сообщает, что не может выполнить запрос, т.к. он содержит ошибку.

  • 400 Bad Request
  • 401 Unauthorized
  • 402 Payment Required
  • 403 Forbidden
  • 404 Not Found
  • 405 Method Not Allowed
  • 406 Not Acceptable
  • 407 Proxy Authentication Required
  • 408 Request Timeout
  • 409 Conflict
  • 410 Gone
  • 411 Length Required
  • 412 Precondition Failed
  • 413 Payload Too Large
  • 414 URI Too Long
  • 415 Unsupported Media Type
  • 416 Range Not Satisfiable
  • 417 Expectation Failed
  • 418 I’m a teapot
  • 421 Misdirected Request
  • 422 Unprocessable Entity
  • 423 Locked
  • 424 Failed Dependency
  • 426 Upgrade Required
  • 428 Precondition Required
  • 429 Too Many Requests
  • 431 Request Header Fields Too Large
  • 451 Unavailable For Legal Reasons

5ххServer Error (Ошибка на стороне сервера) — запрос был принят, но сервер не может его обработать

  • 500 Internal Server Error
  • 501 Not Implemented
  • 502 Bad Gateway
  • 503 Service Unavailable
  • 504 Gateway Timeout
  • 505 HTTP Version Not Supported
  • 507 Insufficient Storage
  • 508 Loop Detected

Кодов, как вы ведите, очень много, и вам, конечно же, не нужно забивать ими голову. Но некоторые, наиболее часто встречающиеся, полезно знать.

Давайте рассмотрим указанные выше классы с их наиболее распространенными кодами и особенно подробно разберем последние два класса кодов.

1хх Информационные коды

Это коды, при помощи которых сервер информирует клиента о том, что его запрос принят в обработку. При этом, от клиента не требуется никаких дальнейших действий.

100 Continue

Этот код ответа означает, что сервер удовлетворён начальными сведениями о запросе, и клиент может продолжать. Получение такого HTTP кода может потребоваться, если клиенту нужно отправить на сервер большой объем данных (например, через метод POST) и перед отправкой этих данных нужно убедиться, в том, что сервер сможет их принять.

101 Switching Protocols 

При помощи HTTP кода 101 сервер предлагает клиенту переключиться на более подходящий для указанного ресурса протокол. Список предлагаемых протоколов передается в заголовке ответа Update.

102 Processing

Код ответа 102 информирует клиента о том, что полученный от него запрос принят в обработку, но для его выполнения потребуется время. Получив такой ответ, клиент должен дожидаться выполнения запроса и не разрывать соединение с сервером (сбросить таймер и ожидать следующего ответа).

2хх Успешное выполнение

Коды этого класса передаются, если запрос от клиента был успешно получен, принят, обработан и выполнен сервером.

200 OK

Код статуса 200 OK является, наверное, самым важным, т.к. он означает, что сервер успешно выполнил то, что от него хотел клиент. Например, если клиент запрашивал определенную страницу, в ответе сервера, вместе с HTTP статусом 200, он также найдет и ее HTML-код. А если в запросе клиента были данные (например, заполненной формы регистрации), которые нужно было обработать, в ответе, помимо кода 200, будет информация о результате обработки.

201 Created

Этот HTTP код сообщает клиенту о том, что в результате его запроса был создан новый ресурс (например, запись в блоге или комментарий). Обычно, этот код передается в ответ на запрос с методом PUT. Кроме кода 201, в ответе сервера также передается ссылка на созданный ресурс.

202 Accepted

Код 202 означает, что запрос принят в обработку, но еще не выполнен, и т.к.его выполнение может занять длительное время, клиенту не обязательно ждать результата. При этом нет гарантии, что запрос будет выполнен, он может быть и отклонен.

203 Non-Authoritative Information

Данный код означает, что сервер понял и принял запрос, но возвращаемая им информация могла устареть или является неактуальной, т.к. взята из другого источника (например, с другого сервера или из резервной копии) и поэтому, полученные данные не стоит воспринимать как авторитетные.

204 No Content

HTTP код 204 означает, что сервер успешно обработал запрос, но в своем ответе не передает каких либо данных, и поэтому клиенту не следует обновлять содержимое документа.

206 Partial Content

206_partial_content.jpg

Этот код сообщает клиенту о том, что сервер передает только часть запрошенного ресурса, т.к. в своем запросе клиент указал диапазон данных (заголовок диапазона (Range Header). Это позволяет докачивать прерванные загрузки или разбивать скачивание на несколько потоков).

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

HTTP коды этого класса сообщают клиенту о том, что для выполнения его запроса требуются дополнительные действия (например, отправка запроса по другому адресу — перенаправление).

При этом, перейдя по новому адресу, который возвращается в ответе сервера вместе с кодом этого класса, клиент может быть повторно перенаправлен дальше, а потом еще дальше и т.д. Он также может быть перенаправлен и по тому адресу, где уже был и тогда перенаправление зацикливается. Поэтому при множественных перенаправлениях клиенты обычно спрашивают у пользователя разрешение.

300 Multiple Choices

HTTP код 300 означает, что по указанному адресу находятся сразу несколько ресурсов (например, файлы с разным MIME-типом, разные языковые версии страницы, разные форматы видео- или аудио-ресурса), и сервер предлагает клиенту выбрать из списка ресурсов, который также передается в ответе.

301 Moved Permanently

Если клиент получает от сервера ответ с кодом HTTP статуса 301 Moved Permanently — это значит, что запрашиваемый ресурс окончательно перенесен на новое место, так сказать на ПМЖ ;) (permanent — постоянный). Новый адрес также передается в заголовке ответа.

301_moved_permanently.jpgЕсли вы переносите проиндексированную поисковиками страницу и не хотите потерять трафик на нее, убедитесь, что по старому адресу возвращается код 301 Moved Permanently. Тогда поисковая система склеит оба адреса. 

302 Found (ранее Moved Temporarily)

Код 302 Found используется сервером для сообщения клиенту о том, что запрашиваемый ресурс был (временно) перемещен по новому адресу, где его все-таки удалось найти. Вместе со статусом 302 сервер передает заголовок с новым адресом.

Многие клиенты, в нарушение стандарта, для перехода по новому адресу используют метод GET, даже если в начальном запросе использовался другой метод (POST/PUT/DELETE), что может привести к непредвиденным последствиям. Чтобы этого избежать, следует использовать статусы 303 и 307.

303 See Other

Этот код означает, что сервер успешно обработал запрос клиента, но предлагает ему перейти по другому адресу (также передается в этом ответе), используя метод GET.

Такое можно часто встретить на сайтах, работающих на движке WordPress. Когда вы что-то пишете в поле поиска и нажимаете на клавишу Enter, открывается не список результатов поиска, а наиболее релевантный результат. Происходит примерно следующее: клиент отправляет запрос с поисковой фразой методом POST на сервер, где установлен WP, который выбирает наиболее подходящий результат и возвращает ответ с кодом 303 See Other и адресом выбранной статьи. Получив этот ответ, клиент (браузер) переходит по указанному адресу.

304 Not Modified

Код статуса HTTP 304 Not Modified означает, что хотя запрашиваемый ресурс и был найден по указанному адресу, его версия не отличается от указанной в заголовке запроса (If-Modified-Since), поэтому нет необходимости пересылать его снова.

307 Temporary Redirect

Этот код означает, что запрашиваемый ресурс находится по другому адресу (он тоже передается в ответе), но последующие запросы нужно направлять по старому адресу. В отличие от кода 302, этот статус не позволяет менять метод запроса, т.е. если в первом запросе использовался метод POST, то и в запросе по новому адресу должен использоваться POST.

308 Permanent Redirect

Этот HTTP код, как и код 301 означает, что запрашиваемый ресурс окончательно перенесен на новое место, но в отличие от него, как и 307 код, не позволяет менять метод запроса.

4xx Ошибка на стороне клиента

Данный класс содержит коды, информирующие, что сервер не смог вернуть запрашиваемый ресурс по вине клиента (допущена ошибка в запросе или не выполнены действия, которые должны предшествовать запросу и т.д.) В большинстве случаев вместе с кодом ошибки сервер возвращает пояснение, в котором сказано, что за ошибка произошла, является ли она временной или постоянной. Это пояснение клиент должен вывести пользователю.

Ошибка 400 Bad Request

Что означает 400 Bad Request?

Дословно Bad Request переводится как «плохой запрос». При помощи HTTP кода 400 сервер сообщает клиенту, что не может обработать запрос из-за допущенной в нем синтаксической ошибки.

Не смотря на то, что класс кодов 4хх говорит о том, что ошибка произошла на стороне клиента, часто бывает, что сервер из-за неправильной конфигурации или ошибки в скриптах не может обработать стандартный запрос клиента и выдает ошибку 400.

Как исправить 400 Bad Request? 

Ниже описаны некоторые характерные причины ошибки 400 и способы их устранения.

На стороне клиента

  • В адресе запрашиваемого ресурса допущена ошибка. Проверьте, правильно ли указан путь, нет ли ошибок в регистре (некоторые части URL могут быть чувствительны к регистру), нет ли недопустимых спец. символов (например, пробела).
  • Клиент пытается загрузить файл, размер которого превышает максимально допустимый. Убедитесь, что загружаемый вами файл меньше допустимого размера и загрузка файлов такого типа разрешена.
  • Сервер распознает в запросе клиента признаки ложного запроса и, расценив его как атаку, блокирует. В своем запросе клиент должен передавать определенные заголовки, которые позволяют серверу его идентифицировать. Если этих заголовков нет или сервер находит в них ошибку, он отвечает HTTP кодом 400. Часто такая ситуация возникает, клиент использует устаревшие и недействительные файлы куки. Поэтому стоит их удалить или, если вы авторизованы, выйти из аккаунта и снова войти.

На стороне сервера

  • Ошибка 400 появилась после недавнего обновления CMS сайта или добавления/обновления используемых им плагинов. Если это так, попробуйте «откатиться» до предыдущей версии и/или удалить недавно установленные плагины.
  • Ошибка 400 появилась без вмешательства в код. Необходимо проверить логи сервера, чтобы понять, что могло ее вызвать, т.к. причины могут быть самые разные от неправильной конфигурации сервера до опечаток в исходном коде сайта.

Ошибка 401 Unauthorized

Что означает HTTP статус 401 Unauthorized?

Unauthorized переводится как «неавторизован». При помощи кода 401 сервер сообщает клиенту, что для доступа к ресурсу требуется авторизация, и клиент должен отправить в следующем запросе заголовок WWW-Authenticate с именем пользователя и паролем. В противном случае, либо если передано неверное имя или пароль, сервер снова вернет ошибку 401.

401_unauthorized.jpg

Как исправить 401 Unauthorized? 

Если вы пользователь сайта

  • Убедитесь, что вы запрашиваете правильный ресурс (страницу, файл). Возможно, в адресе допущена ошибка и вы пытаетесь открыть страницу, доступ к которой ограничен.
  • Попробуйте предварительно залогиниться на сайте, и уже потом запросить нужный ресурс.
  • Убедитесь, что вы ввели корректные данные для авторизации (логин и пароль).
  • Попробуйте удалить кэш браузера. Часто браузер кэширует введенные вами неправильные данные и затем пытается их передать серверу. Удалить куки этого сайта также не повредит.
  • Просто обновите страницу, либо закройте ее и откройте снова. Иногда этого бывает достаточно.
  • Если ни один из предыдущих способов не помог, свяжитесь с администрацией сайта и сообщите об этой ошибке.

Если вы владелец сайта

  • Если ваш сайт работает на одной из популярных CMS (WordPress, Joomla, Drupal) и использует какие-либо плагины, особенно те, которые так или иначе связаны с безопасностью, возможно, именно они вызывают данную ошибку. Попробуйте отключить их все и затем последовательно включать по одному, проверяя сайт на наличие ошибки 401.
  • Возможно, вы используете способ дополнительной защиты некоторых частей своего сайта, ограничивая доступ к ним HTTP-авторизацией через .htaccess/.htpasswd. Если это так, попробуйте временно отключить эту защиту и убедитесь, что вы не ограничиваете доступ к страницам, которые должны быть в открытом доступе.
  • Сервер мог временно ограничить доступ к запрашиваемому ресурсу, расценив действия клиента как злонамеренные. В таком случае нужно просто расслабиться и позаниматься чем-то другим, а затем через какое-то время попробовать снова.

Ошибка 402 Payment Required

Этот HTTP статус пока не получил широкого распространения. Код 402 зарезервирован для использования в будущем. Сейчас его можно встретить, например, при превышении дневного лимита запросов к Google Developers API, ну или в названии одного из эпизодов сериала Mr. Robot ;)

Ошибка 403 Forbidden

Что означает 403 Forbidden?

Дословно Forbidden переводится как «запрещен». Когда сервер возвращает HTTP код 403 Forbidden это значит, что, несмотря на то, что переданный клиентом запрос содержит валидные данные и понятен, сервер все-таки отказывает в его выполнении, и клиенту не следует пытаться повторить этот запрос.

Ошибка 403 может появляться в двух случаях:

  • Владельцы сайта правильно настроили систему безопасности и доступ к запрашиваемому ресурсу для вас ограничен (вы не авторизованы, у вас недостаточно прав или вы пытаетесь выполнить действие, которое для вас недоступно).
  • Владельцы сайта неправильно настроили систему безопасности, из-за чего вы не можете получить доступ к ресурсу, который должен быть для вас открыт.

Как исправить 403 Forbidden?

Если вы посетитель сайта

  • Проверьте, не допущена ли ошибка в адресе ресурса (страницы, директории, файла и т.д.), к которому вы пытаетесь получить доступ. Возможно, вы «стучите не в ту дверь».
  • Убедитесь в том, что вы авторизованы на сайте.
  • Обновите страницу или попробуйте зайти позже. Возможно, ошибка вызвана некорректной настройкой сайта и его владельцы уже пытаются ее устранить.
  • Очистите кэш и куки. Бывает, что браузер передает устаревшие или некорректные учетные данные.
  • Если ничего не помогает, сообщите владельцам сайта об этой ошибке.

Если вы владелец сайта

  • Попробуйте переименовать файл .htaccess. Если после этого ошибка 403 исчезла, значит проблему следует искать в этом файле (и в гугле).
  • Зайдите на сайт по протоколу FTP или воспользуйтесь файловым менеджером в панели управления сайтом и убедитесь, что запрашиваемые ресурсы имеют нужные права доступа (CHMOD), например 755.
  • Попробуйте отключить на своем сайте все плагины и затем последовательно включайте их по одному, проверяя сайт на наличие ошибки 403.

Ошибка 404 Not Found

Что означает 404 Not Found?

Это наверное самая часто встречающаяся, и потому, самая широко известная ошибка. Дословно Not Found переводится как «не найдено». Когда сервер возвращает HTTP код 404 Not Found это значит, что он не смог найти по указанному адресу запрашиваемый ресурс. При этом сервер как бы не исключает возможности того, что ресурс может появиться снова, поэтому не запрещает клиенту обращаться с данным запросом позже.

Иногда сервер может возвращать статус 404 даже если ресурс найден, но доступ к нему ограничен, так сказать, чтобы никто не догадался.

Но чаще код 404 означает, что ресурс перемещен или удален. Хотя в случае перемещения страницы или файла, серверу полагается возвращать HTTP код 301 Moved Permanently и новый адрес ресурса, а в случае удаления — код 410 Gone, т.к. для использования обоих этих статусов требуются дополнительные настройки сервера, на многих сайтах просто отдается дефолтный HTTP код 404.

Как исправить 404 Not Found?

Если вы посетитель сайта

  • Проверьте, не допущена ли ошибка в адресе ресурса (страницы, директории, файла и т.д.). Возможно, вы ищите его не там, где надо. Убедитесь, что в адресе не используются недопустимые спец. символы (например, пробел). Кроме того, т.к. некоторые части URL могут быть чувствительны к регистру, убедитесь, что правильно используете в адресе заглавные и строчные буквы.
  • Попробуйте подняться на уровень выше. Например, если вы ищете http://example.com/a/b/c и получаете ошибку 404, попробуйте перейти на http://example.com/a/b, а в случае той же ошибки — на http://example.com/a и т.д.
  • Воспользуйтесь навигацией по сайту. В основном, контент на сайтах логически структурирован и организован. Если вы знаете, что ищете, попробуйте воспользоваться меню или виджетами сайта, чтобы это найти.
  • Воспользуйтесь поиском по сайту. На большинстве современных сайтов есть система поиска. Попробуйте поискать интересующую вас страницу по ее названию.
  • Воспользуйтесь поиском Яндекс или Google. Вы можете поискать интересующий вас ресурс, введя в поле поиска имеющийся адрес. Если в нем допущена ошибка, поисковик предложит вам правильный вариант. Кроме того, вы можете поискать страницу на нужном сайте при помощи специальных операторов (например в Яндексе, site:siterost.net cпособы монетизации сайта).
  • Очистите кэш браузера. Возможно, вы получаете HTTP код 404 именно из-за него.
  • Если ни один из перечисленных способов не помог, попробуйте зайти позднее или связаться со службой поддержки сайта.

Если вы владелец сайта

  • Когда пользователь не находит то, что ищет, в большинстве случаев, он просто закрывает вкладку и покидает ваш сайт, возможно, навсегда. Поэтому важно максимально сократить количество ошибок 404. Чтобы найти те страницы, на которых они возникают, воспользуйтесь инструментами Яндекс.Вебмастер и Google Search Console.
  • После того, как вы нашли страницы, которые отдают код 404, проанализируйте их. Возможно, посетителей этих страниц следует перенаправить по другому адресу при помощи 301 редиректа.
  • Проверьте файл .htaccess на наличие ошибок в правилах перенаправления (Rewrite rule)
  • Восстановите удаленные страницы, если, конечно, они нужны.
  • Сделайте информативную страницу 404, которая будет информировать пользователя, о том, что интересующий его контент нужно поискать в другом месте. На страницу 404 можно добавить форму поиска, списки основных разделов, важных страниц, последних записей и т.д.

Ошибка 405 Method Not Allowed

Дословно Method Not Allowed переводится как «метод не разрешен». При помощи кода 405 сервер сообщает клиенту, о том, что используемый тип HTTP-запроса по данному адресу не поддерживается. Например, клиент передает GET-запрос по адресу, где ожидаются данные формы, отправленные через POST, или клиент пытается обновить доступный только для чтения ресурс через метод PUT. 

Ошибка 406 Not Acceptable

Дословно Not Acceptable переводится как «недопустимо». Такой код передается сервером, когда запрашиваемый ресурс не может вернуть контент в формате, указанном клиентом в заголовке запроса Accept.

Ошибка 407 Proxy Authentication Required

Что означает 407 Proxy Authentication Required?

Дословно Proxy Authentication Required переводится как «требуется авторизация прокси». Если в ответе сервера передается HTTP код 407, это значит, что запрос клиента не может быть выполнен, т.к. отсутствуют данные для авторизации на прокси-сервере, через который производится обмен данными. Этот код по смыслу похож на код 401 Unauthorized (Неавторизован), но в отличие от него, говорит о том, что клиенту нужно авторизоваться не на самом сервере, а на прокси-сервере, который находится между ними.

Получив неавторизованный запрос, прокси-сервер возвращает статус 407 вместе с заголовком Proxy-Authenticate, в котором сообщается, какой тип авторизации требуется (type, самый распространенный тип авторизации в данном случае Basic), и какие привилегии она дает (realm). В ответе клиента должен содержаться заголовок Proxy-Authorization с типом авторизации (тот же, что и в полученном от прокси-сервера ответе, в основном Basic) и данные для авторизации (credentials, в случае если ее тип Basic, закодированную в Base64 строку вида username:password).

Как исправить 407 Proxy Authentication Required?

Не смотря на то, что коды класса 4хх свидетельствуют об ошибках на стороне клиента, причиной ошибки 407 Proxy Authentication Required может быть и некорректная настройка основного сервера или прокси-сервера, через который передается запрос. Все же, начать поиски причины этой ошибки следует с клиента.

Если вы посетитель сайта

  • Проверьте, не допущена ли ошибка в адресе ресурса (страницы, директории, файла и т.д.). Строгие настройки безопасности сервера могут блокировать доступ ко всем ресурсам, кроме разрешенных. Возможно, вы запрашиваете то, что для вас недоступно.
  • Попробуйте обновить страницу или зайти позже. Возможно, ошибка 407 вызвана некорректной настройкой сервера или работающих на нем скриптов, и администраторы сайта работают над ее устранением
  • Очистите кэш и куки.
  • Если ничего не помогает, и вы уверены, что должны иметь доступ к заблокированному контенту, сообщите о проблеме администрации сайта.

Если вы владелец сайта

  • Начните поиск проблемы с CMS. Несмотря на то, что большинство популярных систем (WordPress, Drupal, Joomla) хорошо настроены и протестированы профессионалами, плагины/модули/расширения и т.д. часто создают, мягко говоря, менее профессиональные авторы. Поэтому, если вы недавно устанавливали какое-либо дополнение, возможно, причина ошибки 407 кроется в нем. Попробуйте отключить все новые дополнения, а затем последовательно их включить.
  • Проверьте базу данных. Возможно вы, или установленные вами расширения, внесли туда какие-либо изменения.
  • Проверьте файлы настройки сервера, в частности инструкции по обработке запросов. Скорее всего на вашем сервере установлено одно из двух самых распространенных серверных ПО: Apache или nginx.
  • Если используется Apache, проверьте файл .htaccess на наличие директив с префиксом Proxy (например, ProxyPass или ProxyPassReverse). Попробуйте их закомментировать и потестить.
  • Если используется nginx, проверьте файл nginx.conf на наличие директив с префиксом proxy_ (например, proxy_pass). Попробуйте закомментить их или блок директив, в котором они находятся.
  • Изучите логи вашего сервера. Возможно, ключ к решению проблемы, кроется в них. Чтобы найти логи используемого на вашем сервере ПО, поищите в Яндекс или Гугле «логи [название вашей CMS]» (например, логи WordPress), «логи [название языка, на котором написан ваш сайт]» (например, логи PHP), «логи [название вашего серверного ПО]» (например, логи Apache).

408 Request Timeout

Что означает 408 Request Timeout?

Дословно Request Timeout переводится как «тайм-аут запроса». Если в ответе сервера передается HTTP код 408, это значит, что время ожидания запроса клиента истекло и сервер разрывает соединение. При этом повторные запросы по данному адресу не запрещаются.

Как исправить 408 Request Timeout?

Если вы посетитель сайта

  • Обновите страницу. Возможно, ошибка 408 возникла из-за какого-либо временного сбоя в соединении. Чаще всего именно обновление страницы решает данную проблему.
  • Проверьте свое соединение с интернетом. Попробуйте открыть в новой вкладке Яндекс или Гугл. Если они грузятся так же как обычно, скорее всего ошибка 408 связана с работой конкретного сайта.
  • Если все сайты грузятся медленно, вероятно, проблема связана с вашим соединением. Попробуйте перезагрузить роутер.
  • Если ни один способ не помог, попробуйте зайти на сайт позже. Возможно, причина ошибки 408 Request Timeout находится на стороне сервера и к тому времени будет устранена.

Если вы владелец сайта

  • Отключите недавно установленные плагины, модули, темы оформления. Если ваш сайт работает на одной из популярных CMS, возможно, причиной ошибки 408 является некорректная работа расширений.
  • Проверьте файлы с инструкциями по обработке запросов на вашем сервере: .htaccess на Apache или nginx.conf на сервере nginx. В файле .htaccess поищите директории KeepAliveTimeout или RequestReadTimeout. А в nginx.conf нужно поискать директории client_body_timeout, client_header_timeout, или keepalive_timeout. Более подробную информацию вам придется погуглить.
  • Изучите логи вашего сервера. Они могут направить вас по нужному пути.

Ошибка 409 Conflict

Что означает 409 Conflict?

Дословно Conflict переводится как «Конфликт». Сервер возвращает HTTP код 409 в случае конфликтного обращения к ресурсу, например, когда два клиента пытаются изменить его при помощи метода PUT, либо клиент пытается загрузить на сервер с системой контроля версий файл, который старше уже загруженного.

409_conflict.jpg

В основном, код 409 отдает не сам сервер, а работающие на нем скрипты (CMS, системы контроля версий и т.д.)

Как исправить 409 Conflict?

  • Проверьте корректность URL. Если вы пытаетесь получить ресурс (т.е. используете метод GET), например, открыть страницу или скачать файл, и получаете ошибку 409 — скорее всего вы допустили ошибку в адресе ресурса.
  • Если вы изменяете ресурс, подождите немного. Возможно, одновременно с вами его пытается изменить кто-то еще.
  • Обновите страницу и попробуйте снова. Возможно, пока вы вносили изменения в ресурс (вернее в вашу копию ресурса), он уже был изменен кем то другим. И для того, чтобы внести свои изменения вам нужно сначала скачать обновленный ресурс.

Ошибка 410 Gone

HTTP статус 410 Gone означает, что запрашиваемый ресурс удален и больше не будет доступен по данному адресу. Если клиентом является поисковый робот, он должен удалить ресурс из своего индекса.

Ошибка 411 Length Required

Данный HTTP код сообщает клиенту о том, что в его запросе отсутствует заголовок Content-Length, требуемый ресурсом.

Ошибка 412 Precondition Failed

При помощи HTTP кода 412 сервер сообщает, что запрашиваемый ресурс не соответствует требованиям, которые клиент указал в заголовках запроса.

Ошибка 413 Payload Too Large

Данный код информирует о том, что сервер не может обработать запрос, т.к. он слишком большой.

Ошибка 414 URI Too Long

414_uri_too_long.jpg

HTTP код 414 сообщает клиенту о том, что запрос не может быть обработан из-за слишком длинного URI. Основной причиной ошибки является передача большого объема данных (например, из формы) через метод GET вместо POST.

Ошибка 415 Unsupported Media Type

HTTP код 415 означает, что запрос клиента отклонен т.к. содержит данные, тип которых ресурс не может обработать. Это может случиться, например, при загрузке на сервер файла, формат которого не поддерживается обработчиком загрузки.

Ошибка 416 Range Not Satisfiable

Этот статус возвращается если в запросе клиента присутствует заголовок Range с указанием байтового диапазона требуемого ресурса, который находится за пределами ресурса. Другими словами, клиент запросил часть ресурса, которую сервер не может предоставить. Вместе с ошибкой 416 сервер может вернуть заголовок Content-Range, в котором будет указан реальный размер ресурса.

Ошибка 417 Expectation Failed

Этот код означает, что запрос клиента не может быть выполнен, т.к. сервер по какой-либо причине не может удовлетворить требованиям указанным в заголовке запроса Expect.

Ошибка 418 I’m a teapot

Дословно сообщение I’m a teapot переводится как «я — чайник». В 1998 году в качестве первоапрельской шутки было создано рабочее предложение (RFC 2324) описывающее HTCPCP, протокол являющийся расширением HTTP, и предназначенный для взаимодействия клиента и кофеварки. Ошибка 418 должна возвращаться при попытке заварить кофе в чайнике. Такой вот гиковский юморок.

Не смотря на то, что статус 418 является шуточным, его поддерживают некоторые популярные фреймворки (например, Django и Symfony). А Google сделал специальную страницу, которая возвращает HTTP код 418 и «наливает чай».

Ошибка 421 Misdirected Request

Этот код означает, что запрос был направлен серверу, который не способен вернуть ответ. HTTP статус 421 может возвращаться сервером, который не настроен на создание ответов для комбинации схемы и полномочий, включенных в URI запроса.

Ошибка 422 Unprocessable Entity

Данный статус свидетельствует о том, хотя запрос был правильно составлен и сервер его принял, он, все же, не может его обработать из-за какой-то семантической ошибки.

Ошибка 423 Locked

Этот код говорит от том, что обращение к ресурсу с использованием указанного в запросе метода заблокировано.

Ошибка 424 Failed Dependency

Ошибка 424 возвращается сервером если выполнение запроса зависит от другого запроса, который не был выполнен.

Ошибка 426 Upgrade Required

При помощи этого кода сервер сообщает клиенту о необходимости переключиться на другой протокол (например, SSL). Вместе со статусом 426 в ответе должен содержаться заголовок Upgrade с указанием нужного протокола.

Ошибка 428 Precondition Required

Во избежание одновременного изменения одного ресурса несколькими клиентами используются условные http-запросы, содержащие заголовки If-Match, If-None-Match, If-Modified-Since и If-Unmodified-Since. При помощи кода 428 сервер обязывает клиент их использовать.

Ошибка 429 Too Many Requests

Что означает 429 Too Many Requests?

Дословно Too Many Requests переводится как «слишком много запросов». При помощи этого статуса сервер сообщает о том, что в сейчас не принимает запросы от данного клиента, т.к. за короткий промежуток времени их от него поступает слишком много. Вместе с кодом 429 сервер также передает заголовок Retry-After с указанием количества секунд, через которое клиент может повторить запрос.

429_too_many_requests.jpg

Как исправить 429 Too Many Requests?

В большинстве случаев возникновение ошибки 429 связано с тем, что клиент слишком часто отправляет запросы к какому-то ресурсу (например, к странице входа, подбирая пароль). Другой причиной может быть ограничение на количество запросов к ресурсу (например, лимит на количество обращений через REST API в час). Наиболее логичным в данном случае подчиниться рекомендации сервера и повторить запрос через время указанное в заголовке Retry-After. Если это не помогает — надо гуглить, т.к. решение проблемы зависит от конкретных обстоятельств ее возникновения.

Ошибка 431 Request Header Fields Too Large

431_header_fields_too_large.jpg

Этот HTTP код означает, что сервер отказывается выполнять запрос, т.к. содержащиеся в нем заголовки слишком большие (имеется в виду либо общий размер всех заголовков, либо размер какого-то одного, обычно это уточняется в теле ответа). Причинами этой ошибки часто бывают слишком длинный URL в заголовке Referer, а также большое количество кукисов (или кук, как кому больше нравится), отправленных вместе с запросом.

Ошибка 451 Unavailable For Legal Reasons 

Этот код означает, что сервер блокирует доступ к ресурсу или набору ресурсов в связи с требованием закона. Код 451 является отсылкой к роману Рэя Брэдбери «451 градус по Фаренгейту», в котором описывает общество, где книги находятся под запретом.

5xx Ошибка на стороне сервера

В этот класс включены коды описывающие случаи, когда сервер знает, что совершил ошибку или не способен по каким-либо причинам выполнить запрос. Помимо кода ошибки, ответ сервера должен включать уточнение обстоятельств ее возникновения, а также информировать о том, является ли ситуация временной или постоянной (это касается всех методов, кроме HEAD). В свою очередь, клиент должен вывести эту информацию пользователю.

Ошибка 500 Internal Server Error

Что означает 500 Internal Server Error?

Дословно Internal Server Error переводится как «Внутренняя ошибка сервера». Ошибка 500 является дефолтной и возвращается, когда более специфичные статусы не подходят. Поэтому найти ее причину довольно сложно. Это может быть как синтаксическая ошибка в коде скрипта-обработчика, так и ошибка диска или отсутствие какого-либо программного модуля, а также еще много всего.

Как исправить 500 Internal Server Error?

Если вы посетитель сайта

Так как 500 это серверная ошибка, вы мало что можете сделать. Все же можно попробовать следующее:

  • Обновите страницу. Возможно, ошибка уже устранена, и сайт нормально работает. Если это не помогло, попробуйте зайти позже. Вероятно, владельцам сайта требуется больше времени для ее устранения.
  • Удалите кэш и почистите куки. Они могут быть причиной того, что вы видите ошибку 500. Также можно попробовать открыть нужную страницу в другом браузере или на другом устройстве.
  • Проверьте правильность URL.
  • Если ничего не помогает, попробуйте связаться с администрацией сайта и сообщить об ошибке.

Если вы владелец сайта

  • «Откатите» все недавно внесенные изменения. Отключите недавно установленные плагины и расширения. Довольно часто 500 Internal Server Error возникает из-за ошибок в коде. Достаточно самой безобидной опечатки.
  • Проверьте права файлов и папок. В большинстве случаев для корректной работы требуются 0755 (-rwxr-xr-x).
  • Отключите сторонние ресурсы. Возможно, скрипт-обработчик запроса обращается к сторонним серверам и их ответ не укладывается в отведенные временные рамки. Если это так, попробуйте настроить соответствующие лимиты.
  • Проверьте файл .htaccess на наличие ошибок.
  • Изучите логи сервера. Скорее всего они вас на что-то наведут.

Как я уже сказал, причин возникновения ошибки 500 Internal Server Error может быть великое множество. Для начала попробуйте способы описанные выше. Если ничего не помогает — связывайтесь с поддержкой хостинга, у них, скорее всего, есть возможность более точно диагностировать эту проблему.

Ошибка 501 Not Implemented

При помощи HTTP кода 501 сервер сообщает о том, что механизм необходимый для выполнения запроса на нем пока не реализован. Эта ошибка обычно возникает, когда сервер не может обработать запрос указанным в нем методом.

Ошибка 502 Bad Gateway

Что означает 502 Bad Gateway?

Bad Gateway переводится на русский язык как «Неверный шлюз». Если в ответ на свой запрос клиент получает HTTP код 502, это значит, что сервер, к которому он обратился, выступает в роли прокси и, в свою очередь, получил неверный ответ от вышестоящего сервера.

502_bad_gateway.jpg

Причин возникновения данной ошибки может быть несколько. Вот несколько наиболее вероятных:

  • перегруженность сервера — большое количество одновременных запросов и/или выполняемых процессов, нехватка ресурсов (оперативной памяти, скорости процессора или диска);
  • таймаут соединения между серверами — сервер не укладывается с ответом в установленные лимиты;
  • неполадки с соединением — проблемы с маршрутизацией, блокировка запросов фаерволом, физические повреждения сети и т.д.
  • ошибки в коде скриптов, обрабатывающих запрос — синтаксические ошибки и опечатки в коде, устаревшие плагины, неоптимизированный код и т.д.
  • ребут сервера — перезагрузка основного сервера, вызванная, например, сбоями в его работе

Как исправить 502 Bad Gateway?

Если вы посетитель сайта

  • Обновите страницу. В основном, ошибка 502 связана с временными перебоями в работе сервера.
  • Попробуйте открыть страницу в другом браузере или на другом устройстве, чтобы убедиться, что ошибка вызвана проблемами на сервере. Если ошибка выводится только в этом браузере, очистите куки и удалите кэш.
  • Проверьте правильность URL. Возможно, в адресе страницы допущена ошибка, из-за которой браузер отправляет запрос, который сервер не может обработать.

Если вы владелец сайта

  • Проверьте, работает ли сервер. Возможно, ваш хостинг-провайдер проводит сервисное обслуживание (и не сообщил вам об этом заранее, так бывает), или сервер по какой-либо причине перезагрузился.
  • Если вы недавно изменяли записи DNS (переносили сайт на другой IP-адрес или переезжали к другому хостеру), внесенные изменения вступают в силу не мгновенно, этот процесс обычно занимает несколько часов. В данном случае нужно просто расслабиться и подождать.
  • Просмотрите серверные логи. В них, как правило, содержится много дополнительной информации об ошибках.
  • Проверьте конфигурацию фаервола. Из-за неверных настроек он может воспринимать некоторые запросы как атаку и блокировать их.
  • Отключите недавно установленные плагины/модули/расширения. Откатите все недавно внесенные изменения и затем поочередно вносите, постоянно тестируя работоспособность сервера.
  • Если ничего не помогает — свяжитесь со службой поддержки вашего хостинг провайдера.

Ошибка 503 Service Unavailable

Что означает 503 Service Unavailable?

Service Unavailable переводится на русский как «Сервис не доступен». HTTP статус 503 означает, что сервер не может обработать запрос т.к. в данный момент он перегружен запросами или находится на обслуживании (например, на нем идет обновление программного обеспечения).

Обычно это временное явление и, сервер, в идеале, должен сообщить, когда клиент может попробовать снова к нему обратиться, в заголовке Retry-After.

Как исправить 503 Service Unavailable?

Если вы посетитель сайта

  • Немного подождите. Сервер в данный момент перегружен запросами, не добавляйте ему работы.
  • Обновите страницу (нажмите Ctrl + R или Ctrl + F5). Ошибка 503 является временной, и, возможно, ситуация, которая привела к ее появлению, уже разрешилась.
  • Очистите кэш браузера. Вместе с кодом 503 сервер должен передать клиенту инструкции в отношении кэширования ответа, если он этого не сделал или клиент их не учел, ошибка могла быть записана в кэш.

Если вы владелец сайта

  • Проверьте, не находится ли сервер на запланированном (или незапланированном) обслуживании. Возможно, ваш хостинг-провайдер сообщал вам об этом заранее (а может и не сообщал), и в данный момент обновляет ПО на сервере. Кроме того, некоторые современные CMS обновляются автоматически и во время установки обновления возвращают код 503.
  • Возможно, ваш сервер действительно перегружен запросами (внезапный наплыв посетителей, DDoS-атака на ваш сайт или соседний сайт на этом же сервере). Если он настроен правильно, то во избежание «падения», блокирует какую-то часть запросов. В такой ситуации лучше ему не мешать.
  • Перезагрузите сервер. Этот простой способ часто бывает самым действенным. Ошибка может быть результатом узкого места в цепочке серверов, на которых размещается ваше приложение, поэтому простой ребут может вернуть все в рабочее состояние.
  • Проверьте логи сервера. Возможно, они натолкнут вас на ошибки в коде или в конфигурации сервера.
  • Откатите все недавние изменения в коде сайта, после чего попробуйте по очереди внести их обратно.
  • Обратитесь в службу поддержки хостинга.

Ошибка 504 Gateway Timeout

HTTP код 504 означает, что сервер, к которому обращается клиент, является шлюзом или прокси и он не смог выполнить запрос т.к. не дождался ответа от вышестоящего сервера.

Эта ошибка возникает в процессе взаимодействия серверов, поэтому вы, как посетитель сайта, вряд ли можете что-то сделать. Если вы столкнулись с ошибкой 504, пытаясь открыть какую-то страницу, попробуйте просто обновить ее при помощи Ctrl + F5 или зайти немного позже. Скорее всего, эта ошибка временная и возникла по причине того, что вышестоящий сервер в данный момент перегружен запросами, поэтому ваш прокси-сервер не может получить от него ответ в отведенные для этого рамки и разрывает соединение.

505 HTTP Version Not Supported

Код ответа 505 означает, что версия HTTP, указанная в запросе, сервером не поддерживается.

507 Insufficient Storage

Данный HTTP код сообщает клиенту о том, что на сервере не хватает места для выполнения запроса. Этот статус, в основном, используется для WebDAV клиентов, но может также заменять 413 Payload Too Large.

508 Loop Detected

Этот код свидетельствует о том, что сервер обнаружил бесконечный цикл, пытаясь обработать запрос.

В этой статье мы рассмотрели некоторые основные официальные коды ответов сервера, которые описаны в рабочих предложениях (RFC). Кроме них есть и неофициальные HTTP коды, специфичные для определенных программных продуктов и приложений (Apache, nginx, Cloudflare, AWS и др.). О них я расскажу в одной из следующих статей.

Каждый раз, когда мы кликаем на какую-то ссылку или на наш сайт заходят поисковые роботы, происходит один из диалогов примерно такого содержания:

— Привет, сервер! Я поисковый робот. Могу я просканировать эту страницу?

— Привет! Конечно, заходи. 

— А если вот эту страницу?

— А вот здесь пока ведутся ремонтные работы, приходи позже. 

Язык ответов HTTP понимают и браузеры, и поисковые роботы, и SEO-специалисты, которым он нужен при работе с сайтом.

Если вы до сих пор путаете 301 с 302, и не знаете, зачем нужен 410 ответ — вам просто необходимо разобраться в кодах ответов HTTP, которые встречаются чаще всего. О них я и расскажу в этой статье. А еще мы узнаем, какую роль они отыграют в SEO и как не допустить ошибок в их использовании.

Какие ответы серверов существуют?

Начнем с того, что все коды ответов (состояния) серверов делятся на 5 классов, каждый из которых несет определенный смысл:

  • 1XX. Эти информационные коды говорят о том, что запрос был понят, принят сервером и уже обрабатывается. Такие временные ответы обычно не отображаются на экране пользователей, но служат внутренними кодами для браузеров.
  • 2XX. Обозначают успешную обработку полученного запроса. Они используются браузерами для подтверждения того, что запрос был принят, обработан и отражают его текущий статус.
  • 3XX. Это коды перенаправления. Говорят о том, что серверу нужно выполнить дополнительные действия — например, перейти по редиректу на новый адрес.
  • 4XX. Говорят об ошибке на стороне пользователя. Чаще всего появляются, если время ожидания браузера истекло или запрос был введен неправильно.
  • 5XX. Говорят об ошибке сервера. Это значит, что вы запрашиваете специфический ресурс и он найден, но сервер не может дать вам к нему доступ. В конечном счете, запрос не может быть обработан.

Не все ответы сервера можно увидеть прямо на экране, большинство так и остаются внутренними кодами для браузеров и поисковых роботов. Чтобы быстро узнать статус любой страницы, откройте инструменты разработчика в браузере Chrome (нажмите F12). Перейдите на вкладку Network, обновите страницу и получите список статусов каждого элемента, включая саму страницу:

панель веб-мастеров

Именно в этих трех цифрах в колонке Status зашифрованы данные о состоянии страницы: можно ли ее сканировать, находится ли она по этому адресу, загружается ли все ее содержимое и т. д. 

Какие же коды ответов сервера встречаются чаще всего? И что они значат для оптимизации сайта? Давайте внимательно рассмотрим самые полезные для SEO ответы и способы их обработки.

Ответы серверов, которые встречаются чаще всего 

На самом деле существует более 70 различных кодов состояния сервера, но, скорее всего, вы никогда не столкнетесь с большей половиной из них. Однако знать самые распространенные коды состояния HTTP очень важно, потому что ответы сервера напрямую влияют на индексацию вашего сайта, краулинговый бюджет и продвижение ресурса в поисковых системах. 

301 Moved Permanently 

Говорит о том, что URL был навсегда перенесен на новое место. Браузеры самостоятельно переходят по 301 переадресации — никакого действия от пользователя не требуется. 

301 moved permamently
«Перемещено навсегда»

301 код ответа обычно используют при переводе сайта с HTTP на HTTPS, склейке зеркал (страниц с www и без www), настройке слеша в конце URL, а также при переносе части сайта или всех страниц на новый домен. Этот редирект идеально подходит, если вы хотите передать ссылочный вес старой страницы на новую и сохранить результаты SEO-продвижения. 

Совет: Старайтесь не перенаправлять пользователей с удаленного URL на главную страницу сайта. Например, в вашем интернет-магазине есть карточка с неактуальным товаром, но с неплохой ссылочной массой. Вы хотите сохранить этот вес и ставите 301 редирект на главную. Здесь и кроется ошибка! Такой редирект воспринимается Google как 404 Soft, а это означает, что поисковик не будет передавать сигналы со старого URL на новый. В такой ситуации всегда перенаправляйте страницу на максимально похожую (или 404, если аналогичная страница отсутствует). 

Кроме того, избегайте цепочек редиректов с двумя и больше переадресациями, так как они создают дополнительную нагрузку на сервер и даже могут помешать пользователям перейти на ваш сайт как небезопасный. Google не индексирует дальше 4-го редиректа, и после каждого теряется вес, поэтому лучше ставьте прямые редиректы (вместо 1 -> 2 -> 3, сразу 1 -> 3). 

пример цепочки редиректов

Через несколько лет можете смело удалять 301, чтобы уменьшить нагрузку на сервер. 

302 Found / Moved Temporarily

В отличие от постоянного 301 редиректа, этот — временный. Он говорит о том, что страница найдена, но пока размещена по другому адресу.

Обычно его путали с 301, а после того, как Google объявил, что все 3хx редиректы передают ссылочный вес, — ситуация усугубилась. По факту, его нужно ставить, если вы точно уверены, что будете использовать старый URL снова. Как раз об этом вы и сообщаете поисковику с помощью 302 сигнала, а он в ответ оставляет весь ссылочный вес за старой страницей.

302 found
«Найдено»

Если вы будете использовать 302 редирект на постоянной основе, Google в конечном итоге воспримет его как 301 со всеми вытекающими последствиями. Также проверьте, нет ли на вашем сайте 302 редиректов, которые на самом деле должны быть 301 — такая ошибка встречается очень часто.

304 Not Modified

Сервер отдает 304 Not Modified ответ, когда страница остается неизменной со времени последнего посещения.

Все браузеры хранят в своем кэше данные заголовка Last-Modified. В свою очередь, это позволяет им точно знать, когда страница была в последний раз изменена. И когда поисковые роботы заходят на страницу и видят, что значение заголовка совпадает с уже сохраненным в кэше, сервер возвращает 304 ответ.

304 not modified
«Не изменялось»

Этот код можно использовать для ускорения индексации сайта. Ведь получив такой ответ, поисковый робот не будет загружать страницу, а значит, успеет проиндексировать больше других страниц.

Лучший ответ сервера для оптимизатора ― 200 ОК. Он означает, что запрос успешно обработан. Но 304 несет ту же нагрузку. Как правило, на новые страницы и первое посещение должен выдаваться ответ 200, на все последующие, если не произошло изменений — 304.

403 Forbidden

Этот код ответа говорит о том, что пользователю запрещен доступ к странице.

403 forbidden
«Запрещено»

403 ошибка может появиться, если пользователь вошел на сайт, но у него нет разрешения для доступа к закрытой внутренней сети. Например, если я попытаюсь зайти в кабинет админа SE Ranking по прямому URL, используя пароль и логин личного аккаунта, на экране будет 403 ошибка «Нет доступа». Также 403 ошибка возникает, если индексный файл для главной указан неправильно. Он обязательно должен иметь название index и расширение: *.shtml, *.html, *.htm, *.phtml или *.php.

Кроме того, когда вы переносите сайт на HTTPS, то 403 ответ появится, когда DNS-кэш ещё не успел обновиться, а вы уже что-то от него хотите. Лучше подождите, или, если это вопрос жизни и смерти, обновите кэш принудительно.

Совет: страницы с 403 кодом ответа в конечном итоге будут удалены из индекса, поэтому Google рекомендует использовать 404 ответ вместо 403.

404 Not Found

Самая «любимая» ошибка в SEO. Говорит о том, что сервер ничего не нашел по указанному адресу, хотя соединение между сервером и клиентом прошло успешно.

404 not found
«Не найдено»

Не стоит переживать, если вы увидите много 404 страниц в своей Google Search Console. Поисковик просто сообщает вам, какие страницы удалены, а вам уже решать, нужно ли их проверять. Но что стоит точно сделать — убрать все ссылки на удаленные страницы, чтобы не путать посетителей при навигации по вашему сайту.

Обычно мы видим этот код ошибки, когда вводим неправильный URL в браузер и, как следствие, пытаемся получить доступ к несуществующей странице. Или, например, владелец сайта удалил страницу без редиректа URL по новому адресу. Как результат — 404 ошибка. Чтобы решить проблему, посетителю нужно перепроверить написание URL или попробовать найти информацию на сайте самостоятельно через поиск, а владельцу ресурса ― исправить «битые» ссылки на рабочие. 

404 страница не индексируется и не передает вес. Поэтому некоторые оптимизаторы грешат «мягкой 404», выдавая стандартную страницу с ответом 200 вместо 404. Но это считается плохой практикой, потому что 200 код говорит Google, что по этому URL есть реальная страница. В конечном счете, страница оказывается в индексе, и поисковик продолжает свои попытки сканировать несуществующие URL-адреса вместо сканирования ваших реальных страниц.

Как настроить 404 страницу для своего сайта

Если раньше после перехода на несуществующую страницу пользователь видел перед собой только цифру 404, то сейчас — просто море креатива. Но не стоит забывать, что он  пришел с конкретным запросом и ваша задача — дать решение, а не развлечь его. Поэтому не забудьте оптимизировать 404 страницу — добавьте навигацию своего сайта или контактную форму, особенно если на 404 страницы идет трафик.

пример 404

Если ваша CMS (система управления контентом) не создала 404 страницу, вы можете создать ее самостоятельно. 

С помощью htaccess

Самый простой способ настроить страницу с 404 ошибкой — добавить сообщение об ошибке, например ErrorDocument 404 “<H1> Not Found </ H1>” в сам файл .htaccess. 

В результате у вас должно получиться что-то вроде этого:

пример 404 без дизайна

Через PHP

Вы можете использовать функцию заголовка и менять контент 404 страницы в зависимости от разных сценариев (например, юзер сделал ошибку в URL самостоятельно или уже перешел по «битой» ссылке с какого-то ресурса). 

Детальнее — в этой инструкции. 

Через WordPress

У вас есть несколько вариантов:

  • Отредактируйте существующую страницу 404, которая уже есть в вашей теме.
  • Добавьте свою 404 страницу, если ваша тема ее не предлагает по умолчанию.
  • Используйте плагин для 404 страницы.

Подробности можно узнать здесь.

410 Gone

Этот ответ говорит о том, что страница или документ не доступны по указанному адресу и новый адрес неизвестен. 

Более того, инструмент проверки URL в Google Search Console обозначает 410 ответы как 404, что приводит к еще большему количеству 404 ошибок, обнаруженных в консоли.

410 gone

«Удалено»

410 ответ чаще всего встречается на страницах с низким трастом, без ссылок или тех, что удалены безвозвратно. Например, с товаром, которого больше не будет в продаже.

Поскольку Google все-таки относится к 404 и 410 ошибкам по-разному, нужно использовать 410 код только тогда, когда вы точно знаете, что страница удалена и больше не вернется. Такой ответ по умолчанию кэшируется, поисковый робот больше не заходит на страницу, а она в свою очередь удаляется из индекса. 

410 ответ сервера

Совет: подумайте дважды, прежде чем удалять страницу навсегда. Если вы сомневаетесь, лучше поставить редирект на похожую страницу и получить хотя бы часть текущего трафика. Если же удаления страницы не избежать, обязательно проверьте ссылки, которые на нее ведут — как только страница будет удалена, магия ссылок закончится тоже.

503 Service Unavailable

Этот статус говорит поисковым роботам и пользователям, что в данный момент страница недоступна и, следовательно, сервер не может обработать входящий запрос.

503 service unavailable

«Сервис недоступен»

В большинстве случаев 503 появляется, если сервер перегружен, например, превышено ограничение на число входящих запросов или сервер проходит техническое обслуживание.

Могут быть ещё такие причины:

  • DDOS-атака на сайт.
  • Использование большого количества скриптов и других элементов с внешних ресурсов: виджеты, картинки.
  • Запросы к базе данных и извлечение оттуда информации занимают слишком много времени.
  • Чрезмерное количество обращений к сайту от поисковиков, пользователей или сервисов по парсингу сайта.

Совет: в идеале в сообщении с 503 ошибкой обязательно нужно указать, что пользователю нужно вернуться на сайт через Х времени. К сожалению, так очень редко делают — обычно просят попытать удачу позже.

И последнее, но не менее важное: код состояния 503 не позволяет поисковым системам индексировать сайт. Кроме того, он сообщает, что сайт плохо обслуживается, потому что пользователи не могут попасть, куда хотели. Поэтому важно, чтобы неполадки были устранены как можно быстрее — иначе это скажется на позициях сайта.

Как настроить 503 страницу для своего сайта через PHP

Вот как выглядит код состояния 503 в PHP:

<?php
header("HTTP/1.1 503 Service Temporarily Unavailable");
header("Status: 503 Service Temporarily Unavailable");
header("Retry-After: 3600");
?>

Больше подробностей можно почитать в этой инструкции.

Как проверить коды состояния всех страниц на сайте

Чтобы быть в курсе всего, что происходит на вашем сайте, нужно мониторить коды состояния всех ваших страниц. Конечно, для этого можно использовать расширение Live HTTP Headers для Chrome или отчет «Покрытие» в Google Search Console, но лучше, если вы проанализируете ответы до того, как до них доберутся поисковые роботы.

Если вы хотите быстро проверить коды состояния всех страниц вашего сайта одним кликом, обязательно попробуйте наш инструмент «Аудит сайта». 

Инструмент не просто проверит все страницы на вашем сайте и проанализирует ключевые параметры оптимизации, но и выполнит SEO-аудит всего ресурса по важным техническим параметрам, найдет ошибки и даже подскажет методы их решения. 

анализ оветов сервера

Все статусы страниц вы увидите в основном отчете, в котором проанализированы технические параметры, страницы, мета-теги, ссылки и контент. 

Кстати, вы можете воспользоваться бесплатной пробной версией, чтобы протестировать все основные функции аудита.

Если же вас интересуют только коды состояния всех страниц, просто перейдите на вкладку «Сканированные страницы». Все данные можно экспортировать в формате XLS для подробного изучения:

ответы сервера всех страниц

Безусловно, найти ошибки в кодах ответов это только полдела. Решать проблемы, связанные с ошибками сервера, вам все равно придется самостоятельно, но сам поиск ошибок у вас теперь будет занимать считанные минуты. Оптимизировав коды состояния своих страниц, не забудьте отправить их на повторную индексацию. 

Чтобы сдать этот экзамен на отлично, мы подготовили для вас шпаргалку по правилам HTTP-знаков с лучшими SEO-советами. Теперь какой бы знак не встретился у вас на пути, вы будете знать, что делать. 

инфографика с ответами сервера

Юлия — контент-маркетолог c 10-летним опытом работы в журналистике, копирайтинге, рекламе и PR.
Своим опытом и знаниями она делится, создавая полезные статьи про SEO и диджитал-маркетинг для блога SE Ranking и популярных медиа.
Когда Юлия не пишет статьи, она осваивает новые асаны, путешествует и помогает волонтерской организации YWCA.

Понравилась статья? Поделить с друзьями:
  • Ошибки робота пылесоса ilife v55
  • Ошибки саддама хусейна
  • Ошибки руководителя на стадии функционирования
  • Ошибки руководителя на собеседовании
  • Ошибки робота пылесоса ilife v50