Google Webmaster 的日志跟软404代码说再见中建议:不要使用软404代码,因为它返回的是200响应代码,然后出现一个错误信息页面,这样可能会对对用户和搜索引擎造成困惑,所以我们让404页面应该返回硬404代码。下面我就说说如何让 WordPress 404页面返回硬404代码。
首先对于 WordPress 来说他有一个权威 URL(Canonical URL)的概念,他帮你避免一些 404 问题,导向正确的页面。
比如博客地址为 http://fairyfish.net/,那么你可以通过下面的链接访问你博客的首页。
- http://fairyfish.net/
- http://www.fairyfish.net/index.php/
- http://fairyfish.net/index.php/
- http://www.fairyfish.net?paged=1
- http://fairyfish.net/?paged=1
- http://www.fairyfish.net/page/1/
- http://fairyfish.net/page/1/
你甚至可以通过这个链接访问到你博客首页
- http://www.fairyfish.net/index.php/////page/1///////?paged=1
而对于日志页面,比如你使用了永久链接,你的某一篇日志的 URL 为:http://fairyfish.net/2008/09/04/creating-a-menu-showing-certain-categories/,它的 POST ID 为 1645。那么你可以通过以下链接访问到这篇日志:
- http://www.fairyfish.net/2008/09/04/creating-a-menu-showing-ce
- http://fairyfish.net/2008/09/04/creating-a-menu-showing-ce/
- http://fairyfish.net/2008/09/04/creating-a-menu-showing-ce
- http://www.fairyfish.net/index.php/2008/09/04/creating-a-menu-showing-ce/
- http://www.fairyfish.net/index.php/2008/09/04/creating-a-menu-showing-ce
- http://fairyfish.net/index.php/2008/09/04/creating-a-menu-showing-ce/
- http://fairyfish.net/index.php/2008/09/04/creating-a-menu-showing-ce
- http://www.fairyfish.net/?p=17
- http://fairyfish.net/?p=17
- http://www.fairyfish.net/index.php?p=17
- http://fairyfish.net/index.php?p=17
WordPress 提供了404自定义页面,我们可以通过编辑主题下面的 404.php 实现自定义。在默认情况下, WordPress 404页面返回的代码是200。为了让搜索引擎如 Google 能正确爬这些页面,最好在你主题的 404.php 添加以下两行:
<?php header("HTTP/1.1 404 Not Found"); ?> <?php header("Status: 404 Not Found"); ?>
对于某些情况,你可能还要在上面两行代码之前添加以下代码:
<?php ob_start(); ?>
最后推荐一个这方面的插件 AskApache Google 404 Plugin 。

胡戈戈 | 2008-09-05 13:17:43 | #
好像是沙发
支持 反对
流星 | 2008-09-05 13:17:45 | #
google在网站管理员工具里面放出了一个404错误的小工具,通过添加一段代码,说是可以改善用户碰到404页面之后的感官
我昨天倒是放进去了,暂时没看到效果……我好似还没错误页面,祈祷永远没有……
支持 反对
MY-Hou | 2008-09-05 13:26:15 | #
希望大家都不要进我的404
支持 反对
梵尚 | 2008-09-05 14:18:17 | #
有的时候输错网址就会进404
支持 反对
菠菜 | 2008-09-05 15:50:24 | #
这个404够强大的
支持 反对
怒风 | 2008-09-05 17:53:47 | #
一般用户有没有必要改呢?
支持 反对
Denis | 2008-09-05 18:44:55 | #
最好这样。
支持 反对
eric | 2009-02-27 22:31:40 | #
弄起来真烦,就用服务器定义的
支持 反对