Как вернуть правильный 404 для Google при предоставлении удобного контента для пользователя? - PullRequest
1 голос
/ 30 марта 2010

Я подпрыгиваю между размещением этого сообщения здесь и в Superuser. Пожалуйста, извините, если вы чувствуете, что это не относится к этому месту.

Я наблюдаю за поведением, описанным здесь - робот Googlebot запрашивает случайные URL-адреса на моем сайте, например aecgeqfx.html или sutwjemebk.html. Я уверен, что я не связываю эти URL-адреса нигде на моем сайте.

Я подозреваю, что это может быть Google, исследующий, как мы обращаемся с несуществующим содержанием - чтобы процитировать ответ на связанный вопрос:

 [google is requesting random urls to] see if your site correctly 
 handles non-existent files (by returning a 404 response header)

У нас есть пользовательская страница для несуществующего контента - стилизованная страница с надписью «Контент не найден, если вы считаете, что попали сюда по ошибке, пожалуйста, свяжитесь с нами», с несколькими внутренними ссылками, обслуживаемыми (естественно) 200 OK , URL обслуживается напрямую (без перенаправления на один URL).

Я боюсь, что это может дискриминировать сайт в Google - они могут не интерпретировать дружественную пользователю страницу как 404 - not found и могут подумать, что мы пытаемся что-то подделать и предоставить дублированный контент.

Как мне поступить, чтобы убедиться, что Google не будет думать, что сайт является поддельным, и при этом предоставляет пользователям удобное сообщение в случае, если они случайно нажмут на неработающие ссылки?

Ответы [ 3 ]

6 голосов
/ 30 марта 2010

Лучшей практикой было бы возвращать удобную для пользователя страницу 404 с кодом ответа 404, а не 200. Ваш веб-сервер должен справиться с этим относительно легко.

2 голосов
/ 30 марта 2010

Использовать ошибочный документ в apache

ErrorDocument 500 http://foo.example.com/cgi-bin/tester
ErrorDocument 404 /cgi-bin/bad_urls.pl
ErrorDocument 401 /subscription_info.html
ErrorDocument 403 "Sorry can't allow you access today"

Документ об ошибке может быть любым. Например, если вы используете PHP, вы можете создать файл с именем error404.php, например:

<?php
header("HTTP/1.0 404 Not Found");

echo 'Hi, this page does not exist...<img src="nice-logo.png" alt="logo" />'


?>

Единственное, что важно, это то, что ответ должен содержать правильный код 404 в заголовке - выводится Apache, PHP или любым другим динамическим скриптом.

Пример смешного 404: http://www.northernbrewer.com/brewing/weekly_fermenterd

2 голосов
/ 30 марта 2010

Вы можете отправлять статус 404 и предоставлять удобные сообщения для неработающих ссылок в том же ответе. Даже «обычные пользователи» должны получить статус 404, даже если страница не похожа на типичную страницу сбоев. Способ перехвата запроса зависит от вашего веб-сервера. Это будет намного проще, чем определить пользовательский агент и сделать что-то другое для робота Googlebot.

...