那天闲得发慌,于是给博客弄了个自定义404错误页面,本来想自己写的,可是一动手才发现:我的水平太次了,做出来的还没有默认的好看,晕死,去网上找吧,最后在皮皮的小屋找到了几个看着不错,就改了改,然后传上去了,于是就出错了:打开Google Sitemaps 发现无法确认,无法确认原因:我们检测到您的 404(找不到文件)出错页在标头中返回 200 (成功) 状态。在网上查了半天也不知道怎么弄,刚才找客服解决了(顺便说一下,z-dbs的态度超级好,超级有耐心)。想看的话,你可以试试这个页面:http://www.iblog2008.cn/abcdefg.html
什么是HTTP404错误?
HTTP 404 错误意味着链接指向的网页不存在,即原始网页的URL失效,这种情况经常会发生,很难避免,比如说:网页URL生成规则改变、网页文件更名或移动位置、导入链接拼写错误等,导致原来的URL地址无法访问;当Web 服务器接到类似请求时,会返回一个404 状态码,告诉浏览器要请求的资源并不存在。但是,Web服务器默认的404错误页面,无论Apache还是IIS,均十分简陋、呆板且对用户不友好,无法给用户提供必要的信息以获取更多线索,无疑这会造成用户的流失。
自定义404错误页面返回的状态码
- 404 : 请求的网页不存在(不排除日后该链接有效的可能性);
- 410 : 请求的网页不存在(永久);
- 200 : 服务器成功返回网页
- 302 : 网址临时重定向(跳转)
- 301 : 网址永久重定向
需要说明的是,大部分搜索引擎将“404”与“410”状态同等对待,如Google。
当搜索引擎在请求某个Url时得到“404”状态回应时,便会知道该网页在网站内不复存在,从而在索引数据库中将其删除,——当然,这个删除过程有可能需要很长时间——而当搜索引擎得到“200”状态回应时,则会认为该url是有效的,并将其回到到索引数据库中。
404错误页返回“200”状态码的后果
如果网站的自定义404错误页面在url无效时不返回“404”状态码而代之以“200”,会发生什么情况呢?很明显,搜索引擎会认为这个“根本不存在的”网页在网站内是存在的,这会导致很多问题,影响网站的最终SEO效果。
举例来说,比如说对“http://www.iblog2008.cn/abc.html”、“http://www.iblog2008.cn/abcdefg.html”这两个在哎!部落格内并不存在的地址而言,如果搜索引擎得到的回应状态码是“200”,那么,便会将其收录到索引数据库,这样的结果便是这两个不同的url具有完全相同的内容:自定义404错误页面的内容,这类重复文本的现象对许多搜索引擎而言都是大忌。尤其是考虑到网站中不可能只有这两个无效链接,毕竟在网站建设中,无论网站的内部链接还是外部链接,总会不可避免地出现许多比如说拼写错误的情况,类似的重复内容会更多。这样,对搜索引擎而言,特别是Google,不但很难获得理想的网站信任指数,也会大大降低Google对网站质量的评定。
404错误页使用Meta Refresh带来的302问题
常常看到许多网站的自定义404错误页面采取类似这样的形式:首先显示一段错误信息,然后,通过Meta Refresh将页面跳转到网站首页、网页地图或其他类似页。根据具体实现方式不同,这类404页面可能返回“200”状态码,也可能返回“302”,但不论哪种,从SEO的角度看,均不是一种合适的选择。
对“200”状态的情况我们上面已经谈过,那么,当404页面返回“302”时,搜索引擎会怎么对待呢?从理论上说,对“302”错误,搜索引擎认为该网页是存在的,只不过临时改变了地址,仍然会索引收录该页,这样,同样会出现类似于“200”状态码时的重复文本问题;其次,以google为代表的主流搜索引擎对302重定向的适用范围要求越来越严格,这类不当使用302重定向的情况存在很大的风险。
因此,尽量不要在404错误页中使用这类Meta Refresh方法。如果实现希望实现类似的功能,即让显示错误信息几(十)秒后跳转到首页或其他页面,可以考虑在404错误页中使用Java Script跳转。——Java Script对搜索引擎而言是无益同时也无害的。
而游魂则更加干脆,不跳转了,想看自己点吧,不想麻烦的,那就关了此页吧
确保自定义404错误页面能够返回“404”状态码
在自定义404错误页面设置完毕后,一定要检查一下其是不是能够正确地返回“404”状态码。
检查的方法也相当简单,游魂找到的一个地址:www.seobox.org/getheader.htm,输入一个网站内不存在网页的url,查看一下HTTP Header的返回情况,确信其返回的是“404”。
PS:游魂的404页面间歇性失效(有时候你会看到默认的404页面) 下边的不要看:{ZHUAXIAb0e669dead8927b80ed9b956f0410b52Union}