hackseo

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

Сообщение «Страница не найдена» ещё не означает, что сайт возвращает ошибку 404. Разбираем, почему удалённые и вымышленные адреса отвечают кодом 200, как проверить такие страницы и что передать разработчику для исправления.

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

Несуществующая страница возвращает успешный ответ сервера, когда сайт показывает сообщение об ошибке, но отправляет технический код 200 OK. Обычно причина в настройках сайта: шаблон ошибки загрузился, а статус ответа не изменился. Такое расхождение называют soft 404, или мягкой ошибкой 404. Чтобы подготовить исправление, нужно проверить код ответа, содержимое страницы и возможные перенаправления.

Что означает успешный ответ у страницы без материала

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

200 OK означает, что запрос успешно обработан. 404 Not Found сообщает, что запрошенный ресурс не найден. Текст «Ошибка 404», нарисованный на странице, сам по себе ничего не меняет: сервер может отправить его вместе с успешным статусом.

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

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

Почему возникает мягкая ошибка 404

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

Шаблон ошибки открывается как обычная страница

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

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

Все неизвестные адреса ведут в один обработчик

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

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

Материал проверяется только после загрузки страницы

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

В этом случае запрос данных может вернуть 404, а основной документ — 200. Эти ответы относятся к разным запросам. Исправление запроса данных не обязательно исправляет статус самой страницы: разработчику нужно проверить оба уровня.

Ошибочный ответ сохраняется или подменяется

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

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

Зачем исправлять расхождение текста и статуса

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

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

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

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

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

1. Соберите адреса из разных ситуаций

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

Отдельно проверьте неизвестные адреса внутри разных разделов. Например, условные пути /catalog/proverka-net-tovara и /blog/proverka-net-stati могут обрабатываться разными частями программы. Успешное исправление одного раздела не доказывает, что другой тоже работает правильно.

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

2. Найдите запрос основного документа

Откройте инструменты разработчика в браузере и перейдите на вкладку Network, или «Сеть». Затем загрузите проверяемый адрес заново. В списке появятся запросы документа, изображений, стилей и других ресурсов.

Найдите основной документ — обычно у него тип Document. Откройте сведения о запросе и посмотрите Status Code, или «Код статуса». Именно этот ответ нужно сопоставить с сообщением на странице.

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

3. Проверьте перенаправления

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

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

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

4. Сопоставьте ответ с содержимым

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

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

Что открывается Ответ документа Что проверить или исправить
Неизвестный адрес с сообщением «Не найдено» 200 Установить статус 404 для отсутствующего ресурса
Неизвестный адрес с понятной страницей ошибки 404 Проверить навигацию и убрать внутренние ссылки на этот адрес
Удалённый материал ведёт на главную Перенаправление, затем 200 Проверить обоснованность замены
Действующая категория без товаров 200 Уточнить, остаётся ли категория полезной и доступной
Существующий товар временно распродан 200 Сохранить сведения о товаре и объяснить его доступность
Страница сообщает о временном сбое сервиса 200 Разобрать сбой отдельно от отсутствующего материала

5. Запишите результат для разработчика

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

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

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

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

Материала нет, подходящей замены нет. Обычно нужен статус 404 и понятное сообщение. Для ресурса, который намеренно и окончательно удалён, возможен статус 410 Gone: он явно сообщает, что ресурс больше недоступен. Выбор между ними нужно закрепить в правилах сайта.

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

Товар существует, но его нет в наличии. Отсутствие товара на складе не означает отсутствие страницы. Карточка может отвечать 200, если содержит сведения о товаре и ясно описывает его доступность. Удалять её технически только из-за нулевого остатка не требуется.

Произошёл временный сбой. Ошибка базы данных или недоступность сервиса не доказывает, что материал удалён. Разработчику нужно обработать временный сбой отдельно; в подходящих случаях используется 503 Service Unavailable. Массовая выдача 404 при таком сбое неверно описывала бы состояние страниц.

Что передать разработчику

Формулировка «исправить ошибки 404» слишком общая. Она не объясняет, где возникает расхождение и какого результата вы ждёте. Задача должна включать примеры, наблюдаемое поведение и условия приёмки.

Ниже — условный образец задания. Пути в нём нужно заменить адресами своего сайта.

При прямом открытии /catalog/proverka-net-tovara основной документ возвращает 200, а после загрузки показывает «Товар не найден». Ожидаемое поведение: отсутствующий товар возвращает 404 по исходному адресу, страница объясняет причину и сохраняет навигацию. Проверить аналогичные неизвестные адреса каталога и блога, а также удалённые материалы. Существующие товары, включая товары без остатка, должны продолжать открываться корректно.

К заданию полезно добавить:

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

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

Как принять исправление

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

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

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

После технического исправления уберите ссылки на удалённые адреса из меню, подборок и текстов. Также исключите их из XML-карты сайта — файла со списком адресов, предлагаемых для обхода поисковым системам. Эти действия дополняют правильный статус, но не заменяют его.

Какие действия не исправляют мягкую ошибку

Замена заголовка на «404» меняет только внешний вид. Добавление noindex — указания не включать страницу в поисковый индекс — тоже не превращает успешный ответ в ошибку.

Запрет адреса в robots.txt, файле правил обхода сайта, не исправляет HTTP-статус. Кроме того, ограничение обхода может мешать поисковому роботу получить обновлённый ответ. Не стоит использовать такой запрет как подмену исправления.

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

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

Проверить сайт бесплатно

← Все статьи