原文地址:http://www.chinaz.com/web/2011/1117/221058.shtml
关于这个robots.txt正确的写法,蛋疼博客-老林参考了很多作者的写法、还有百度的文献,发现有的作者解释或者写法太过简单,造成新手不易理解,当然蛋疼博客-老林也不敢保证百分百解释得让你很明白。
robots.txt是以什么形式存在?robots.txt就是一份网站和搜索引擎双方签订的规则协议书。每一个搜索引擎的蜘蛛访问一个站点时,它首先爬行来检查该站点根目录下是否存在robots.txt。如果存在,蜘蛛就会按照该协议书上的规则来确定自己的访问范围;如果没有robots.txt,那么蜘蛛就会沿着链接抓取。
请牢牢记住:robots.txt必须放置在站点的根目录下,而且文件名必须全部小写。Disallow后面的冒号必须为英文状态的。
我们先来理解User-agent和Disallow的定义。
● User-agent:该项用于描述搜索引擎蜘蛛的名字。(1)规定所有蜘蛛:User-agent:*;(2)规定某一个蜘蛛:User-agent:BaiduSpider。
● Disallow:该项用于描述不希望被抓取和索引的一个URL,这个URL可以是一条完整的路径。这有几种不同定义和写法:(1)Disallow:/AAA.net,任何以域名+Disallow描述的内容开头的URL均不会被蜘蛛访问,也就是说以AAA.net目录内的文件均不会被蜘蛛访问;(2)Disallow:/AAA.net/则允许robots抓取和索引AAA.net/index.html,而不能抓取和索引AAA.net/admin.html;(3)如果Disallow记录为空,说明该网站的所有部分都允许被访问。在robots.txt文件中,至少应有Disallow记录,如果robots.txt为空文件,则对所有的搜索引擎robot来说,该网站都是开放的。
1、国内建站需要用到的常见搜索引擎robot的名称。
有时候我们觉得网站访问量(IP)不多,但是网站流量为什么耗的快?有很多的原因是垃圾(没有)蜘蛛爬行和抓取消耗的。而网站要屏蔽哪个搜索引擎或只让哪个搜索引擎收录的话,首先要知道每个搜索引擎robot的名称。
2、robots.txt文件基本常用写法:
首先,你先建一个空白文本文档(记事本),然后命名为:robots.txt。
(1)禁止所有搜索引擎访问网站的任何部分。
User-agent: *
Disallow: /
(2)允许所有的robots访问,无任何限制。
User-agent: *
Disallow:
或者
User-agent: *
Allow: /
还可以建立一个空文件robots.txt或者不建立robots.txt。
(3)仅禁止某个搜索引擎的访问(例如:百度baiduspider)
User-agent: BaiduSpider
Disallow:/
(4)允许某个搜索引擎的访问(还是百度)
User-agent: BaiduSpider
Disallow:
User-agent: *
Disallow: /
这里需要注意,如果你还需要允许谷歌bot,那么也是在“User-agent: *”前面加上,而不是在“User-agent: *”后面。
(5)禁止Spider访问特定目录和特定文件(图片、压缩文件)。
User-agent: *
Disallow: /AAA.net/
Disallow: /admin/
Disallow: .jpg$
Disallow: .rar$
这样写之后,所有搜索引擎都不会访问这2个目录。需要注意的是对每一个目录必须分开说明,而不要写出“Disallow:/AAA.net/ /admin/”。
3、robot特殊参数(这一部分不熟者不要轻易使用)
(1)Allow
Allow与Disallow是正好相反的功能,Allow行的作用原理完全与Disallow行一样,所以写法是一样的,只需要列出你要允许的目录或页面即可。
Disallow和Allow可以同时使用,例如,需要拦截子目录中的某一个页面之外的其他所有页面,可以这么写:
User-agent: *
Disallow: /AAA.net/
Allow: /AAA.net/index.html
这样说明了所有蜘蛛只可以抓取/AAA.net/index.html的页面,而/AAA.net/文件夹的其他页面则不能抓取,还需要注意以下错误的写法:
User-agent: *
Disallow: /AAA.net
Allow: /AAA.net/index.html
原因请看上面Disallow值的定义说明。
(2)使用“*”号匹配字符序列。
例1.拦截搜索引擎对所有以admin开头的子目录的访问,写法:
User-agent: *
Disallow: /admin*/
例2.要拦截对所有包含“?”号的网址的访问,写法:
User-agent: *
Disallow: /*?*
(3)使用“$”匹配网址的结束字符
例1.要拦截以.asp结尾的网址,写法:
User-agent: *
Disallow:/*.asp$
例2.如果“:”表示一个会话ID,可排除所包含该ID的网址,确保蜘蛛不会抓取重复的网页。但是,以“?”结尾的网址可能是你要包含的网页版本,写法:
User-agent: *
Allow: /*?$
Disallow: /*?
也就是只抓取.asp?的页面,而.asp?=1,.asp?=2等等都不抓取。
4、网站地图(sitemap)
对于提交网站地图,我们可以到谷歌站长工具提交,也可以用robots.txt文件中提示蜘蛛抓取:
sitemap:AAA.net/sitemaps.xml
5、robots.txt的好处与坏处(解决方法)。
好处:
(1)有了robots.txt,spider抓取URL页面发生错误时则不会被重定向至404处错误页面,同时有利于搜索引擎对网站页面的收录。
(2)robots.txt可以制止我们不需要的搜索引擎占用服务器的宝贵宽带。
(3)robots.txt可以制止搜索引擎对非公开的爬行与索引,如网站的后台程序、管理程序,还可以制止蜘蛛对一些临时产生的网站页面的爬行和索引。
(4)如果网站内容由动态转换静态,而原有某些动态参数仍可以访问,可以用robots中的特殊参数的写法限制,可以避免搜索引擎对重复的内容惩罚,保证网站排名不受影响。
坏处:
(1)robots.txt轻松给黑客指明了后台的路径。
解决方法:给后台文件夹的内容加密,对默认的目录主文件inde.html改名为其他。
(2)如果robots.txt设置不对,将导致搜索引擎不抓取网站内容或者将数据库中索引的数据全部删除。
User-agent: *
Disallow: /
这一条就是将禁止所有的搜索引擎索引数据。
老林友情提醒,在你不能保证robots.txt正确写法,那么就应该保证robots.txt出厂状态,不要轻易的去动它,避免造成不必要的损失!以上内容属于手工操作,难免会有错误,若有发现,请留言告知!
本文原创于蛋疼SEO:http://a250.net,转载请留链接地址,谢谢!
obots.txt
robots.txt是一个协议,而不是一个命令。
robots.txt是搜索引擎中访问网站的时候要查看的第一个文件。robots.txt文件告诉蜘蛛程序在服务器上什么文件是可以被查看的。 当一个搜索蜘蛛访问一个站点时,它会首先检查该站点根目录下是否存在robots.txt,如果存在,搜索机器人就会按照该文件中的内容来确定访问的范围;如果该文件不存在,所有的搜索蜘蛛将能够访问网站上所有没有被口令保护的页面。百度官方建议,仅当您的网站包含不希望被搜索引擎收录的内容时,才需要使用robots.txt文件。如果您希望搜索引擎收录网站上所有内容,请勿建立robots.txt文件。
如果其他网站链接了您robots.txt文件中设置的禁止收录的网页,那么这些网页仍然可能会出现在百度的搜索结果中,但您的网页上的内容不会被抓取、建入索引和显示,百度搜索结果中展示的仅是其他网站对您相关网页的描述。
在SEO中作用 在进行网站优化的时候,经常会使用robots文件把一些内容不想让蜘蛛抓取.
搜索引擎通过一种爬虫spider程序(又称搜索蜘蛛、robot、搜索机器人等),自动搜集互联网上的网页并获取相关信息。 鉴于网络安全与隐私的考虑,搜索引擎遵循robots.txt协议。通过根目录中创建的纯文本文件robots.txt,网站可以声明不想被robots访问的部分。每个网站都可以自主控制网站是否愿意被搜索引擎收录,或者指定搜索引擎只收录指定的内容。当一个搜索引擎的爬虫访问一个站点时,它会首先检查该站点根目录下是否存在robots.txt,如果该文件不存在,那么爬虫就沿着链接抓取,如果存在,爬虫就会按照该文件中的内容来确定访问的范围。
robots.txt必须放置在一个站点的根目录下,而且文件名必须全部小写。
robots.txt文件的格式
User-agent: 定义搜索引擎的类型
Disallow: 定义禁止搜索引擎收录的地址
Allow: 定义允许搜索引擎收录的地址
我们常用的搜索引擎类型有:(User-agent区分大小写)
google蜘蛛:Googlebot 百度蜘蛛:Baiduspider 360蜘蛛:360Spider yahoo蜘蛛:Yahoo!slurp alexa蜘蛛:ia_archiver bing蜘蛛:MSNbot altavista蜘蛛:scooter lycos蜘蛛:lycos_spider_(t-rex) alltheweb蜘蛛:fast-webcrawler inktomi蜘蛛:slurp Soso蜘蛛:Sosospider Google Adsense蜘蛛:Mediapartners-Google 有道蜘蛛:YoudaoBot 泽许蜘蛛: Zexuwhterobots.txt文件的写法
User-agent: * 这里的*代表的所有的搜索引擎种类,*是一个通配符
Disallow: /admin/ 这里定义是禁止爬寻admin目录下面的目录
Disallow: /require/ 这里定义是禁止爬寻require目录下面的目录
Disallow: /ABC/ 这里定义是禁止爬寻ABC目录下面的目录
Disallow: /A 是屏蔽A目录下的所有文件,包括文件和子目录,还屏蔽 /A*.*的文件
Disallow: /cgi-bin/*.htm 禁止访问/cgi-bin/目录下的所有以".htm"为后缀的URL(包含子目录)。
Disallow: /*?* 禁止访问网站中所有的动态页面
Disallow: /.jpg$ 禁止抓取网页所有的.jpg格式的图片
Disallow:/ab/adc.html 禁止爬取ab文件夹下面的adc.html文件。
Allow: /cgi-bin/ 这里定义是允许爬寻cgi-bin目录下面的目录
Allow: /tmp 这里定义是允许爬寻tmp的整个目录
Allow: /.htm$ 仅允许访问以".htm"为后缀的URL。
Allow: /.gif$ 允许抓取网页和gif格式图片用法举例
例1. 禁止所有搜索引擎访问网站的任何部分
User-agent: *
Disallow: /
实例分析:淘宝网的 Robots.txt文件
User-agent: baiduspider
Disallow: /
很显然淘宝不允许百度的机器人访问其网站下其所有的目录。
例2. 允许所有的robot访问 (或者也可以建一个空文件 “/robots.txt” file)
User-agent: *
Allow:
例3. 禁止某个搜索引擎的访问
User-agent: BadBot
Disallow: /
例4. 允许某个搜索引擎的访问
User-agent: Baiduspider
allow:/