很多站长在做网站诊断的过程中,往往会查看网站有没有做404页面,一般判断的方法很简单,就是在搜索引擎地址栏随便输入一个该域名错误链接,然后看有没有404页面。这样对吗?虽然说404页面存在的意义就是告诉浏览者和搜索引擎所请求的页面不存在或是链接错误,你这检查只能说明用户看到的是404页面,而对于搜索引擎呢?会对这个页面返回404状态码吗?
404页面就是当用户输入了错误的链接时,返回的页面。404页面的目的是:告诉浏览者其所请求的页面不存在或链接错误,同时引导用户使用网站其他页面而不是关闭窗口离开。
对于一些平时也不怎么维护并且不怎么重视404页面的企业站来说,尤其是一些虚拟空间的企业网站,或许也只是简单的放个404页面,点击能跳转到404页面也就了事了,可却从仔细的去未去查看HTTP返回的状态码,犹如下图所示:
(访客看到的404页面)
(返回状态为“200”的404页面)
由上图我们可以看出,该网站尽管对访客跳转的是404页面,但是对于搜索引擎而言却是一个正常的页面,这往往是由于错误的服务器端配置而导致返回“200”状态码,虽然对访问的用户而言,HTTP状态码是“404”还是“200”并没有什么区别,一样是提高了用户体验,但对搜索引擎而言,这则是相当重要的,甚至是致命的。
当搜索引擎蜘蛛在请求某个错误URL地址得到“404”状态回应时,即知道该URL地址已经失效,便不再索引该网页,并向数据中心反馈将该URL地址表示的网页从索引数据库中删除,而当搜索引擎对于这个404页面得到的是“200”状态回应时,则会认为该url地址是有效的,便会去索引,并会将其收录到索引数据库,这样你的所有错误页面对于搜索引擎来说都是不同url地址内容相同的页面,这会导致出现大量重复页面,会大大降低网站质量的评分,甚至直接降权。
所以正确设置的自定义404错误页面,不仅应当能够正确地显示,同时,应该返回“404”错误代码,而不是200或其他的。不仅要告诉用户该页面不存在,也要正确的让搜索引擎知道这是404错误页面而不是一个正常的页面。
1、ISS中404错误页面设置
打开IIS管理器-->点击要设置自定义404的网站的属性-->点击自定义错误选项-->选中404页-->选中并打开编辑属性-->设置成文件或默认值-->URL 里填写“/404.html”,按确定退出。再把做好的404.html页面上传到网站根目录下。此处在“消息类型”中一定要选择“文件”或“默认值”,而不要选择“URL”,不然,将导致返回“200”状态码。
2、Apache下设置404错误页面很简单,一般都是有一个404错误页面设置的功能,只需要自己做好一个404页面,上传到对应的目录就可以了。至于要想把你的404页面做的与众不同的话,你可以参考一下马海祥博客上的《如何正确设置多样性的404页面》相关介绍。
3、一些主机的空间默认就是返回值320或200状态码,怎么办呢?我们可以通过下面的代码来解决:
(1)、ApacheServer下设置404错误页面
建立一个.htaccess文件,在其中加入如下内容:ErrorDocument 404/notfound.php,然后将.htaccess文件上传到网站根目录,最后制作一个404页面,命名为notfound.php,和上面的名字一定要统一,同样上传到网站根目录就OK了。这里切记不要使用绝对URL,如果使用绝对URL返回的状态码是302或200了。
(2)、IIS/asp .net下设置404错误页面
首先,修改应用程序根目录的设置,打开web.config文件,引用以下内容:
error.asp为系统默认的404页面名,notfound.asp为自定义的404页面,使用时请修改相应文件名。
然后,在自定义的404页面notfound.asp中加入以下代码,便可以保证IIS服务器能够正确地返回404状态码。
<% Response.Status = 404 Not Found%>
总而言之,网站的404页面一定要设置好,如果说返回的是200状态码那就是自找麻烦,不如不做。我们在404页面设置完成后,一定要检查是否正确,返回的一定要是404状态,如果你网站因为产生较多200码404页面而导致降权,那是非常悲剧的。