Несуществующая страница не отдаёт 404 (soft 404): как исправить
Что это значит
Мы открыли заведомо несуществующий адрес. Правильный ответ: «страница не найдена» (код 404). А ваш сайт ответил «страница есть» (200), перенаправил на главную или выдал другой код.
Чем мешает
Поисковики могут добавить в поиск тысячи мусорных адресов-дублей и тратить время на них вместо нужных страниц. Посетитель по битой ссылке не понимает, что страницы нет.
Как исправить
WordPress
- Сам WordPress отвечает 404 правильно. Обычно мешает плагин «перенаправлять все 404 на главную» (например, All 404 Redirect to Homepage). Отключите его.
- Если включены перенаправления в Rank Math или плагин Redirection, проверьте, нет ли правила, которое отправляет все несуществующие адреса на главную.
Tilda
- Создайте страницу «Страница не найдена» и назначьте её: «Настройки сайта → Ещё → Страница 404». Не используйте для неё адрес /404. Опубликуйте все страницы.
- Если ответ всё равно не 404, напишите в поддержку Tilda.
1С-Битрикс
- Проверьте, что файл
404.phpв корне сайта выставляет статус 404 (CHTTP::SetStatus("404 Not Found")иdefine("ERROR_404","Y")). - В компонентах каталога и новостей включите «Устанавливать статус 404» и «Показывать специальную страницу».
OpenCart
- По умолчанию OpenCart отвечает 404. Проверьте, нет ли модуля, который перенаправляет несуществующие страницы на главную, и отключите его.
Другой движок или свой сервер
- Не направляйте все адреса на главную (
try_files … /index.htmlв nginx для обычного сайта). - Apache: в
ErrorDocumentуказывайте путь, а не полный адрес:ErrorDocument 404 /404.html. С полным адресом (http://…) Apache делает перенаправление вместо 404.
Пример кода
Замените example.by на адрес своего сайта.
# nginx
error_page 404 /404.html;
# не используйте error_page 404 =200 …
# Apache (.htaccess)
ErrorDocument 404 /404.html
В Tilda и WordPress (отключить плагин) справитесь сами за 5 минут.
Если сайт делал подрядчик
Перешлите ему ссылку на отчёт и эту просьбу:
Несуществующие адреса на сайте не отвечают кодом 404 (пример адреса в отчёте). Сделайте, пожалуйста, так, чтобы любой несуществующий адрес отдавал код 404 и страницу «Не найдено» без перенаправления на главную.
Как проверить, что всё исправлено
Проверьте сайт снова на yasnoseo.by.