Robots协议(也称为爬虫协议、机器人协议等)的全称是“网络爬虫排除标准”(Robots Exclusion Protocol),网站通过Robots协议告诉搜索引擎哪些页面可以抓取,哪些页面不能抓取。
Robots.txt文件的重要性
robots.txt是搜索引擎蜘蛛访问网站时要查看的第一个文件,并且会根据robots.txt文件的内容来爬行网站。在某种意义上说,它的一个任务就是指导蜘蛛爬行,减少搜索引擎蜘蛛的工作量。
当搜索引擎蜘蛛访问网站时,它会首先检查该站点根目录下是否存在robots.txt文件,如果该文件存在,搜索引擎蜘蛛就会按照该文件中的内容来确定爬行的范围;如果该文件不存在,则所有的搜索引擎蜘蛛将能够访问网站上所有没有被口令保护的页面。
通常搜索引擎对网站派出的蜘蛛是有配额的,多大规模的网站放出多少蜘蛛。如果我们不配置robots文件,那么蜘蛛来到网站以后会无目的的爬行,造成的一个结果就是,需要它爬行的目录,没有爬行到,不需要爬行的,也就是我们不想被收录的内容却被爬行并放出快照。所以robots文件对于我们做网站优化来说具有很重要的影响。
网站没有Robots.txt文件的弊端
如果网站中没有robots.txt文件,则网站中的程序脚本、样式表等一些和网站内容无关的文件或目录即使被搜索引擎蜘蛛爬行,也不会增加网站的收录率和权重,只会浪费服务器资源;
搜索引擎派出的蜘蛛资源也是有限的,我们要做的应该是尽量让蜘蛛爬行网站重点文件、目录,最大限度的节约蜘蛛资源。
Robots.txt文件的存放位置
网站根目录下,通过“域名/robots.txt”能正常访问即可,如http://域名/robots.txt
Robots.txt文件的写法
User-agent:%20*%20*代表所有搜索引擎,也可指定搜索引擎,如指定百度,User-agent:%20BaiduspiderDisallow:%20/a/%20这里定义是禁止抓取a目录下面的所有内容Disallow:%20/cgi-bin/*.htm%20禁止访问/cgi-bin/目录下的所有以”.htm”为后缀的URL(包含子目录)Disallow:%20/*?*%20禁止访问网站中所有包含问号%20(?)%20的网址Disallow:%20/.jpg$ 禁止抓取网页所有的.jpg格式的图片Disallow:/ab/adc.html 禁止爬取ab文件夹下面的adc.html文件。Allow: /cgi-bin/a/ 这里定义是允许爬寻cgi-bin目录下面的a目录Allow: /tmp 这里定义是允许爬寻tmp的整个目录Allow: .htm$ 允许访问以”.htm”为后缀的URL。Allow: .gif$ 允许抓取网页和gif格式图片Sitemap: 网站地图,告诉爬虫这个页面是网站地图
迪思网站托管建议的robots文件书写方式
User-agent: *
Disallow: /i*/
Disallow: /a*d/
Disallow: /*.php
Disallow: /*/*.php
Disallow: /*/list*.html
Allow: /img/
Sitemap: https://域名/sitemap.xml
迪思网站托管Robots.txt文件的说明
User-agent: *
(注释:这里的*代表所有的搜索引擎种类,*是一个通配符;当然你也可以针对某个搜索引擎,如User-agent: Baiduspider、User-Agent: 360Spider、User-Agent: Sogouspider。)
Disallow: /i*/
(注释:Disallow为禁止爬行,如果需要禁止蜘蛛爬行images目录,可以写为Disallow: /images/ ;推荐本站采用的写法,Disallow: /i*/,可以在一定程度上提高网站的安全性,如果写成Disallow: /images/可能会暴露网站后台文件路径,特别是管理路径。采用通配符的写法需要注意一点,i*代表所有以w开头的目录。)
Disallow: /a*d/
(注释:禁止爬行所有以字母a开始、以字母d结束的目录,如/abd/、/acd/、/abcd/,这种写法也是出于安全考虑。)
Disallow: /*.php
(注释:禁止爬行根目录下的所有以.php结尾的文件,实际情况可以根据你所使用的网站程序来决定。)
Disallow: /*/*.php
(注释:禁止爬行所有目录下的所有以.php结尾的文件。)
Disallow: /*/list*.html
(注释:网站栏目文章多的时候会有分页,如第1页、第2页……,如果需要禁止爬行分页,假设分页URL为www.xxx.com/news/list_1_32.html,我们可以采取Disallow: /*/list*.html这种写法来禁止爬行所有目录下的所有分页。)
Allow: /img/
(注释:Allow代表允许爬行。Disallow: /i*/为禁止爬行所有以i开头的目录,但是我们需要让蜘蛛爬行img这个目录,可以采用Allow: /img/这种写法。)