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 не зрушило взагалі, зазвичай це означає, що шаблон полагодили на одній сторінці й не полагодили на сотні інших, зібраних із нього.