Класс ошибка 404

  • Что такое код ответа HTTP
  • Как проверить код состояния страницы
  • В браузере
  • В Яндекс.Вебмастере
  • В Google Search Console
  • 1* класс кодов (информационные сообщения)
  • 100 Continue
  • 101 Switching Protocols
  • 102 Processing
  • 103 Checkpoint
  • 105 Name Not Resolved
  • 2* класс кодов (успешно обработанные запросы)
  • 200 ОК
  • 201 Created
  • 202 Accepted
  • 203 Non‑Authoritative Information
  • 204 No Content
  • 205 Reset Content
  • 206 Partial Content
  • 207 Multi‑Status
  • 226 IM Used
  • 3* класс кодов (перенаправление на другой адрес)
  • 300 Multiple Choices
  • 301 Moved Permanently
  • 302 Found/Moved 
  • 303 See Other
  • 304 Not Modified
  • 305 Use Proxy
  • 306 Unused
  • 307 Temporary Redirect
  • 308 Resume Incomplete
  • 4* класс кодов (ошибки на стороне клиента)
  • 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 Request Entity Too Large
  • 414 Request‑URI Too Long
  • 415 Unsupported Media Type
  • 416 Requested Range Not Satisfiable
  • 417 Expectation Failed
  • 418 I’m a teapot
  • 422 Unprocessable Entity
  • 423 Locked
  • 424 Failed Dependency
  • 425 Unordered Collection
  • 426 Upgrade Required
  • 428 Precondition Required
  • 429 Too Many Requests
  • 431 Request Header Fields Too Large
  • 434 Requested Host Unavailable
  • 444 No Response
  • 449 Retry With
  • 450 Blocked by Windows Parental Controls
  • 451 Unavailable For Legal Reasons
  • 456 Unrecoverable Error
  • 499 Client Closed Request
  • 5* класс кодов (ошибки на стороне сервера)
  • 500 Internal Server Error
  • 501 Not Implemented
  • 502 Bad Gateway
  • 503 Service Unavailable
  • 504 Gateway Timeout
  • 505 HTTP Version Not Supported
  • 506 Variant Also Negotiates
  • 507 Insufficient Storage
  • 508 Loop Detected
  • 509 Bandwidth Limit Exceeded
  • 510 Not Extended
  • 511 Network Authentication Required
  • Составили подробный классификатор кодов состояния HTTP. Добавляйте в закладки, чтобы был под рукой, когда понадобится.

    Что такое код ответа HTTP

    Когда посетитель переходит по ссылке на сайт или вбивает её в поисковую строку вручную, отправляется запрос на сервер. Сервер обрабатывает этот запрос и выдаёт ответ — трехзначный цифровой код HTTP от 100 до 510. По коду ответа можно понять реакцию сервера на запрос. 

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

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

    Проверить коды ответа сервера можно вручную с помощью браузера и в панелях веб‑мастеров: Яндекс.Вебмастер и Google Search Console.

    В браузере

    Для примера возьмём Google Chrome.

    1. Откройте панель разработчика в браузере клавишей F12, комбинацией клавиш Ctrl + Shift + I или в меню браузера → «Дополнительные инструменты» → «Инструменты разработчика». Подробнее об этом рассказывали в статье «Как открыть исходный код страницы». 

    2. Переключитесь на вкладку «Сеть» в Инструментах разработчика и обновите страницу: 

    Как посмотреть код ответа сервера в инструментах разработчика в браузере

    Как посмотреть код ответа сервера в инструментах разработчика в браузере

    В Яндекс.Вебмастере

    Откройте инструмент «Проверка ответа сервера» в Вебмастере. Введите URL в специальное поле и нажмите кнопку «Проверить»:

    Как посмотреть код состояния в Вебмастере

    Как посмотреть код состояния в Вебмастере

    Как добавить сайт в Яндекс.Вебмастер и другие сервисы Яндекса

    В Google Search Console

    Чтобы посмотреть код ответа сервера в GSC, перейдите в инструмент проверки URL — он находится в самом верху панели:

    Проверка URL в инструменте GSC

    Проверка URL в инструменте GSC

    Введите ссылку на страницу, которую хотите проверить, и нажмите Enter. В результатах проверки нажмите на «Изучить просканированную страницу» в блоке «URL есть в индексе Google».

    Изучить просканированную страницу в GSC

    Изучить просканированную страницу в GSC

    А затем в открывшемся окне перейдите на вкладку «Подробнее»:

    HTTP код страницы в GSC

    HTTP код страницы в GSC

    Теперь расскажем подробнее про все классы кодов состояния HTTP.

    1* класс кодов (информационные сообщения)

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

    100 Continue

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

    101 Switching Protocols

    Сервер одобрил переключение типа протокола, которое запросил пользователь, и в настоящий момент выполняет действие.

    102 Processing

    Запрос принят — он находится в обработке, и на это понадобится чуть больше времени.

    103 Checkpoint

    Контрольная точка — используется в запросах для возобновления после прерывания запросов POST или PUT.

    POST отправляет данные на сервер, PUT создает новый ресурс или заменяет существующий данными, представленными в теле запроса. 

    Разница между ними в том, что PUT работает без изменений: повторное его применение даёт такой же результат, что и в первый раз, а вот повторный вызов одного и того же метода POST часто меняет данные. 

    Пример — оформленный несколько раз интернет‑заказ. Такое часто происходит как раз по причине неоднократного использования запроса PUT.

    105 Name Not Resolved

    Не удается преобразовать DNS‑адрес сервера — это  означает ошибку в службе DNS. Эта служба преобразует IP‑адреса в знакомые нам доменные имена.

    2* класс кодов (успешно обработанные запросы)

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

    200 ОК

    Все хорошо — HTTP‑запрос успешно обработан (не ошибка).

    201 Created

    Создано — транзакция успешна, сформирован новый ресурс или документ.

    202 Accepted

    Принято — запрос принят, но ещё не обработан.

    203 Non‑Authoritative Information

    Информация не авторитетна — запрос успешно обработан, но передаваемая информация была взята не из первичного источника (данные могут быть устаревшими).

    204 No Content

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

    205 Reset Content

    Сбросить содержимое. Запрос успешно обработан — но нужно сбросить введенные данные. Страницу можно не обновлять.

    206 Partial Content

    Частичное содержимое. Сервер успешно обработал часть GET‑запроса, а другую часть вернул.

    GET — метод для чтения данных с сайта. Он говорит серверу, что клиент хочет прочитать какой‑то документ. 

    Представим интернет‑магазин и страницы каталога. Фильтры, которые выбирает пользователь, передаются благодаря методу GET. GET‑запрос работает с  получением данных, а POST‑запрос нужен для отправки данных.

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

    207 Multi‑Status

    Успешно выполнено несколько операций — сервер передал результаты выполнения нескольких независимых операций. Они появятся в виде XML‑документа с объектом multistatus. 

    226 IM Used

    Успешно обработан IM‑заголовок (специальный заголовок, который отправляется клиентом и используется для передачи состояния HTTP).

    3* класс кодов (перенаправление на другой адрес)

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

    300 Multiple Choices

    Множественный выбор — сервер выдает список нескольких возможных вариантов перенаправления (максимум — 5). Можно выбрать один из них.

    301 Moved Permanently

    Окончательно перемещено — страница перемещена на другой URL, который указан в поле Location.

    302 Found/Moved 

    Временно перемещено — страница временно перенесена на другой URL,  который указан в поле Location.

    303 See Other

    Ищите другую страницу — страница не найдена по данному URL, поэтому смотрите страницу по другому URL, используя метод GET.

    304 Not Modified

    Модификаций не было — с момента последнего визита клиента изменений не было.

    305 Use Proxy

    Используйте прокси — запрос к нужному ресурсу можно сделать только через прокси‑сервер, URL которого указан в поле Location заголовка.

    306 Unused

    Зарезервировано. Код в настоящий момент не используется.

    307 Temporary Redirect

    Временное перенаправление — запрашиваемый ресурс временно доступен по другому URL.

    Этот код имеет ту же семантику, что код ответа 302 Found, за исключением того, что агент пользователя не должен изменять используемый метод HTTP: если в первом запросе использовался POST, то во втором запросе также должен использоваться POST.

    308 Resume Incomplete

    Перемещено полностью (навсегда) — запрашиваемая страница была перенесена на новый URL, указанный в поле Location заголовка. Метод запроса (GET/POST) менять не разрешается.

    4* класс кодов (ошибки на стороне клиента)

    Эти коды указывают на ошибки со стороны клиентов. 

    Скриншот страницы с ошибкой 404 с сайта modcloth.com

    Скриншот страницы с ошибкой 404 с сайта modcloth.com

    400 Bad Request

    Неверный запрос — запрос клиента не может быть обработан, так как есть синтаксическая ошибка (возможно, опечатка).

    401 Unauthorized

    Не пройдена авторизация — запрос ещё в обработке, но доступа нет, так как пользователь не авторизован.

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

    402 Payment Required

    Требуется оплата — зарезервировано для использования в будущем. Код предусмотрен для платных пользовательских сервисов, а не для хостинговых компаний.

    403 Forbidden

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

    404 Not Found

    Не найдено — запрашиваемая страница не обнаружена. Сервер принял запрос, но не нашёл ресурса по указанному URL (возможно, была ошибка в URL или страница была перемещена).

    405 Method Not Allowed

    Метод не разрешён — запрос был сделан методом, который не поддерживается данным ресурсом. Сервер должен предложить доступные методы решения в заголовке Allow.

    406 Not Acceptable

    Некорректный запрос — неподдерживаемый поисковиком формат запроса (поисковый робот не поддерживает кодировку или язык).

    407 Proxy Authentication Required

    Нужно пройти аутентификацию прокси — ответ аналогичен коду 401, только нужно аутентифицировать прокси‑сервер.

    408 Request Timeout

    Тайм‑аут запроса — запрос клиента занял слишком много времени. На каждом сайте существует свое время тайм‑аута — проверьте интернет‑соединение  и просто обновите страницу.

    409 Conflict

    Конфликт (что‑то пошло не так) — запрос не может быть выполнен из‑за конфликтного обращения к ресурсу (несовместимость двух запросов).

    410 Gone

    Недоступно — ресурс раньше был размещён по указанному URL, но сейчас удалён и  недоступен (серверу неизвестно месторасположение).

    411 Length Required

    Добавьте длины — сервер отклоняет отправляемый запрос, так как длина заголовка не определена, и он не находит значение Content‑Length. 

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

    412 Precondition Failed

    Предварительное условие не выполнено — стоит проверить правильность HTTP‑заголовков данного запроса.

    413 Request Entity Too Large

    Превышен размер запроса — перелимит максимального размера запроса, принимаемого сервером. Браузеры поддерживают запросы от 2 до 8 килобайт.

    414 Request‑URI Too Long

    Превышена длина запроса — сервер не может обработать запрос из‑за длинного URL. Такая ошибка может возникнуть, например, когда клиент пытается передать чересчур длинные параметры через метод GET, а не POST.

    415 Unsupported Media Type

    Формат не поддерживается —  сервер не может принять запрос, так как  данные подгружаются в некорректном формате, и сервер разрывает соединение.

    416 Requested Range Not Satisfiable

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

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

    417 Expectation Failed

    Ожидания не оправдались — прокси некорректно идентифицировал содержимое поля «Expect: 100‑Continue».

    418 I’m a teapot

    Первоапрельская шутка разработчиков в 1998 году. В расшифровке звучит как «я не приготовлю вам кофе, потому что я чайник». Не используется в работе.

    422 Unprocessable Entity

    Объект не обработан — сервер принял запрос, но в нём  есть логическая ошибка. Стоит посмотреть в сторону семантики сайта.

    423 Locked

    Закрыто — ресурс заблокирован для выбранного HTTP‑метода. Можно перезагрузить роутер и компьютер. А также использовать только статистический IP.

    424 Failed Dependency

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

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

    425 Unordered Collection

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

    426 Upgrade Required

    Нужно обновление — в заголовке ответа нужно корректно сформировать поля Upgrade и Connection. 

    Этот ответ возникает, когда серверу требуется обновление до SSL‑протокола, но клиент не имеет его поддержки.

    428 Precondition Required

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

    429 Too Many Requests

    Слишком много запросов — отправлено слишком много запросов за короткое время. Это может указывать, например, на попытку DDoS‑атаки, для защиты от которой запросы блокируются.

    431 Request Header Fields Too Large

    Превышена длина заголовков — сервер может и не отвечать этим кодом, вместо этого он может просто сбросить соединение.

    Исправляется это с помощью сокращения заголовков и повторной отправки запроса.

    434 Requested Host Unavailable

    Адрес запрашиваемой страницы недоступен.

    444 No Response

    Нет ответа — код отображается в лог‑файлах, чтобы подтвердить, что сервер никак не отреагировал на запрос пользователя и прервал соединение. Возвращается только сервером nginx.

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

    449 Retry With

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

    450 Blocked by Windows Parental Controls

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

    451 Unavailable For Legal Reasons

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

    456 Unrecoverable Error

    Неустранимая ошибка — при обработке запроса возникла ошибка, которая вызывает некорректируемые сбои в таблицах баз данных.

    499 Client Closed Request

    Запрос закрыт клиентом — нестандартный код, используемый nginx в ситуациях, когда клиент закрыл соединение, пока nginx обрабатывал запрос.

    5* класс кодов (ошибки на стороне сервера)

    Эти коды указывают на ошибки со стороны серверов. 

    При использовании всех методов, кроме HEAD, сервер должен вернуть в теле сообщения гипертекстовое пояснение для пользователя. И его можно использовать в работе.

    Изображение страницы с ошибкой сайта REG.RU

    Изображение страницы с ошибкой сайта REG.RU

    500 Internal Server Error

    Внутренняя ошибка сервера — сервер столкнулся с неким условием, из‑за которого не может выполнить запрос. 

    Проверяйте, корректно ли указаны директивы в системных файлах (особенно htaccess) и нет ли ошибки прав доступа к файлам. Обратите внимание на ошибки внутри скриптов и их медленную работу.

    501 Not Implemented

    Не выполнено —  код отдается, когда сам сервер не может идентифицировать метод запроса. 

    Сами вы эту ошибку не исправите. Устранить её может только сервер.

    502 Bad Gateway

    Ошибка шлюза — появляется, когда сервер, выступая в роли шлюза или прокси‑сервера, получил ответное сообщение от вышестоящего сервера о несоответствии протоколов.

    Актуально исключительно для прокси и шлюзовых конфигураций.

    503 Service Unavailable

    Временно не доступен — сервер временно не имеет возможности обрабатывать запросы по техническим причинам (обслуживание, перегрузка и прочее). 

    В поле Retry‑After заголовка сервер укажет время, через которое  можно повторить запрос.

    504 Gateway Timeout

    Тайм‑аут шлюза —  сервер, выступая в роли шлюза или прокси‑сервера, не получил ответа от вышестоящего сервера в нужное время.

    Исправить эту ошибку самостоятельно не получится. Здесь дело в прокси, часто — в веб‑сервере. 

    Первым делом просто обновите веб‑страницу. Если это не помогло, нужно почистить DNS‑кэш. Для этого  нажмите горячие клавиши Windows+R и введите команду cmd (Control+пробел). В открывшемся окне укажите команду ipconfig / flushdns и подтвердите её нажатием Enter.

    505 HTTP Version Not Supported

    Сервер не поддерживает версию протокола — отсутствует поддержка текущей версии HTTP‑протокола. Нужно обеспечить клиента и сервер одинаковой версией.

    506 Variant Also Negotiates

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

    507 Insufficient Storage

    Не хватает места для хранения — серверу недостаточно места в хранилище. Нужно либо расчистить место, либо увеличить доступное пространство.

    508 Loop Detected

    Обнаружен цикл — ошибка означает провал запроса и выполняемой операции в целом.

    509 Bandwidth Limit Exceeded

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

    510 Not Extended

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

    511 Network Authentication Required

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

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

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

    При разработке проекта на ASP.NET MVC возникла необходимость сделать собственную страницу ошибки 404. Я рассчитывал, что справлюсь с этой задачей за несколько минут. Через 6 часов работы я определил два варианта ее решения разной степени сложности. Описание — далее.

    В ASP.NET MVC 3, с которой я работаю, появились глобальные фильтры. В шаблоне нового проекта, уже встроено ее использование для отображения собственной страницы ошибок (через HandleErrorAttribute). Замечательный метод, только он не умеет обрабатывать ошибки с кодом 404 (страница не найдена). Поэтому пришлось искать другой красивый вариант обработки этой ошибки.

    Обработка ошибки 404 через Web.config

    Платформа ASP.NET предоставляет возможность произвольно обрабатывать ошибки путем нехитрой настройки файла Web.config. Для это в секцию system.web нужно добавить следующий код:

    <customErrors mode="On" >
           <error statusCode="404" redirect="/Errors/Error404/" />
    </customErrors>

    При появлении ошибки 404 пользователь будет отправлен на страницу yoursite.ru/Errors/Error404/?aspxerrorpath=/Not/Found/Url. Кроме того, что это не очень красиво и удобно (нельзя отредактировать url), так еще и плохо для SEO — статья на habr.ru.
    Способ можно несколько улучшить, добавив redirectMode=«ResponseRewrite» в customErrors:

    <customErrors mode="On" redirectMode="ResponseRewrite" >
           <error statusCode="404" redirect="/Errors/Error404/" />
    </customErrors>

    В данном случае должен происходить не редирект на страницу обработки ошибки, а подмена запрошенного ошибочного пути содержимым указанной страницы. Однако, и здесь есть свои сложности. На ASP.NET MVC этот способ в приведенном виде не работает. Достаточно подробное обсуждение (на английском) можно прочитать в топике. Кратко говоря, этот метод основан на методе Server.Transfer, который используется в классическом ASP.NET и, соответственно, работает только со статическими файлами. С динамическими страницами, как в примере, он работать отказывается (так как не видит на диске файл  ‘/Errors/Error404/’). То есть, если заменить ‘/Errors/Error404/’ на, например, ‘/Errors/Error404.htm’, то описанные метод будет работать. Однако в этом случае не получится выполнять дополнительные действия по обработке ошибок, например, логирование.
    В указанном топике было предложено добавить в каждую страницу следующий код:

    Response.TrySkipIisCustomErrors = true;

    Этот способ работает только с IIS 7 и выше, поэтому проверить этот метод не удалось — используем IIS 6. Поиски пришлось продолжить.

    Танцы с бубном и Application_Error

    Если описанный выше метод применить по каким-либо причинам не удается, то придется писать больше строк кода. Частичное решение приведено в статье.
    Наиболее полное решение «с бубном» я нашел в топике. Обсуждение ведется на английском, поэтому переведу текст решения на русский.
    Ниже приведены мои требования к решению проблемы отображения ошибки 404 NotFound:

    • Я хочу обрабатывать пути, для которых не определено действие.
    • Я хочу обрабатывать пути, для которых не определен контроллер.
    • Я хочу обрабатывать пути, которые не удалось разобрать моему приложению. Я не хочу, чтобы эти ошибки обрабатывались в Global.asax или IIS, потому что потом я не смогу сделать редирект обратно на мое приложение.
    • Я хочу обрабатывать собственные (например, когда требуемый товар не найден по ID) ошибки 404 в едином стиле.
    • Я хочу, чтобы все ошибки 404 возвращали MVC View, а не статическую страницу, чтобы потом иметь возможность получить больше данных об ошибках. И они должны возвращать код статуса 404.

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

    Шаг 1: Создаем общее место для обработки ошибки 404

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

    public class ErrorController : MyController
    {
        #region Http404
    
        public ActionResult Http404(string url)
        {
            Response.StatusCode = (int)HttpStatusCode.NotFound;
            var model = new NotFoundViewModel();
            // Если путь относительный ('NotFound' route), тогда его нужно заменить на запрошенный путь
            model.RequestedUrl = Request.Url.OriginalString.Contains(url) & Request.Url.OriginalString != url ?
                Request.Url.OriginalString : url;
            // Предотвращаем зацикливание при равенстве Referrer и Request
            model.ReferrerUrl = Request.UrlReferrer != null &&
                Request.UrlReferrer.OriginalString != model.RequestedUrl ?
                Request.UrlReferrer.OriginalString : null;
    
            // TODO: добавить реализацию ILogger
    
            return View("NotFound", model);
        }
        public class NotFoundViewModel
        {
            public string RequestedUrl { get; set; }
            public string ReferrerUrl { get; set; }
        }
    
        #endregion
    }
    Шаг 2: Используем собственный базовый класс для контроллеров, чтобы легче вызывать метод для ошибки 404 и обрабатывать HandleUnknownAction

    Ошибка 404 в ASP.NET MVC должна быть обработана в нескольких местах. Первое — это HandleUnknownAction.
    Метод InvokeHttp404 является единым местом для перенаправления к ErrorController и нашему вновь созданному действию Http404. Используйте методологию DRY!

    public abstract class MyController : Controller
    {
        #region Http404 handling
    
        protected override void HandleUnknownAction(string actionName)
        {
            // Если контроллер - ErrorController, то не нужно снова вызывать исключение
            if (this.GetType() != typeof(ErrorController))
                this.InvokeHttp404(HttpContext);
        }
    
        public ActionResult InvokeHttp404(HttpContextBase httpContext)
        {
            IController errorController = ObjectFactory.GetInstance<ErrorController>();
            var errorRoute = new RouteData();
            errorRoute.Values.Add("controller", "Error");
            errorRoute.Values.Add("action", "Http404");
            errorRoute.Values.Add("url", httpContext.Request.Url.OriginalString);
            errorController.Execute(new RequestContext(
                 httpContext, errorRoute));
    
            return new EmptyResult();
        }
    
        #endregion
    }
    Шаг 3: Используем инъекцию зависимостей в фабрике контроллеров и обрабатываем 404 HttpException

    Например, так (не обязательно использовать StructureMap):
    Пример для MVC1.0:

    public class StructureMapControllerFactory : DefaultControllerFactory
    {
        protected override IController GetControllerInstance(Type controllerType)
        {
            try
            {
                if (controllerType == null)
                    return base.GetControllerInstance(controllerType);
            }
            catch (HttpException ex)
            {
                if (ex.GetHttpCode() == (int)HttpStatusCode.NotFound)
                {
                    IController errorController = ObjectFactory.GetInstance<ErrorController>();
                    ((ErrorController)errorController).InvokeHttp404(RequestContext.HttpContext);
    
                    return errorController;
                }
                else
                    throw ex;
            }
    
            return ObjectFactory.GetInstance(controllerType) as Controller;
        }
    }

    Пример для MVC2.0:

     protected override IController GetControllerInstance(RequestContext requestContext, Type controllerType)
    {
        try
        {
            if (controllerType == null)
                return base.GetControllerInstance(requestContext, controllerType);
        }
        catch (HttpException ex)
        {
            if (ex.GetHttpCode() == 404)
            {
                IController errorController = ObjectFactory.GetInstance<ErrorController>();
                ((ErrorController)errorController).InvokeHttp404(requestContext.HttpContext);
    
                return errorController;
            }
            else
                throw ex;
        }
    
        return ObjectFactory.GetInstance(controllerType) as Controller;
    }

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

    Шаг 4: Добавляем маршрут NotFound в Global.asax для путей, которые не удалось определить нашему приложению

    Этот маршрут должен вызывать действие Http404. Обратите внимание, что параметр url будет относительным адресом, потому что движок маршрутизации отсекает часть с доменным именем. Именно поэтому мы добавили все эти условные операторы на первом шаге.

            routes.MapRoute("NotFound", "{*url}", 
                new { controller = "Error", action = "Http404" });

    Это третье и последнее место в приложении MVC для отлова ошибок 404, которые Вы не вызываете самостоятельно. Если здесь не удалось сопоставить входящий путь ни какому контроллеру и действию, то MVC передаст обработку этой ошибки дальше платформе ASP.NET (в файл Global.asax). А мы не хотим, чтобы это случилось.

    Шаг 5: Наконец, вызываем ошибку 404, когда приложению не удается что-либо найти

    Например, когда нашему контроллеру Loan, унаследованному от MyController, передан неправильный параметр ID:

    //
    // GET: /Detail/ID
    
    public ActionResult Detail(int ID)
    {
        Loan loan = this._svc.GetLoans().WithID(ID);
        if (loan == null)
            return this.InvokeHttp404(HttpContext);
        else
            return View(loan);
    }

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

    Библиотека для второго решения

    Ну и на последок: уже готова библиотека, позволяющая организовать обработку ошибок описанным выше способом. Найти ее можно здесь — github.com/andrewdavey/NotFoundMvc.

    Заключение

    Интереса ради я посмотрел, как эта задача решена в Orchard. Был удивлен и несколько разочарован — разработчики решили вообще не обрабатывать это исключение — собственные страницы ошибок 404, на мой взгляд, давно стали стандартом в веб-разработке.

    В своем приложении я использовал обработку ошибки через Web.config с использованием роутинга. До окончания разработки приложения, а останавливаться на обработке ошибки 404 довольно опасно — можно вообще приложение тогда никогда не выпустить. Ближе к окончанию, скорее всего, внедрю второе решение.

    Ссылки по теме:

    1. ASP.NET, HTTP 404 и SEO.
    2. CustomErrors does not work when setting redirectMode=«ResponseRewrite».
    3. How can I properly handle 404 in ASP.NET MVC?
    4. Обработка ошибок для всего сайта в ASP.NET MVC 3.
    5. ASP.NET MVC 404 Error Handling.
    6. HandleUnknownAction in ASP.NET MVC – Be Careful.
    7. github.com/andrewdavey/NotFoundMvc.

    Ошибка 404, либо Error 404 Not Found — ошибка, которая появляется, если браузеру не удалось обнаружить на сервере указанный URL.

    Страница 404.

    Сообщение об ошибке 404

    Что означает ответ 404

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

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

    Однако если просто ввести в поисковую строку произвольный набор символов, то браузер не покажет ошибку 404 Not Found — появится сообщение, что установить соединение с конкретным сервером невозможно.

    Разберёмся в техническом формировании ответа Error 404 Not Found.

    Техническая сторона вопроса. При связи по HTTP браузер запрашивает указанный URL и ждёт цифрового ответа. То есть любой запрос пользователя направляется на сервер размещения искомого сайта. Когда браузеру удаётся связаться с сервером, он получает кодированный ответ. Если запрос корректный и страница найдена, отправляется ответ с кодом 200 OK, что соответствует благополучной загрузке. При отсутствии страницы отправляется ответ об ошибке.

    Что значит код «404». В ответе 404 первая четвёрка указывает на то, что запрос был чрезмерно длительным или в самом адресе была ошибка. Ноль предполагает синтаксическую неточность. Завершающая цифра кода отображает конкретную причину ошибки — «4» означает отсутствие данной ссылки.

    Какие ещё ошибки бывают. Ошибку 404 не нужно путать с другими ответами, которые указывают на невозможность связи с сервером. Например, ошибка 403 сообщает, что доступ к URL ограничен, а ответ «Сервер не найден» свидетельствует, что браузер не смог обнаружить место размещения сайта.

    Страница 404 от Google.

    Google на 404 странице сообщает о возможных причинах ошибки

    Причины ошибки

    Причины, по которым HTTP возвращает ответ 404 Not Found:

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

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

    Несуществующая страница на сайте.

    Причины отсутствия страницы на сайте бывают разными

    Возможные последствия для сайта

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

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

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

    Как выявить ошибку

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

    Search Console Google

    Консоль поиска Google позволяет находить страницы с ошибкой 404 за несколько кликов:

    1. Войдите в учётную запись Google и перейдите в Search Console.
    2. Откройте раздел «Ошибки сканирования» → «Диагностика».
    3. Кликните на «Not Found».

    Чтобы получить список страниц с ошибками, подтвердите права на ресурс — добавьте проверочную запись TXT в записи DNS регистратора домена. Такая запись не повлияет на работу сайта. Подробнее о процедуре подтверждения, читайте в справке Google.

    Интерфейс Search Console Google.

    Для использования Search Console Google нужно подтвердить свои права на сайт

    Яндекс Вебмастер

    Сервис для вебмастеров от Яндекса поможет быстро найти все ошибки 404:

    1. Откройте Вебмастер после авторизации в Яндекс-аккаунте.
    2. Выберите «Индексирование» → «Доступные для поиска страницы» → «Исключённые страницы».
    3. В выданном списке выберите фильтр «Ошибка HTTP: 404».

    Чтобы использовать Яндекс.Вебмастер, также нужно подтвердить право владения сайтом — добавить метатег в HTML-код главной страницы.

    Главная страница Яндекс.Вебмастер.

    Для входа в Вебмастер авторизуйтесь в Яндексе

    Screaming Frog

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

    Сервис Screaming Frog.

    Инструмент SEO-паук в Screaming Frog помогает найти технические неисправности сайта

    SiteAnalyzer

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

    Страница загрузки SiteAnalyzer.

    SiteAnalyzer бесплатно найдёт неработающие URL

    Как исправить ошибку Not Found

    Выбор конкретного решения зависит от причины ошибки:

    1. Ссылка ведёт в никуда из-за неверного URL. Для решения проблемы замените ошибочную ссылку на правильный адрес, чтобы сервер отдавал код 200 OK.
    2. Битая ссылка. Подобная ситуация не редкость при внутренней перелинковке страниц. К примеру, ссылка есть, а саму страницу давно удалили. Решений два: удалить ссылку или заменить её на другую.

    Удалять и менять ссылки вручную удобно только на небольших сайтах. Исправление ошибок на крупных порталах лучше автоматизировать. Например, с помощью специальных плагинов для внутренней перелинковки (Terms Description, Dagon Design Sitemap Generator) и для автоматического формирования адресов страниц (Cyr-To-Lat).

    Чтобы ошибки 404 появлялись как можно реже, достаточно соблюдать простые рекомендации:

    • Не присваивайте сложные адреса основным разделам сайта. Это снизит число ошибок, связанных с опечатками в URL.
    • Не меняйте адреса страниц слишком часто. Это неудобно для пользователей и вводит в заблуждение поисковых роботов.
    • Размещайте сайт на надёжном сервере. Это предотвратит ошибки, возникающие из-за неработоспособности сервера.

    Мы разобрались, как найти и исправить ошибки Not Found внутри сайта. Но неработающая ссылка может быть расположена и на стороннем ресурсе. Допустим, когда-то на другом сайте разместили рекламную публикацию со ссылкой на определённую страницу. Спустя какое-то время страницу удалили. В этом случае появится ошибка 404. Устранить её можно, связавшись с администрацией ссылающегося сайта. Если же удалить/исправить ссылку нельзя, постарайтесь использовать ошибку с выгодой.

    Как сделать страницу 404 полезной

    Грамотно оформленная страница с ошибкой Error 404 Not Found — действенный инструмент конвертации посетителей. Ограничений по использованию страницы с ошибкой 404 нет. При этом практически все CMS позволяют настраивать дизайн этой страницы.

    Что публиковать на странице 404:

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

    При оформлении страницы-ошибки желательно опираться на рекомендации поисковиков:

    • Яндекс настоятельно рекомендует, чтобы страница контрастировала с основным содержанием сайта — иные цвета, другие графические приёмы либо их отсутствие. Необходимо чётко и понятно объяснить пользователю, что запрошенной страницы не существует и предложить другое решение.
    • Google советует придерживаться единого стиля оформления. Но также рекомендует понятно рассказать об ошибке и предложить полезные материалы.

    Главное — по возможности отказаться от стандартной страницы 404. Подумайте, как привлечь внимание пользователя. Расскажите ему об отсутствии искомой страницы и предложите взамен что-то полезное или интересное.

    Примеры оформления страниц 404

    Designzillas

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

    404 страница на сайте Designzillas

    Меню на сайте Designzillas есть и на 404 странице

    Domenart Studio

    Веб-студия «Домен АРТ» использует красочную страницу 404, оформленную в единой стилистике ресурса. Заблудившимся пользователям предлагают попробовать ещё раз ввести адрес или перейти в нужный раздел.

    Страница 404 Domenart Studio.

    Контакты, поиск, меню — и всё это на 404 странице Domenart Studio

    E-co

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

    Ошибка 404 «Эко Пауэр»

    Ошибка 404 «Эко Пауэр» выглядит как страница входа

    Дом со всем

    Компания «Дом со всем», занимающаяся бурением скважин, разместила на странице 404 свои контакты и перечень услуг. Со страницы можно перейти в любой раздел сайта или заказать обратный звонок. С таким наполнением посетителю не нужно искать дополнительную информацию где-то ещё.

    Страница 404 «Дом со всем».

    Компания «Дом со всем» предлагает заказать обратный звонок

    Kualo

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

    Cтраница 404 Kualo

    На странице Kualo можно просто поиграть и заработать скидки

    Рано или поздно с ошибкой 404 сталкивается большинство сайтов. При регулярной проверке можно своевременно исправить неработающие ссылки, чтобы в ответ пользователи получали код 200 OK. Но для крупного ресурса лучше настроить оригинальную страницу, которая будет отображаться при появлении ошибки Not Found и подскажет посетителям, что делать дальше.

    Главные мысли

    Ошибка 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 топ-нейросетей. Научитесь использовать ИИ в своей работе и увеличьте доход.

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



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



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

    В статье рассказывается:

    1. Что означает ошибка 404
    2. Причины ошибки
    3. Вред от ошибки 404 на сайте
    4. Как выявить ошибку 404
    5. Как исправить ошибку 404 Not Found
    6. Как улучшить страницу с ошибкой 404
    7. Пройди тест и узнай, какая сфера тебе подходит:
      айти, дизайн или маркетинг.

      Бесплатно от Geekbrains

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

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

    О данной ошибке браузер может сообщить несколькими способами:

    • 404 error.
    • 404 page not found.
    • Error 404.
    • HTTP 404.
    • The requested URL was found on web server.
    • 404 file and directory was not found.

    pdf иконка

    Топ-30 самых востребованных и высокооплачиваемых профессий 2023

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

    doc иконка

    Подборка 50+ бесплатных нейросетей для упрощения работы и увеличения заработка

    Только проверенные нейросети с доступом из России и свободным использованием

    pdf иконка

    ТОП-100 площадок для поиска работы от GeekBrains

    Список проверенных ресурсов реальных вакансий с доходом от 210 000 ₽

    Уже скачали 22616 pdf иконка

    Код этой ошибки складывается из двух составляющих:

    • первая цифра «4» говорит о том, что это проблема в работе устройства клиента, а не сервера;
    • цифры «04» определяют спецификацию ошибки.

    Для ошибки подключения 404 характерен определенный интерфейс экрана, который разработчики создают при написании кода будущего сайта.

    Что означает ошибка 404

    Что означает ошибка 404

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

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

    Причины ошибки

    Ошибка 404 not found возникает по ряду причин.

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

      Ошибка 502: причины возникновения и способы решить проблему

      Читайте также

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

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

    Вред от ошибки 404 на сайте

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

    Вред от ошибки 404 на сайте

    Вред от ошибки 404 на сайте

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

    Часто данная ошибка ухудшает трафик и приводит к снижению продаж.

    SEO

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

    Скачать
    файл

    E-commerce

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

    Мотивы потенциального покупателя в этом случае объясняются максимально просто.

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

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

    Как выявить ошибку 404

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

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

    Search Console Google

    Чтобы найти страницы с ошибкой 404 с помощью данной консоли, потребуется несколько простых действий.

    • Войти в учетную запись Google и перейти в Search Console.
    • Сначала открыть раздел «Ошибки сканирования», а затем – «Диагностика».
    • Кликнуть мышкой на «Not Found».

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

    Search Console Google

    Search Console Google

    «Яндекс.Вебмастер»

    Этот специализированный сервис от компании «Яндекс» существенно облегчает процесс поиска ошибок 404 в онлайн-режиме.

    Найти проблемные страницы можно всего в несколько кликов.

    • Пройти авторизацию в Яндекс-аккаунте и отрыть «Вебмастер».
    • Сначала выбрать «Индексирование», потом «Доступные для поиска страницы», а затем «Исключенные страницы».
    • В сформированном списке выставить фильтр «Ошибка HTTP: 404».

    insert_bn id=»all»]
    Для того чтобы пользоваться сервисом «Яндекс.Вебмастер», необходимо подтвердить права владения сайтом. Для этого нужно добавить метатег в HTML-код главной страницы.

    Screaming Frog

    Сначала требуется скачать программу и установить ее на компьютер. Затем можно приступать к поиску ошибок 404 по URL проверяемого сайта. Огромный плюс этой утилиты в том, что битые ссылки определяются даже в бесплатной версии.

    Это бесплатное Desktop-приложение позволяет оперативно найти нерабочие и несуществующие ссылки.

    Как исправить ошибку 404 Not Found

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

    • Ссылка ведет к несуществующей странице из-за ошибки в URL. Чтобы решить проблему, достаточно ввести правильный адрес, чтобы сервер отдавал код «200 ОК».
    • Битая ссылка. Как уже упоминалось выше, часто подобные адреса появляются при внутренней перелинковке сайта (страницу удалили, а путь остался). В этом случае есть два варианта: удалить ссылку или заменить ее другой.

    Только до 25.09

    Скачай подборку материалов, чтобы гарантированно найти работу в IT за 14 дней

    Список документов:


    ТОП-100 площадок для поиска работы от GeekBrains


    20 профессий 2023 года, с доходом от 150 000 рублей


    Чек-лист «Как успешно пройти собеседование»

    Чтобы получить файл, укажите e-mail:

    Введите e-mail, чтобы получить доступ к документам

    Подтвердите, что вы не робот,
    указав номер телефона:

    Введите телефон, чтобы получить доступ к документам


    Уже скачали 52300

    Как исправить ошибку 404? Вручную удалять и менять адреса удобно лишь в том случае, если сайт небольшой. Если же речь идет о крупном ресурсе, данный процесс стоит автоматизировать. Для этих целей подходят специальные плагины для внутренней перелинковки (например, Terms Description, Dagon Design Sitemap Generator и др.) и сервисы для автоматического формирования адресов страниц (в частности, Cyr-To-Lat).

    Ошибка 500: причины и способы устранения

    Читайте также

    Чтобы посетители сайта реже встречались с ошибкой 404 (не найдено), можно воспользоваться полезными советами от опытных веб-разработчиков.

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

    Итак, ошибки клиента с кодом состояния «404» можно найти и исправить без особых затруднений, если они возникли внутри сайта. Однако битая ссылка может быть размещена и на сторонних ресурсах. Например, некоторое время назад на партнерской площадке была выложена рекламная публикация, содержащая путь к одной из страниц, которую впоследствии удалили.

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

    Как улучшить страницу с ошибкой 404

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

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

    Как улучшить страницу с ошибкой 404

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

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

    Шаг 1. Донести до посетителей сайта, что все под контролем.

    Безликое стандартное «Not Found» – пустой звук для большинства пользователей. Поэтому, чтобы объяснить, что произошло, лучше выбрать простые и понятные формулировки. Например:

    • «Нам не удалось найти страницу».
    • «Похоже, такой страницы не существует» и т. п.

    Хорошая идея – можно более детально объяснить посетителям сайта, почему они столкнулись с ошибкой 404. К примеру:

    • «Возможно, вы допустили ошибку, когда вводили или копировали адрес».
    • «Владелец сайта удалил или переместил эту страницу. Давайте вернемся на главную».

    Шаг 2. Перенаправить пользователя в другой раздел.

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

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

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

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

    Шаг 3. Сгладить негатив с помощью юмора.

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

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

    Понравилась статья? Поделить с друзьями:

    Интересное по теме:

  • Клапан клак ошибка 106
  • Клапан слива воды открыт вольво ошибка
  • Ккт ошибка нет связи
  • Классификация ошибок на производстве
  • Ккт ошибка 480

  • Добавить комментарий

    ;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: