Wordpress SEO robots
robots.txt 是放置于域名根目录的一个文本文件,其作用是"声明站内规则",即告诉搜索引擎一个站点中哪些内容它可以抓取,而哪些不能。站长通过向 robots.txt 写入规则来和搜索引擎"沟通",以此保证站点的内容能够按照自己的意愿出现在搜索引擎当中(百度只部分遵守)。
搜索引擎爬虫开始抓取一个网站,它们首先做的事情便是读取这个网站的 robots.txt。
根据 Wordpress 的特性,SEO 必须从 robots.txt 做起。Wordpress SEO 权重调节篇已经阐明了单篇文章的重要性,本篇 robots.txt 和 meta robots 则是我们调整 Wordpress 内部权重的重要工具。
先来看看我的 robots.txt 文件内的规则:
User-agent: *
Disallow: /index.php
Disallow: /wp-
Disallow: /*/feed
Disallow: /*/*/feed
Disallow: /*/*/trackback
Disallow: /wap
Disallow: /page
Sitemap: http://ishawn.net/sitemap.xml
我逐条分析并解释原因。
1. User-agent 即搜索引擎的爬虫,以星号(*)匹配,表明之后的规则通用于所有搜索引擎。如果需要针对单独的搜索引擎制定规则,则需要写出该搜索引擎爬虫的具体名称,例如 Baiduspider 。
2. 一定有人会奇怪为什么我要禁止爬虫抓取 index.php 。Disallow,意为不允许。当我发现搜索引擎并不那么聪明之后,我加入了这条规则。对搜索引擎来说,ishawn.net/ 是首页,而 ishawn.net/index.php 是"另一个"首页。搜索引擎一不小心发现 index.php 的存在,给抓进去了,最后的结果是:ishawn.net 有两个 meta description 页面描述完全相同的页面。首页就这么不明不白地被另一个自己分散了权重。
3. 不允许抓取 /wp- 。这是一个省略的写法,完整的意思是不允许抓取域名根目录下所有以 "wp-" 开头的文件和文件夹。名称为 "wp-" 的文件夹在我这里都是 Wordpress 的系统文件,给搜索引擎抓了去对大家都没好处。
4. 不允许抓取 /*/feed 。ishawn.net/comments/feed 和 ishawn.net/comment/feed 都是我不希望被搜索引擎抓取到的,它们对搜索引擎和我来说都没有意义。为了简化写法,我用了通配符。反正我这里除了 /tag/feed 之外没有第四个可以被匹配到的路径了。前三个我本来就不希望它们被搜索引擎抓取。
5. 不允许抓取 /*/*/feed 。ishawn.net 的永久链接结构为 /分类名称/单篇文章,这个规则匹配的便是 /分类名称/单篇文章/feed,意为不允许搜索引擎抓取单篇文章的评论 feed。
6. 不允许抓取 /*/*/trackback 。理由同上,不允许抓取单篇文章的 trackback 地址。
7. 不允许抓取 /wap 。我安装了 wp-t-wap 插件,生成的 wap 页面都包含在里面,还是出于不被分散权重的理由,禁止。
8. 不允许抓取 /page 。举例来说,ishawn.net/page/2 是首页的"第二页",它同样和首页的 meta description 相同,所以禁止理由也和第2条相同,我就不罗嗦了。需要注意的是写法,你也可以写成 Disallow: /page/* ,它们的意思都是一样的。
9. 声明 sitemap 所在地。其实这并不是一个必须的条目,不过写上可以让搜索引擎对 sitemap.xml 的读取更频繁一些。
需要注意的是,robots.txt 不通用,直接拿我的 robots.txt 内容放在你那里很可能起反作用。我看到有些博友无私地将自己的 robots.txt 分享出来让别人 copy,这种举动很愚昧。就像每个 blog 有不同的永久链接形式一样,你必须根据自己的实际情况来定制 robots.txt。之所以要逐条解释我的 robots.txt,也是出于这方面的考虑。
robots.txt 也不要写得太复杂。由于存在通配符,条目越多,交叉领域也越多,把爬虫搞糊涂对你的站点没有好处。这里有一个 Google 官方的 robots.txt 定制指南,详细解释了各种通配符的用法,有兴趣的朋友可以参考一下。
当然,要达到 "固定页面数量+单篇文章数量+首页" 的结果,仅依靠 robots.txt 是不够的。我们还需借助 meta robots 的帮助。
meta robots 是写在页面内的,具有更多可操作性的 "robots.txt" 。"ishawn.net/年份/月份" 是我这里按月存档的路径,我不想搜索引擎抓取它们,原本可以在 robots.txt 里面写 Disallow: /200* ,但这样的损失很大。要知道,写在 robots.txt 里面的内容是完全禁止搜索引擎抓取的。一旦我彻底禁止了爬虫对存档页面的爬取,那我的内链就会损失很多。
meta robots 更多可操作性的用处就在这里了。
<meta name="robots" content="noindex,follow" />
当搜索引擎读取到页面上的这个标签,便不会收录该页面。但其仍然会跟踪页面内的所有链接,使内链关系继续维持。
我们没有在页面内插入任何 meta robots 属性时, 爬虫对页面会以 "index,follow" 来对待,即收录且跟踪链接。如果有需求的话,我们也可以使用 "index,nofollow" —— 收录但不跟踪页内链接。meta robots 还有一个不常用的属性,noarchive 。该属性可以控制搜索引擎是否建立网页快照。
通过 robots.txt 和 meta robots,我们完全可以控制好搜索引擎对 blog 的收录数量,发挥单篇文章的最大价值。SEO for Wordpress 的乐趣有很多,robots.txt 和 meta robots 便是其中之一。
再次提醒,本文的例子不能通用,请一定根据自己的实际需求进行相应操作。
P.S.
这里有个工具,地址为 http://whois.domaintools.com/ ,里面的 SEO Score 代表了页面对搜索引擎的友好程度。使用方法为地址栏输入: http://whois.domaintools.com/你的域名。
Wordpress SEO 系列:
相关阅读:

嗯,不错,回去我得禁止了page和index.php。我的还禁止搜索标签和分类
嗯,收获颇丰,当时上课也就只知道有这么个文件而已
@NickyYe: 你还上课了?什么课?
先回复再看,,我这次比较早,,safari的RSS更新不能设置<30分了
@iColor: 浏览器自带的 Feed 阅读比较弱,还是推荐使用专门的 Feed 阅读器,管理和操作都方便很多。
@狐狸: 如果你用的是 Wordpress 自带的搜索,最好多禁止一个项目。
受教了,看来我设置的太复杂了,需要简化一下
@aunsen: 你的 robots.txt 好像就是我说的。。。从别人那儿抄来的吧,
这个可以抄走了~
@任平生: 又不可能照抄,
这里的权重分散指的是对本站而言,还是针对所在网站来说啊?
@xiaorsz: 你说 wap 那里吗?当然是分散本站了。我将 wap 方式作为多一种的访问渠道,但并不需要它在搜索引擎上有多大作为。所以还是那句话,根据自己的需求来写。
@Shawn: 本科时候的information retrieval
昨天烧死我了。
我来了,我生成静态的,还要加个“Disallow: /index.htm”
@Jor: 是该加,要不就乱套了。
恩,Disallow: /cgx
真受用,学习了,一直知道这个文件不会用~
@ZH CEXO: 你的 Blog 是放在二级目录的,但是 robots.txt 得放在根目录,否则没效果。不过放到根目录了,很多规则都要重写一下,比如 Disallow: /blog/index.php
@Shawn: 上了这么多年学,抄东西还是很有心得的,怎么会一字不漏地照抄呢,嘻嘻~~
我前几天也写了个robots.txt 其中有个地方不太清楚
就是类似 "Disallow: /wp-" 这样的规则 能不能阻止对 /you/wp-1.html的索引?
还有Disallow: /index.php 这样的规则可以阻止对/index.php?page=2页面的索引吗?
另外还有点不明白,对于阻止的目录搜索引擎不索引但是会不会去访问呢?
@孤巅: robots.txt 里面的规则很直白,比如 /wp- 便只会拦截根目录下 wp- 开头的文件和目录,/you/wp-1.html 是不会受到影响的,除非写成 /you/wp- 。
第二个问题,阻止不了。因为 php 是文件后缀,所以不能通配。如果要拦截 index.php?page=2,只能写作 Disallow: /index.php?
第三个问题,Google 不会去访问,其它的搜索引擎就不好说了,Baidu 是会访问的。
不是有很多人都不抓tag和category页面的?你怎么考虑
@Shawn: 我也没抓 tag 和 category 啊。。。只是用的 meta robots 而不是 robots.txt
我很少在意这个 以后可能会主意了
@yadandimao: 稍微在意一下还是有好处的。
@sofish: 典型。。。
在 Google 搜索 site:www.happinesz.cn,多翻看几页,逐一查阅条目的内容,会发现几乎每一页的描述都是一样的。
先不说禁止的部分,这样的描述对搜索引擎非常不友好,至少先把这个拿开吧。所幸的是幸福收藏夹 PR 比较高,如果 PR 较低的站点出现这种情况就很难在 Google 那里翻身了。
Shawn就是Shawn(百度?)我还在看你这篇文章,发现你说了一句,所以,还是不盲目copy, 仔细看,多学习。
...
@sofish: 哈哈,我这个 Blog 在百度确实干不过百度里面那个 Shawn,他们人工操作成分比较多。
不过在Google,以幸福收藏夹的 PR 和反向链接来看,"收藏夹" 这个关键词可以优化到前三位,现在是第九位。
Shawn,我的sitemap好奇怪,显示了几行另外的,但查看源代码又看不到这几行。你觉得会不会有问题?
@sofish: 看不到的能贴出来看看么?我现在直接访问能看见的是
User-agent: *
Disallow: /index.php
Disallow: /wp-
Disallow: /*/feed
Disallow: /*/*/feed
Disallow: /*/*/trackback
Sitemap: http://happinesz.cn/sitemap.xml
这里: http://happinesz.cn/sitemap.xml(截图:http://tinyurl.com/6dzuec),但奇怪的是http://www.happinesz.cn/sitemap.xml跟你的就一样了。问题是,两个查看源代码都是一样的。
@sofish: 文本文档内部应该有隐藏的内容,如果有就是不正常,最好咨询一下空间商,看是否做了特殊的设置。
@Shawn: 百度不会遵循这个robots的。
@Shawn: 嗯,可能是插件问题,我自己去看一下有没有得修改。无论如何Big Thanks...
@Jor: 百度遵循 robots.txt 只是不遵循 meta robots
不错.最后的查询友好很方便
先抄下来,而后单独修改,呵呵
@Shawn: Thank you~你说得真周到~
我把category和tag也禁了。
我刚刚用GG的网站管理员工具分析,好像index.html那项是禁止不了的,在测试的时候爬虫通过了。“http://jorwang.com/index.html 已允许”
@Jor: 先看上面的 robots.txt 内容,Google 已经下载到你最新的 robots.txt 了么? 还有,标签和分类不要那么禁止,不太好。
@Shawn: 是最新的,是不是/就是index.html啊。标签和分类应该怎么禁止?
@Jor: Webmaster 里有一个内容分析。故障诊断里有没有重复的元说明或者重复的标题标记?
@Shawn: 有,都是/htm/tag/和一个/page/2。
@sofish: 你说的是这个啊,这条留言我才发现被 moderation 了。
sitemap.xml 没关系的,只要源码相同就行了。我只是没有用 xml sitemap 插件提供的模板,自己弄的最简洁化的一种。效果是同样的。
@Shawn:
惊讶... 难以你没有因为我那两个不同而惊讶。
@sofish: 看来我不能让 wordpress 那么傻,什么有两条链接就需要审核,这也太麻烦了。。。
这个文件在哪?我看了wp根目录,没有,看theme目录,也没有
我靠,又改进blog了,右上角,导航兰成tab的了!
@老所: 默认是没有的,你自己创建。我稍稍改下模板至于那么激动么
不得不说,你太能整了。自己建应该放在网站根目录而不是theme目录吧。还有,你这个站没在信息部备份?
@老所: 这个文件是必须放在根目录的,放在其它目录无效。我没有备案,放国外空间的嘛,查也查不到。
你的模板真棒,是自己做的吗?可否共享?谢谢!
@wuxush: 是我自己做的,私用主题,很多东西是定制的,没有通用模板那么方便,整理起来也麻烦,所以暂时不共享。哪天我有时间整理一下再说吧。。。。
只是我看过的关于robots.txt的介绍里,最详尽的文章了。仔细研读下。
哈哈。。。你也碰到大头的问题了。那个blogyou.net的模板不知道多少人给我要过,但真的是定制的地方太多,自己有时都会忘记哪里出了问题,找不到地方解决。哪还敢发不出来呀。
各位见谅的好!
@菠菜: 呵呵,是啊,只是自己用的话很多东西不用刻意去做,通用模板考虑的问题就多了,我懒得要死,所以算了。。。
好漂亮的主题!!!
@老N: 呵呵,谢谢:)
仔细看了一下,受益匪浅啊!
终于知道All In One SEO里面那些noindex的选项是指的meta robots,原来一直稀里糊涂的用着,呵呵。
我对robots.txt的控制也不是很好,回去得修改一下:)
http://whois.domaintools.com/里我的blog友好度92%,是不是越高越好啊?
另外,你文章中提到的wp-t-wap,是为手机浏览安装的吗?我在用一个叫mobilepress的插件,不知道两者比较如何:)
@i.robot: 是的,越高越好。两者都差不多,但实际上除了自己会用可能没有人还会用了。。。
看来我的需要好好优化下。
看来得回去修改一下。
请问一下,我用 Google 网站管理员工具来生成 robots.txt,里面自动加了一条 Allow:/ ,其他的我设置了一些 Disllow 规则,那条 Allow 不知要不要保留?
@welee: 不要保留,对某些搜索引擎来说这一条会和其它的 Disallow 冲突。
@Shawn: 明白了,感谢!...回复好快哦!Shawn
shawn大师您好,这两天在这里取经不少,也对比了一些网站,我发现smashingmagazine.com源代码有这句但它在whois.domaintools.com的SEO Score也是100%,这是否表示index与noindex的差别其实不大?静候指点……
@Snowyy: domaintools 并不检测"主动式"的 SEO,它只能算作是一个量化网站对搜索引擎友好程度的指标。
我忘记屏蔽WAP目录了…………