樂思蜀的博客,包括但不限于SEO&SEM研究、应用中的心得体会,互联网、搜索引擎观察与思考。

WordPress博客robots.txt写法

2008年04月02日 by 樂思蜀

使用WordPress搭建的博客,利用robots.txt文件限制搜索引擎抓取部分目录及文件,归纳大致有以下几种方法。

最简单的开放写法

不作任何限制,WordPress站内链接结构比较合理,作为一般博客,完全开放就可以了,代码:

User-agent: *
Disallow:

允许所有蜘蛛访问,允许访问所有内容。WordPress只要模板中链接设计合理,没有需要限制的特殊内容,推荐使用这种写法。

最简单的严格写法

User-agent: *
Disallow: /wp-*
#Allow: /wp-content/uploads/
Disallow: /*.php$
Disallow: /*.inc$
Disallow: /*.js$
Disallow: /*.css$
Disallow: /?s=

允许所有蜘蛛访问,限制以“wp-”开头的目录及文件,限制抓取.php文件、.inc文件、.js文件、.css文件,限制抓取搜索结果。

Disallow: /wp-* 会连同附件目录一起限制抓取,如果想让搜索引擎抓取附件中的内容,将第三行的 # 号注释去掉。Allow 不是所有搜索引擎都支持。

最合理的写法

卖瓜的都说自己瓜甜,我也觉得自己的Robots.txt写的最合理 :P

User-agent: *
Disallow: /wp-admin
Disallow: /wp-content/plugins
Disallow: /wp-content/themes
Disallow: /wp-includes
Disallow: /?s=
Sitemap: http://www.lesishu.com/sitemap.xml

允许所有搜索引擎抓取,逐一列举需要限制的目录,限制抓取搜索结果。

包含sitemap.xml地址(这一项viki中有专门的说明,但Google管理员工具会提示‘检测到无效的 Sitemap 引用’,有效性尚有争议)。

robots.txt其他写法

为避免在搜索引擎中出现重复页面,WordPress玩家自创了很多robots写法,列举一些常用的,作为参考(适用于伪静态方式的永久链接):

Disallow: /page/

#限制抓取WordPress分页

Disallow: /category/*/page/*

#限制抓取分类的分页

Disallow: /tag/

#限制抓取标签页面

Disallow: */trackback/

#限制抓取Trackback内容

