Статус несуществующих страниц нужно возвращать верно, ботам это нравится. Ниже код для правильной отдачи статуса «404 Not Found» и выдержки из мануалов Яндекса/Google.
Из мануала Яндекса вебмастерам:
Soft 404. Одна из распространенных ошибок заключается в замене сообщения об ошибке 404 (страница не найдена) для несуществующих страниц на страницу-заглушку, которая возвращается с кодом ответа 200 (ОК). В этом случае поисковая система считает, что страница с некорректным адресом существует, и не удаляет ее из своей базы. Это приводит к более медленному индексированию полезных страниц на сайте.
На эту же тему от Google:
Если на странице появляется сообщение «404 Файл не найден», это не означает, что это страница 404. Если на клетке с жирафом висит табличка «собака», это не означает, что в клетке на самом деле сидит собака. Аналогичным образом то, что на странице написано «404″, вовсе не означает, что возвращается 404.
Рекомендуется настроить веб-сайт так, чтобы при запросе несуществующих страниц возвращался бы код ответа 404 (страница не найдена) или 410 (страница удалена).
Универсальная функция на php:
<?php
$sapi_name
= php_sapi_name();
if
(
$sapi_name
== ‘cgi’ ||
$sapi_name
== ‘cgi-fcgi’) {
header(‘Status: 404 Not Found’);
}
else
{
header(
$_SERVER
[
'SERVER_PROTOCOL'
] . ‘ 404 Not Found’);
}
?>