Перейти к основному содержимому
SiteScan.top

Soft 404: несуществующая страница, которая отвечает 200 OK

Почему страница «не найдено» с кодом 200 засоряет индекс и ослепляет мониторинг — и как заставить сервер честно отвечать про несуществующие адреса.

SEO · Опубликовано: 27 сентября 2026 г. · 5 мин чтения · Марк Лебедев

404 — это не авария. Это честный ответ сервера на честный вопрос: по этому адресу ничего нет. Soft 404 — тот же ответ с неправильным кодом: на странице написано «не найдено», а HTTP-ответ говорит 200 OK. Человек читает страницу; краулеры, мониторинг и кеши читают статус. Обманывают всех, кроме человека.

Откуда они берутся

Специально soft 404 почти никто не делает. Они вырастают из вполне разумных на вид настроек по умолчанию:

Чем это вредит

Мусор в индексе. Опечатки, старые адреса из рекламных кампаний, запросы сканеров уязвимостей — всё становится «страницами». Google со временем замечает многие из них и выводит в отчёт Soft 404 в Search Console, но только после того, как обошёл их, и далеко не все.

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

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

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

Грязная аналитика. Заходы на несуществующие страницы считаются обычными просмотрами — с обычными отказами и временем на странице. Трафик «не найдено» никогда не всплывает как ошибка.

Как проверить

Запросите адрес, которого заведомо не может существовать, и смотрите только на статус:

curl -s -o /dev/null -w "%{http_code}\n" https://example.com/this-page-does-not-exist-8f3a/

Всё, кроме 404 или 410, — проблема. Повторите для каждого шаблона со своей маршрутизацией: /blog/nonexistent, /product/nonexistent, /search?q=zzzzqx, адрес без языкового префикса. Отчёт SiteScan делает это за вас: проверяет, что сервер отвечает на несуществующий адрес, и помечает ответ 200 как проблему.

Как исправить

Отдавайте настоящий 404. Для статического или пререндеренного сайта пусть nginx отдаёт заранее собранную страницу с правильным кодом:

error_page 404 /404.html;
location / {
    try_files $uri $uri/ =404;
}

В SPA с серверным рендерингом сервер должен знать таблицу маршрутов: если ни один маршрут не подошёл или маршрут подошёл, но записи нет, отвечайте 404 до того, как начнёте отдавать HTML. Если сервер в принципе не может этого знать — чисто клиентское приложение на простом хостинге, — добавьте <meta name="robots" content="noindex"> в клиентское представление «не найдено». Это крайняя мера: страница не попадёт в индекс, но мониторинг и линк-чекеры по-прежнему увидят 200.

Для удалённого навсегда — 410. Снятый с производства товар или удалённая статья — это «больше нет», а не «не найдено». 410 подсказывает краулерам перестать спрашивать раньше.

Редирект — только на настоящий эквивалент. 301 уместен, когда контент переехал: переименованная статья, модель-преемник. Массовый редирект на главную — не исправление, а тот же soft 404 с лишним шагом.

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

Чек-лист

  1. Случайный URL в каждом шаблоне маршрутизации отдаёт 404.
  2. Пустые страницы поиска и выдачи закрыты noindex или отдают 404.
  3. Удалённый контент отдаёт 410 или 301 на настоящий эквивалент.
  4. Нет правила, которое отправляет всё подряд на главную.
  5. Проверки на бота отдают 403 или 429, а не 200.
  6. Страница 404 помогает посетителю и при этом отвечает 404.

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

Проверьте, что из этого есть на вашем сайте

Бесплатное сканирование покажет битые ссылки, ошибки JS и проблемы производительности за минуту.