Довольно таки давно замечал в джоне сложности с индексацией не существующих страниц, а вернее исключением их из индекса. Т.е. была страница, мы её удаляем, а она почему-то висит черт знает сколько в индексе поисковиков.
У кого стоит статистика от Макса и есть своя страница 404 на сайте, вероятно замечали насколько эта страница популярна? Почему так, ведь не существующая страница должна удаляться из индекса поисковика и на нее не должно быть переходов? Конечно, есть вероятность что просто админ забыл удалить ссылку на ту страницу, которую убрал, но сами понимаете как это маловероятно. Ведь если удаляем что-то, то и ссылку убираем. Значит вывод один - популярность 404-й страницы только из-за переходов из поисковиков.
Чем чреваты такие несуществующие страницы в индексе поисковика? Прежде всего возможным дублем контента, ведь не обязательно что вы удалили страницу с сайта, а просто переместили её на другой адрес, и вот у вас уже две одинаковые страницы в индексе с одинаковым содержанием. Все это приводит к пессимизации сайта в выдаче поисковых систем. Особенно к таким вещам чувствителен наш русскоязычный поисковик Яндекс, он дубли понимает плохо и может вообще принять всё это за поисковый спам, тогда уже просто пессимизацией не отделаешься, можно и под АГС угодить.
Не так давно решил я проверить и выяснить "а в чем собственно причина такого долгого нахождения страниц движка JohnCMS в индексе, почему они не исчезают в поисковой индексации?".
Первое что я сделал, это конечно же спросил Гугл, мол "братан, че за фигня и как с этим бороться?". Он мне выдал кучу информации и я затем отсеивая не нужное пришел к выводу что дело в HTTP заголовках, нужно копать в эту сторону.
Каково же было моё удивление, когда я увидел заголовки которые отдает джон при ошибках. При не существующих страницах, он просто отдает
302 Found (найдено), вместо того чтобы отдавать заголовок
404 Not Found (не найдено). При чем не важно на каком сайте, это на всех джоновских сайтах, можете проверить ответы заголовков у себя или прямо здесь на оф.сайте введя в адрес не существующую страницу. Проверить заголовки можно например вот
этим сервисом, хотя их существует великое множество, да и с помощью php выдаваемые заголовки проверить не проблема.
Олег исправь эту ошибку, так не должно быть. Нужно чтобы отдавался заголовок что файл не найден
header('HTTP/1.1 404 Not Found');
Либо ещё лучший вариант
header('Location: http://наш_сайт.ru' , true, 301);
Второй вариант лучше тем, что если страница не существует, то будет ответ "перемещена на всегда на главную". И если у удаленной страницы были какие-то пузомерки или определенные позиции в поиске, то это не пропадет, а перетечет на главную сайта.
Это интересный вопрос. Для его обсуждения и принятия верного решения, создадим отдельную тему.