Какой код возвращать для более не существующих страниц?

W
На сайте с 09.06.2008
Offline
6
830

Привет!

У меня на сайте есть такая тенденция: страницы устаревают и их нужно удалить, желательно и из индекса поисковика тоже. Страниц таких появляется и удаляется много.

Тоесть, нужно поисковику вернуть "правильный" код, но в то же время пользоветеля отправить на страницу "не найдено" с информацией и ссылкой на главную страницу.

Какой код правильно отдавать?

Сейчас у меня это реализовано так:

header("HTTP/1.0 301 Moved Permanently");

header('location: /notfoundinfo');

Как отнесутся поисковики к тому, что у меня появляется много страниц, которые говорят, что контент перенесёт на одно и то же место, но при этом там контента нет, а есть другой.

При этом страница /notfoundinfo прописана в robots.txt как "Disallow: /notfoundinfo".

lnx
На сайте с 26.07.2008
Offline
128
lnx
#1

Лучше не использовать 301 редиррект.

Сделайте 404 страницу с указанием в robots.txt запрета на индексацию или укажите в мета-теге что ее индексировать нельзя.

kit1980
На сайте с 24.07.2006
Offline
62
#2
workoner:
Привет!

У меня на сайте есть такая тенденция: страницы устаревают и их нужно удалить, желательно и из индекса поисковика тоже. Страниц таких появляется и удаляется много.

Тоесть, нужно поисковику вернуть "правильный" код, но в то же время пользоветеля отправить на страницу "не найдено" с информацией и ссылкой на главную страницу.

Какой код правильно отдавать?

Сейчас у меня это реализовано так:

header("HTTP/1.0 301 Moved Permanently");
header('location: /notfoundinfo');

Как отнесутся поисковики к тому, что у меня появляется много страниц, которые говорят, что контент перенесёт на одно и то же место, но при этом там контента нет, а есть другой.

При этом страница /notfoundinfo прописана в robots.txt как "Disallow: /notfoundinfo".

404 Not found надо отдавать, насколько я понимаю.

А у вас сейчас как сделано, есть какая-то база удаленных страниц, или для всех not found отдается 301?

Энциклопедия языков программирования (http://progopedia.ru/) kit1980.ru (http://kit1980.ru/)
W
На сайте с 09.06.2008
Offline
6
#3
kit1980:
404 Not found надо отдавать, насколько я понимаю.

А у вас сейчас как сделано, есть какая-то база удаленных страниц, или для всех not found отдается 301?

kit1980,

Я же написал, как сделано :)

Сейчас, когда страница "устаревает" она начинает отдавать 301 код и форвардить на страницу /notfound, на которой написано, что "такой страницы более не существует".

Да, безусловно 404 было бы отдавать правильно, но мне ещё нужно человека отфорвардить.

Но если я сделаю так

header("http/1.0 404 not found");

header('location: /notfoundinfo');

то клиенту отправляется 302 код, а не 404.

orphelin
На сайте с 02.07.2006
Offline
261
#4

в htaccess можно для страницы 404 задать свою. т.е. вы просто удаляете страницу, когда человек/пс попадает по несуществующему адресу ему отдается ошибка 404 и показывается страница которая задана в htaccess

kit1980
На сайте с 24.07.2006
Offline
62
#5
workoner:
kit1980,
Я же написал, как сделано :)

Сейчас, когда страница "устаревает" она начинает отдавать 301 код и форвардить на страницу /notfound, на которой написано, что "такой страницы более не существует".

Я имел ввиду для адресов, которых нет и не было никогда. Тоже сейчас 301 отдается?

А вообще orphelin уже все правильно написал, задаете свою 404-страницу (на которой пишете, что "такой страницы не существует") и отдаете 404 ошибку. Вручную не надо "форвардить" никуда.

K
На сайте с 31.01.2001
Offline
737
#6
workoner:
но мне ещё нужно человека отфорвардить.

Это не очень вежливо. У человека пропадет URL из адресной строки, если там опечатка, он уже не сможет ее поправить. Поэтому наиболее правильно делать, как уже вам написали, с отдельной страницей для ошибки 404.

Выделенные полосы в Москве (http://www.probkovorot.info) привели к снижению скорости до 23%.
W
На сайте с 09.06.2008
Offline
6
#7
orphelin:
в htaccess можно для страницы 404 задать свою. т.е. вы просто удаляете страницу, когда человек/пс попадает по несуществующему адресу ему отдается ошибка 404 и показывается страница которая задана в htaccess

Это работает только если страницы действительно нет.

А если пхп скрипт есть, но возвращает код 404 - подстановки страницы указанной в htaccess не происходит.

kit1980:
Я имел ввиду для адресов, которых нет и не было никогда. Тоже сейчас 301 отдается?

Да, но ссылок на такие страницы на сайте нет.

******

В общем, проблему решил.

Сделал просто возвращением средствами PHP кода 404.

Раньше меня от этого останавливало то, что IE при этом не даёт ничего показать пользователю на этой странице, а подставляет свою.

НО. Оказалось, что если на этой странице вернуть много контента, около полу килабайта, то он всё-таки подставляет то, что дают, а не свою страницу.

Так что теперь всё в порядке, и я на этой странице могу написать что угодно.

Всем спасибо за советы =)

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий