每个拥有“胖手指”的人在敲错键盘时,都应该看到过404状态码。它意味着请求的URL地址不存在。然而,与这个状态码有关的一些技术细节还不是很清楚。事实上,人们通常把404和Apache的普通错误页面关联起来。但是这种情况并不是必须的。有些网站自定义了他们的404页面,来加强用户体验。更高级的网站甚至可以根据在无效的IRL地址中输入的关键词的意思,试着给访问者一些建议。
不管404页面时普通还是自定义的,它都能通知搜索引擎页面不存在:并且还会使得页面从索引中清除。
搜索引擎从不索引能导致404状态码的页面
对于静态网站,404错误自动产生的——只要删除了文件就会产生。不幸的是,许多动态网站根本没有404的概念,因为它的实现需要额外的努力。典型的情况是当一个产品从数据库中被删除时,产品页面不再被网站的其它页面所链接。然后,这个产品页面可能由于被外部网站页面链接而获得了链接价值,并仍然被搜索引擎索引。
最糟糕的事情就是返回一个200状态码的空页面——这经常发生在当某个产品ID在数据库中不再存在时。随着时间推移,结果就是一些空页面被搜索引擎索引,这将导致重复内容问题。其实应该返回404状态码,再附带一个友好的错误消息。
通常的错误时发送一个“没有找到的页面”的消息,那意味着在处理404时却使用200状态码。Web主机服务常常允许设置用户定义的404页面——也就是当用户请求一个不存在的URL地址时,发送这个页面作为响应。然后。他们可能不会正确设置404状态码。这可能导致理论上有无限多个重复页面出现在网站中。可以检验发送的报头信息是否正确。
对所有被删除的页面都将返回404状态码?一些搜索引擎营销人员建议将老的产品重定向至语义相关的产品,而不是返回404状态代码。这将保持链接价值,而404则做不到。在.htaccese(Apache)中可以完成这个,或者用PHP(其它脚本语言,指语法)的301重定向也可以。