Soft 404 — это страница, которая говорит посетителю «ничего не найдено», а серверу — «всё в порядке». Search Console определяет это как запрос, который «возвращает понятное пользователю сообщение “не найдено”, но не код ответа 404». Всё дело в расхождении: статус говорит, что страница есть, содержимое — что её нет, и Google приходится решать, чему верить.
Из-за этого soft 404 — единственная проблема индексации, которую не найдёт краул. Любой другой статус виден в колонке кодов: 403 для Googlebot, 404, цепочка редиректов. Soft 404 отвечает 200, поэтому обход сайта — в том числе нашим сканером — покажет здоровую страницу. Сигнал в содержимом, а не в заголовке ответа.
Как Google решает, что это soft 404
Правило записано в документации по обходу, в строке про 2xx: Google берёт контент в обработку, и «Если контент выглядит для Google Поиска как ошибка, пустая страница или сообщение об ошибке, Search Console покажет ошибку soft 404». Там же — та часть, которую обычно пропускают: «Для Google Поиска код 2xx не гарантирует индексирование».
То есть ни списка запрещённых фраз, ни опубликованного порога нет. Задокументировано направление оценки: контент, который читается как ошибка или в котором ничего нет, считается ошибкой независимо от того, что сказал заголовок. Отсюда и рекомендация самой Search Console: «Для действительно отсутствующих страниц рекомендуем возвращать код 404 и добавить на страницу больше информации, чтобы мы поняли, что это не soft 404».
Откуда берутся soft 404
| Страница | Почему читается как ошибка |
|---|---|
| Пустая категория или комбинация фильтров | Шаблон отрисовался, список пуст. Для читателя и для Google у страницы нет предмета. |
| Товар закончился, но страница осталась | Ушли цена, описание и кнопка покупки — осталось уведомление. |
| Внутренний поиск без результатов | «По вашему запросу ничего не найдено» — это буквально сообщение об ошибке с кодом 200. |
| Удалённая страница с редиректом на главную | Спрашивали конкретное, ответили другой страницей. За исходным URL по-прежнему ничего нет. |
| SPA, которое не дождалось данных | Оболочка отрисовалась, контент не пришёл, а 200 был отдан до того, как это выяснилось. |
| Истёкшее объявление, прошедшее событие, закрытая вакансия | Страница живёт с одной строкой о том, что всё закончилось. |
Сейчас главный источник — одностраничные приложения
Клиентский роутинг не может выставить код ответа: статус определился, когда отдавали оболочку. Google пишет об этом прямо и называет две стратегии, чтобы избежать ошибок soft 404 в одностраничных приложениях:
- редирект на JavaScript на URL, для которого сервер отвечает 404 — например
/not-found; - добавление
<meta name="robots" content="noindex">на страницы ошибок средствами JavaScript.
Там же объяснено, почему проблема возникает вообще: «Все страницы с кодом 200 отправляются в очередь на отрисовку независимо от того, есть ли на странице JavaScript». Оболочка получает свой 200 задолго до того, как станет известно, есть ли данные.
Как их найти
- Начинать с Search Console, потому что знает только она. В отчёте об индексировании есть статус с точным названием «Страница с кодом soft 404». Наш инструмент проблем индексации группирует такие URL, чтобы было видно: это один шаблон, одна папка или весь каталог.
- Посмотреть на страницу так, как её отрисовал Google. Рекомендация Search Console — запустить живую проверку URL и открыть «Посмотреть проверенную страницу» со скриншотом. Пустой блок там, где в браузере товары, и есть ответ.
- Проверить, что на странице после отрисовки. Если весь текст — заголовок и одно предложение, он прочитается как ошибка независимо от намерений. Анализатор страницы показывает, что на ней фактически есть.
- Отследить те, что ещё приносят клики. У части soft 404 есть трафик и входящие ссылки. Органические 404 находят URL, которые получают поисковый трафик и при этом отвечают как ошибка, — таким нужен редирект, а не удаление.
Что отдавать вместо
Починка зависит от того, почему страница пуста, а не от того, что удобнее.
| Ситуация | Правильный ответ |
|---|---|
| Страницы действительно нет | 404, а если точно не вернётся — 410. Рекомендация Google для реально отсутствующих страниц прямая. |
| Контент переехал | 301 на страницу, которая отвечает на тот же запрос, а не на главную. |
| Товар временно закончился | Оставить 200, оставить описание и характеристики, написать, когда вернётся. У страницы остаётся предмет. |
| Категория пуста, но раздел существует | Оставить 200 и добавить содержание: описание, смежные категории, соседние фильтры. Либо закрыть noindex, пока пусто. |
| Результаты внутреннего поиска | Закрыть в robots.txt. Их вообще не нужно обходить. |
| Состояние ошибки в SPA | Одна из двух задокументированных стратегий выше: редирект на реальный 404-URL или noindex, добавленный на JavaScript. |
Остальные решения по кодам ответа, включая случаи, когда 410 лучше 404, собраны в нашем справочнике HTTP-статусов.
Что изменится после исправления
Страница, которая начала отвечать 404, уходит из индекса — в этом и смысл. Ждите, что число в статусе «soft 404» упадёт, а в «Не найдено (404)» вырастет: это работает починка, а не новая проблема. Страницы, которые вы вместо этого наполнили содержанием, остаются на 200, и их нужно переобойти и переоценить — сроков на это Google не публикует. Следить стоит за одним: если число soft 404 не сдвинулось вообще, обычно это значит, что шаблон починили на одной странице и не починили на сотне остальных, собранных из него.