1. 白天博客首页
  2. SEO优化

robots文件介绍、作用及写法

在接手一个网站时,无论做什么诊断分析,都少不了检查robots文件,为什么有的网站天天发文章却未见收录,很有可能就是因为被robots文件里的规则屏蔽了。那么什么是robots文件呢?

在接手一个网站时,无论做什么诊断分析,都少不了检查robots文件,为什么有的网站天天发文章却未见收录,很有可能就是因为被robots文件里的规则屏蔽了。那么什么是robots文件呢?

robots文件
图1 robots文件

一、robots文件简介

简单来说就是一个以robots命名的txt格式的文本文件,是网站跟爬虫间的协议(你可以理解为搜索引擎蜘蛛抓取的规则),当搜索引擎发现一个新的站点时,首先会检查该站点是否存在robots文件,如果存在,搜索引擎则会跟据robots文件规定的规则来确定可以访问该站点的范围。

二、robots文件的作用

1.对于网站的一些不想公开的私密信息,为了防止信息泄露,我们就需要使用robots文件进行屏蔽抓取。

2.网站内的部分目录或内容如果不希望搜索引擎抓取,如WordPress的后台文件 wp-admin,管理仪表盘或其他页面,这些对搜索引擎无用。 就可以使用robots文件来告诉搜索引擎不要抓取此目录下的内容,这样就可以让有限带宽的蜘蛛 深入 抓取更多的页面。

3.屏蔽一些动态链接,统一网站路径,集中权重。

三、robots文件写法

1、组成

robots文件由User-agent和规定搜索引擎允许或禁止抓取的范围(Allow或Disallow)组成,在robots文件中还可以包括在sitemap文件的链接。

User-agent: 该项的值用于描述搜索引擎robot的名字。在robots.txt文件中,至少要有一条User-agent记录。如果该项的值设为*(即:“User-agent:*”),则对任何robot均有效。另外如果只针对百度搜索引擎,则该项的值为:Baiduspider(即:“User-agent:Baiduspider”)。

Disallow: 该项的值用于描述不希望被访问的一组URL,这个值可以是一条完整的路径,也可以是路径的非空前缀,以Disallow项的值开头的URL不会被 robot访问。例如”Disallow:/help”禁止robot访问/help.html、/helpabc.html、/help/index.html,而”Disallow:/help/”则允许robot访问/help.html、/helpabc.html,不能访问/help/index.html。”Disallow:/”说明不允许搜索引擎robot访问该网站的所有url,在”/robots.txt”文件中,至少要有一条Disallow记录。

Allow: 该项的值用于描述希望被访问的一组URL,与Disallow项相似,这个值可以是一条完整的路径,也可以是路径的前缀,以Allow项的值开头的URL 是允许robot访问的。例如”Allow:/hibaidu”允许robot访问/hibaidu.htm、/hibaiducom.html、/hibaidu/com.html。一个网站的所有URL默认是Allow的,所以Allow通常与Disallow搭配使用,实现允许访问一部分网页同时禁止访问其它所有URL的功能。如:“Disallow: /uploads/ Allow:/uploads/allimg/”只允许抓取/uploads/目录下的allimg文件。

“*”and”$”:robots文件中可以使用通配符”*”和”$”来模糊匹配url。”*” 匹配0或多个任意字符, “$” 匹配行结束符。

