我先跟小伙伴们说说robots协议的作用吧!robots协议的作用简单来说就是指定蜘蛛在你网站上的抓取范围.
搜索引擎爬行抓取网站页面的时候,robots协议文件是蜘蛛进入网站后首先要爬行抓取的文件,有时候我们不想让蜘蛛爬行和抓取网站的一些页面,比如:网站的js文件和网站登录后台页面等等!这些我们都不想让搜索引擎蜘蛛爬行抓取,那么这个时候就嘚用robots屏蔽蜘蛛不给它去抓取!那么robots就只能屏蔽js文件和登录页面?当然不是,网站出现以下情况的时候都可以使用robots协议!
robots使用范围:
1、网站统一路径。
例如:网站动态路径改成伪静态的时候,就要使用来屏蔽掉动态链接。
2、网站的搜索链接。
例如:因为搜索的链接是要生成的,而且如果搜索的中文字符,那么搜索链接上也会出现中文,例如我网站上的“http://www.gzseoaj.com/?s=广州SEO”当搜索广州SEO的时候,搜索结果的链接就会带上中文。那么我们就得用robots屏蔽,好比如我的博客,我应经做了搜索形成的链接屏蔽!
3、网站的tag标签链接。
例如:网站的tag标签,是没有进行因为命名的,那么点击之后的页面也是会出现中文,这时候就应该进行屏蔽tag标签。我的博客没做tag标签屏蔽那是因为我不做tag标签屏蔽!
4、网站的js链接。
5、网站的css链接。
6、网站带中文的链接。
7、没有质量的页面。例如网站有些留言的页面。
8、后台登陆界面。网站的后台页面,同样不能让搜索引擎蜘蛛进行抓取。
9、数据库链接。
10、网站已经收录的死链接。
例如:网站的死链接当然是不想被搜索引擎抓取了。关于死链的可以看《死链对网站的危害及死链的处理方法》这一片文章是我写的有关于死链生产与怎么去处理!
robots协议的基本语法:
User-agent
一般情况下robot.txt文件会以User-agent:开头,该项的值用于描述搜索引擎机器人robot的名字。
例如User-agent:Baiduspider,就是针对百度蜘蛛进行的协议约束,robots.txt文件中至少要有一条User-agent记录。 如果该项的值设为*(通配符),则该协议对任何搜索引擎机器人均有效。 如果使用通配符,这样的记录只能有一条。
User-agent:BaiduSpider
User-agent:*
Disallow
用来描述不希望被搜索机器人访问到网址。这个网址可以是完整的路径,也就是域名加上目录名或者文件名的格式,也可以是相对,也就是除去了域名,只有文件名或者目录名。
一个Disallow的对应一个文件或者目录,有多少个目录或者文件需要设置就写几个Disallow。
Disallow: /admin/ 这里定义是禁止爬寻admin目录下面的目录
Disallow: /cgi-bin/*.htm 禁止访问/cgi-bin/目录下的所有以".htm"为后缀的URL(包含子目录)。
Disallow: /.jpg$ 禁止抓取网页所有的.jpg格式的图片
Disallow:/ab/adc.html 禁止爬取ab文件夹下面的adc.html文件
禁止访问Admin目录下的文件
Disallow:/Admin/
禁止某个搜索引擎爬虫的访问
User-agent: BadBot
Disallow: /
Allow
Allow: /cgi-bin/ 这里定义是允许爬寻cgi-bin目录下面的目录
Allow: /tmp 这里定义是允许爬寻tmp的整个目录
Allow: .htm$ 仅允许访问以".htm"为后缀的URL。
Allow: .gif$ 允许抓取网页和gif格式图片
Sitemap
Sitemap: 网站地图 告诉爬虫这个页面是网站地图
Sitemap: <http://www.example.com/sitemap.xml>
Allow 和 Sitemap 为非标准语法,可能只有一些大型的搜索引擎会支持,为保证兼容性问题,推荐在 robots.txt 中只使用 User-agent ,Disallow
User-agent:后面为搜索机器人的名称,后面如果是*,则泛指所有的搜索机器人。Disallow:后面为不允许访问的文件目录。
使用示例:
禁止所有机器人访问特定文件类型
User-agent: *
Disallow: /.js$
Disallow: /.inc$
Disallow: /.css$
拦截所有的机器人
User-agent: * Disallow: /
允许所有的机器人
User-agent: *
Disallow: