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://shawnster.org/sitemap.xml

我逐条分析并解释原因。

1. User-agent 即搜索引擎的爬虫,以星号(*)匹配,表明之后的规则通用于所有搜索引擎。如果需要针对单独的搜索引擎制定规则,则需要写出该搜索引擎爬虫的具体名称,例如 Baiduspider 。

2. 一定有人会奇怪为什么我要禁止爬虫抓取 index.php 。Disallow,意为不允许。当我发现搜索引擎并不那么聪明之后,我加入了这条规则。对搜索引擎来说,shawnster.org/ 是首页,而 shawnster.org/index.php 是”另一个”首页。搜索引擎一不小心发现 index.php 的存在,给抓进去了,最后的结果是:shawnster.org 有两个 meta description 页面描述完全相同的页面。首页就这么不明不白地被另一个自己分散了权重。

3. 不允许抓取 /wp- 。这是一个省略的写法,完整的意思是不允许抓取域名根目录下所有以 “wp-” 开头的文件和文件夹。名称为 “wp-” 的文件夹在我这里都是 WordPress 的系统文件,给搜索引擎抓了去对大家都没好处。

4. 不允许抓取 /*/feed 。shawnster.org/comments/feed 和 shawnster.org/comment/feed 都是我不希望被搜索引擎抓取到的,它们对搜索引擎和我来说都没有意义。为了简化写法,我用了通配符。反正我这里除了 /tag/feed 之外没有第四个可以被匹配到的路径了。前三个我本来就不希望它们被搜索引擎抓取。

5. 不允许抓取 /*/*/feed 。shawnster.org 的永久链接结构为 /分类名称/单篇文章,这个规则匹配的便是 /分类名称/单篇文章/feed,意为不允许搜索引擎抓取单篇文章的评论 feed。

6. 不允许抓取 /*/*/trackback 。理由同上,不允许抓取单篇文章的 trackback 地址。

7. 不允许抓取 /wap 。我安装了 wp-t-wap 插件,生成的 wap 页面都包含在里面,还是出于不被分散权重的理由,禁止。

8. 不允许抓取 /page 。举例来说,shawnster.org/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” 。”shawnster.org/年份/月份” 是我这里按月存档的路径,我不想搜索引擎抓取它们,原本可以在 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 系列:

WordPress SEO 权重调节

WordPress SEO 友好程度

WordPress SEO Heading Tag

相关阅读:

WordPress SEO 搜索引擎优化

发表评论

电子邮件地址不会被公开。 必填项已用*标注