举个例子: Disallow: /*.asp$和Disallow: /*.asp两种写法,看似相似却规定的范围却大不相同。其中“Disallow: /*.asp$”指仅拦截以.asp结尾的网址,而“Disallow: /*.asp”则了拦截所有包含.asp的网址,包括以.asp结尾的网址,这里的“*”匹配所有的字符序列。

2、格式

robots文件可以包含至少一条或多条记录。如:

一条记录

1
2
User-agent:*
Disallow:/template/

多条记录

1
2
3
4
5
6
7
8
9
10
User-agent: Baiduspider
Disallow: /w?
Disallow: /client/

User-agent: Googlebot
Disallow: /update
Disallow: /history

User-agent: bingbot
Disallow: /usercard

解读:User-agent:*表示该协议对所有的搜索引擎都有效,而User-agent:Baiduspider则是只针对百度搜索引擎的协议。一般来说,对于面向的用户群体只针对于国内用户,那么就可以用多条记录的方式来限制国外的搜索引擎抓取,以此来节省服务器资源。

注意:在”robots.txt”文件中,”User-agent:*”这样的记录只能有一条。

3、语法

这里主要列举几个最常见的情况,如下图所示:

robots语法示例
图2 robots语法示例

4、robots的标签用法

除了使用robots.txt来告知搜索引擎哪些页面能被抓取,哪些页面不能被抓取外,robots还有另外一些写法——Robots meta 标签。

Robots.txt文件主要是限制整个站点或者目录的搜索引擎访问情况,而Robots Meta标签则主要是针对一个个具体的页面。和其他的META标签(如使用的语言、页面的描述、关键词等)一样,Robots Meta标签也是放在页面中,专门用来告诉搜索引擎ROBOTS如何抓取该页的内容。

Robots Meta标签中没有大小写之分,name=”Robots”表示所有的搜索引擎,可以针对某个具体搜索引擎写为name=”BaiduSpider”。

content部分有四个指令选项:index、noindex、follow、nofollow,指令间以“,”分隔。

index指令告诉搜索机器人抓取该页面;

follow指令表示搜索机器人可以沿着该页面上的链接继续抓取下去;

noindex命令:告诉搜索引擎不允许抓取这个页面

nofollow命令:告诉搜索引擎不允许从此页找到链接、拒绝其继续访问。

Robots Meta标签的缺省值是index和follow,而inktomi的缺省值是index、nofollow。具体写法有以下四种:

1
2
3
4
<meta name="robots" content="index,follow"><!--可以抓取并索引本页,同时还可以顺着本页的链接继续抓取下去-->
<meta name="robots" content="noindex,follow"><!--不能索引本页但可以顺着本页的链接继续抓取下去-->
<meta name="robots" content="index,nofollow"><!--可以索引本页但不允许抓取本页的链接-->
<meta name="robots" content="noindex,nofollow"><!--既不能索引本页同时也不可以抓取本页的链接-->

其中:

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

可以写成

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

1
<meta name="robots" content="noindex,nofollow">

可以写成

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

另外著名搜索引擎GOOGLE还增加了一个指令“archive”,可以限制GOOGLE是否保留网页快照。例如:<meta name=”googlebot” content=”index,follow,noarchive”>

需要注意的是并不是所有的搜索引擎都支持Robots meta标签写法。

四、使用注意事项

1、robots文件应放在网站根目录。

2、鉴于不希望搜索引擎收录网站的隐私文件,可以使用robots文件来禁止抓取,但这样却正好可以被黑客所利用, 所以robots文件并不能保证网站的隐私,因此在robots规则时,可以使用“*”来模糊匹配。 如:Disallow:/my*

3、“Disallow: /help”与“Disallow: /help/”规定的范围有所不同,“/help”包含“/help.html、/help*.html、/help/index.html”等页面,而“/help/”不包含“/help.html、/help*.html”等页面。

原创文章,作者:白天,如若转载,请注明出处:https://www.seobti.com/690.html

发表评论

电子邮件地址不会被公开。 必填项已用*标注

评论列表(1条)

  • XDD
    XDD 2019-06-26 11:02

    搜索引擎通过一种程序robot(又称spider),自动访问互联网上的网页并获取网页信息。
    当该搜索引擎的robot发现一个新站点(比如https://www.seobti.com)时,它首先会检查确认该网站是否存在https://www.seobti.com/robots.txt文件。
    如果robot发现含有该文件,那么它会根据这个文件的内容来确定它可以访问的范围,再根据范围来抓取网站内容;如果没有这个文件则默认网站允许抓取所有内容。
    注意:robots.txt文件默认放在网站根目录下。