Disallow: /category/*

#限制抓取所有分类列表

最后,推荐使用 Google管理员工具,登录后访问“工具 -> 分析 robots.txt”,检查文件有效性。

robots.txt和robots Meta标签

2007年11月09日 by 樂思蜀

今天一天之内,准确的说相隔不到3个小时,就有两个朋友在QQ上让我帮他看看网站,为什么搜索引擎不收录。从我个人角度来看,他们的站做的还不错,除了个别地方(如有几页标题相同之类)不够,没有导致不收录的因素。最后一查看robots.txt,“Disallow: /”。

回想起来,找我咨询的朋友中,还真有不少的一部分都是这样的问题,所以写出来,供不熟悉的朋友参考。

1、robots.txt是什么?

robots.txt是一个纯文本文件,用来告诉网络蜘蛛(不仅限搜索引擎蜘蛛)本站中哪些位置允许抓取,哪些位置不允许抓取。

2、如何正确放置robots.txt?

首先,robots.txt文件必须放置在网站根目录;有域名指向到次目录,在次目录放置的robots.txt文件只对此域名有效。

其次,文件名必须小写,如Robots.txt、roBots.txt、robots.TXT都是错误的。

3、robots.txt内容应该如何写?

文件应该同时包含2个域,“User-agent:”和“Disallow:”,每条指令独立一行。

(1)User-agent:

指定允许哪些蜘蛛抓取,如果给出参数,则只有指定的蜘蛛能够抓取;如值为通配符“*”号,代表允许所有蜘蛛抓取。如:

User-agent: Googlebot

只允许Google的蜘蛛抓取;

User-agent: *

允许所有蜘蛛抓取。

注意:User-agent必须出现在第一行(有意义的行,注释除外),首先声明用户代理。

(2)Disallow:

指定禁止蜘蛛抓取的目录或文件,如:

Disallow: /help.php

禁止抓取根目录下help.php文件;

Disallow: /admin/

禁止抓取根目录下的admin子目录中任何内容;

Disallow:

值为空时,表示不限制,蜘蛛可以抓取站内任何内容。

如果需要指定多个目录或文件,可以用多个“Disallow: 文件或目录名”来指定,但必须每一项单独一行。

这就是前面说到的那两位朋友网站robots.txt的问题,他们用“Disallow: /”禁止了蜘蛛抓取根目录下的所有内容。

4、robots.txt需要注意的几个问题:

  • robots.txt文件中任意一行Disallow的值为空,其他指定的项都将失效,整站允许User-agent指定的蜘蛛抓取;
  • robots.txt文件中允许使用注释,以“#”开头的内容被认作注释;但注释最好独立成一行,尽量不要加在参数后面,如“Disallow: /admin/ #manage dir”,某些蜘蛛可能将注释当作值的一部分。
  • 尽量不要在一行的前面出现空格,如“  Disallow: /”,可能某些蜘蛛无法正确读取。
  • 推荐一个robots.txt检查工具:http://tool.motoricerca.info/robots-checker.phtml

5、将你的XML格式Sitemap地址放到robots.txt中

Robin新发现,并率先在国内提出的,大家可以到点石博客中下载Robin的“网站如何被高效索引”演讲稿阅读。

加入Sitemap地址的作用是,如果搜索引擎蜘蛛能够识别此行,就能快速获知网站的XML地图文件地址,并将地图文件作为一个URL参考进行高效索引(具体哪些搜索引擎蜘蛛能够识别目前我还不清楚)。

樂思蜀SEO博客的robots.txt,紧接着User-agent的第二行:

Sitemap: http://www.lesishu.com/sitemap.xml

此处之前的内容,将Sitemap放在第一行的说法错误,特此更正。

robots Meta标签

robots.txt是放在网站中,文件级的网络蜘蛛授权;而robots Meta标签是放在网页中,一般用于部分网页需要单独设置的情况下。两者的功能是一样的。

Meta robots标签必须放在<head>和</head>之间,格式:

<meta name="robots" content="index,follow" />

content中的值决定允许抓取的类型,必须同时包含两个值:是否允许索引(index)和是否跟踪链接(follow,也可以理解为是否允许沿着网页中的超级链接继续抓取)。共有4个参数可选,组成4个组合:

  1. index,follow:允许抓取本页,允许跟踪链接。
  2. index,nofollow:允许抓取本页,但禁止跟踪链接。
  3. noindex,follow:禁止抓取本页,但允许跟踪链接。
  4. noindex,nofllow:禁止抓取本页,同时禁止跟踪本页中的链接。

以上1和4还有另一种写法:

index,follow可以写成all,如:

<meta name="robots" content="all" />

noindex,nofollow可以写成none,如:

<meta name="robots" content="none" />

需要注意的是,robots Meta标签很多搜索引擎是不支持的,只有少数搜索引擎能够识别并按给定的值抓取。所以,尽可能的使用robots.txt文件来限制抓取。

最后,给大家一个建议,不要太刻意的在robots.txt中设置过多禁止文件或目录,只设置确实不希望被搜索引擎索引的目录和文件就可以了。

特别是在不清楚文件或目录的作用时,不要轻易禁止抓取。前阵一位做旅游的朋友,网站中有大量的旅游景点图片,几大搜索引擎中却都没有索引,后来对网站检查时发现图片目录upload在管理目录admin下,被robots.txt禁止抓取了。

虽然网上关于robots的文章已经很多了,发现都不尽全面,整理了一下供参考。