网络上关于robots.txt文件写法是非常及其的多啊.但是没有一些很完整的信息.所以自己整理一下发布出来.
1、robots.txt是什么?
网络蜘蛛在访问一个网站时,会首先会检查该网站的根域下是否有一个叫做robots.txt的纯文本文件。你可以在的网站中创建一个纯文本文件robots.txt,在文件中声明该网站中不想被robot访问的部分或者指定搜索引擎只收录特定的部分。
所以robots.tx是一个用来告诉网络蜘蛛(不仅限搜索引擎蜘蛛)本站中哪些位置允许抓取,哪些位置不允许抓取纯文本文件.
2、robots.txt应该放到哪?
首先,robots.txt文件必须放置在网站根目录;有域名指向到次目录,在次目录放置的robots.txt文件.只对此域名有效。其次,文件名必须小写,如Robots.txt、roBots.txt、robots.TXT都是错误的。
3、robots.txt内容应该如何写?
文件应该同时包含3个域,“User-agent:”和“Disallow:”,”Allow” 每条指令独立一行。
(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: /”禁止了蜘蛛抓取根目录下的所有内容。
(3) Allow:
该项的值用于描述希望被访问的一组URL,与Disallow项相似,这个值可以是一条完整的路径,也可以是路径的前缀,以Allow项的值开头的URL是允许robot访问的.
需要特别注意的是Disallow与Allow行的顺序是有意义的,robot会根据第一个匹配成功的Allow或Disallow行确定是否访问某个URL.
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中
加入Sitemap地址的作用是,如果搜索引擎蜘蛛能够识别此行,就能快速获知网站的XML地图文件地址,并将地图文件作为一个URL参考进行高效索引(具体哪些搜索引擎蜘蛛能够识别目前我还不清楚)。
好易阁博客的robots.txt,紧接着User-agent的第二行:
Sitemap: http://www.helloyi.cn/sitemap.xml
robots Meta标签:
robots.txt是放在网站中,文件级的网络蜘蛛授权;而robots Meta标签是放在网页中,一般用于部分网页需要单独设置的情况下。两者的功能是一样的。
Meta robots标签必须放在<head>和</head>之间,格式:
<meta name=”robots” content=”index,follow” />
content中的值决定允许抓取的类型,必须同时包含两个值:是否允许索引(index)和是否跟踪链接(follow,也可以理解为是否允许沿着网页中的超级链接继续抓取)。共有4个参数可选,组成4个组合:
index,follow:允许抓取本页,允许跟踪链接。
index,nofollow:允许抓取本页,但禁止跟踪链接。
noindex,follow:禁止抓取本页,但允许跟踪链接。
noindex,nofllow:禁止抓取本页,同时禁止跟踪本页中的链接。
以上1和4还有另一种写法:
index,follow可以写成all,如:
<meta name=”robots” content=”all” />
noindex,nofollow可以写成none,如:
<meta name=”robots” content=”none” />
防止所有搜索引擎显示您网站的快照,请将此元标记置入网页的 <HEAD> 部分:
<meta name=”robots” content=”noarchive”>
要允许其他搜索引擎显示快照,但仅防止百度显示,请使用以下标记:
<meta name=”Baiduspider” content=”noarchive”>
需要注意的是,robots Meta标签很多搜索引擎是不支持的,只有少数搜索引擎能够识别并按给定的值抓取。所以,尽可能的使用robots.txt文件来限制抓取。
robots.txt文件用法举例:
1,禁止所有搜索引擎访问网站的任何部分
User-agent: *
Disallow: /
2,允许所有的robot访问:
User-agent: *
Disallow:
或者
User-agent: *
Allow: /
(或者也可以建一个空文件 “/robots.txt”)
3, 禁止访问网站中所有的动态页面:
User-agent: *
Disallow: /*?*
最后给大家一个建议,不要太刻意的在robots.txt中设置过多禁止文件或目录,只设置确实不希望被搜索引擎索引的目录和文件就可以了.