Должен ли я использовать 404 Not found или 410 Gone для системы электронных досок объявлений, когда тема удалена? - PullRequest
12 голосов
/ 06 декабря 2009

Я создаю систему досок объявлений, и теперь я внедряю функцию «удалить тему» ​​для администраторов. Если кто-то открывает удаленную тему, сервер не может ее найти, поэтому это должно быть 404. С другой стороны, эта тема когда-то существовала, поэтому я должен использовать 410. Для реализации 410 потребовалась бы новая таблица с именем selected_topics, и поэтому требуют больше места. Тем не менее, 410 я думаю, что лучше для поисковых систем. Как вы думаете? Должен ли я использовать 404 или 410?

404 Не найдено

Сервер не нашел ничего, соответствующего Request-URI. Не указано, является ли состояние временным или постоянным. Код состояния 410 (Унесенные) СЛЕДУЕТ использовать, если сервер через некоторый внутренне конфигурируемый механизм знает, что старый ресурс постоянно недоступен и не имеет адреса пересылки. Этот код состояния обычно используется, когда сервер не хочет точно указывать, почему запрос был отклонен, или когда другой ответ не применим.

410 Унес

Запрашиваемый ресурс больше не доступен на сервере, и адрес пересылки неизвестен. Ожидается, что это условие будет считаться постоянным. Клиенты с возможностями редактирования ссылок ДОЛЖНЫ удалять ссылки на Request-URI после одобрения пользователя. Если сервер не знает или не имеет возможности определить, является ли условие постоянным, СЛЕДУЕТ использовать код состояния 404 (не найден). Этот ответ кэшируется, если не указано иное.

Ответ 410 в первую очередь предназначен для оказания помощи задаче веб-обслуживания, уведомляя получателя о том, что ресурс намеренно недоступен и что владельцы серверов желают удалить удаленные ссылки на этот ресурс. Такое мероприятие характерно для ограниченных по времени рекламных услуг и для ресурсов, принадлежащих лицам, которые больше не работают на сайте сервера. Нет необходимости отмечать все постоянно недоступные ресурсы как «пропавшие» или сохранять отметку в течение любого промежутка времени - это остается на усмотрение владельца сервера.

Спасибо

Ответы [ 3 ]

11 голосов
/ 06 декабря 2009

Для отображения 410 требуется чуть больше усилий, чем для 404, потому что для того, чтобы узнать, что это 410, вам нужно сохранить хотя бы «призрак» предыдущей страницы в вашей базе данных. Если это не проблема для вас, я бы посчитал 410 «лучше» и «дружелюбнее», потому что он предоставляет больше информации. Если вы не хотите, чтобы в вашей базе данных содержалось кладбище, то, конечно, 404 также приемлемо.

Мне не нравится подход Алохчи по перенаправлению на другую страницу. Конечный результат выглядит так, как будто пользователь попал на страницу «Ввод новой темы» (или что-то еще) случайно. Это работает, но я думаю, что предпочтительным решением было бы создание пользовательской страницы 410 (или страницы 404, если вы не хотите поддерживать 410) с конкретной информацией для рассматриваемого случая. То есть ваш 410 должен не просто сказать "ушел", он должен сказать "это сообщение было удалено, вот ссылка на похожие сообщения или ссылка для создания нового сообщения". Ваш «404» не будет иметь столько информации, но он все равно может предложить подмножество такой информации и ссылок.

Я полагаю, что "пользовательская страница 410" по внешнему виду близка к "перенаправлению с 301", но важное отличие состоит в том, что пользователи вашего сайта-робота (которых много !) Получат больше точный статус и знать, как удалить старую ссылку из индекса сканирования & ndash; это в конечном итоге спасет их, а вам лишний трафик.

4 голосов
/ 06 декабря 2009

Я думаю, что правильный способ сделать это - отправить 410 Gone на некоторое время и через несколько недель / месяцев переключиться на 404 Not found. Конечно, вам решать, стоит ли это того времени и усилий.

0 голосов
/ 06 декабря 2009

Ни. Поскольку вы отметили свой вопрос «SEO», я предполагаю, что вы хотите лучший ответ SEO. Если на удаленную тему есть какие-либо обратные ссылки (пришедшие с внешних сайтов), весь «ссылочный сок» будет утерян с 404 и 410 статусами.

Вместо этого вам непременно следует создать несколько редиректов 301, которые указывают на корень сайта, корень форума или связанную категорию. Таким образом, вы сохраните ссылочный сок и решите, какие страницы вашего сайта принесут наибольшую пользу.

...