2010-03-30 35 views
1

我在弹出这里和超级用户之间弹跳。请原谅,如果你觉得这不属于这里。如何在向用户提供用户友好的内容的同时返回适当的404 for google?

我正在观察描述的行为here - Googlebot正在我的网站上请求随机的网址,例如aecgeqfx.htmlsutwjemebk.html。我确信我不会在我的网站上的任何地方链接这些网址。

我怀疑这可能是谷歌探索我们如何处理不存在的内容 - 从答案的链接的问题举:

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

我们有一个不存在的内容自定义页面 - 一风格的网页说:“内容没有找到,如果你认为你错了,请联系我们“,有几个内部链接,(自然地)用200 OK服务。该URL直接提供(不重定向到单个网址)。

恐怕这可能会歧视网站在谷歌 - 他们可能不会将用户友好页面解释为404 - not found,并可能认为我们正在尝试伪造某些内容并提供重复内容。

我应该如何着手确保谷歌不会认为该网站是假的,同时为用户提供用户友好的信息,以防他们偶然点击死链接?

回答

6

最好的做法是用一个404响应代码返回用户友好的404页,而不是200。您的Web服务器应该处理这个给你相对容易。

+0

谢谢,我不知道这件事。我将学习如何在仍然提供内容的同时返回404 – Marek 2010-03-30 18:10:18

+0

如何在ASP.NET MVC中提供内容时返回404状态码:Response.StatusCode = 404; Response.TrySkipIisCustomErrors = true;返回View(); – Marek 2010-04-01 10:10:50

2

您仍然可以发送404状态并在同一响应中为死链接提供用户友好的消息。即使“普通用户”也应该获得404状态,即使页面看起来不像典型的失败页面。拦截请求的方式取决于您的Web服务器。这比检测用户代理和为Googlebot做一些不同的事情要容易得多。

2

使用的ErrorDocument在阿帕奇

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 - 阿帕奇输出,PHP或任何其他动态脚本。

的滑稽404例:http://www.northernbrewer.com/brewing/weekly_fermenterd

相关问题