robots协议

  如何查看robots协议?怎么写?

  对于seo来说,robots文件很是重要。搜索引擎爬虫爬取的网站的第一个文件即是这个文件,这个文件告诉搜索引擎网站的那些内容能够被爬取,那些内容不能被爬取,或者说禁止爬取。怎么查看 robots协议l?可使用这种办法,主域名/robots.txt。

  怎么写robots协议?

  当一个搜索蜘蛛访问一个站点时,它会首先检查该站点根目录下是否存在robots.txt,若是存在,搜索机器人就会按照该文件中的内容来肯定访问的范围;若是该文件不存在,全部的搜索蜘蛛将可以访问网站上全部没有被口令保护的页面。

  1、什么是Robots协议

  Robots协议(也称为爬虫协议、机器人协议等)的全称是“网络爬虫排除标准”(Robots Exclusion Protocol),网站经过Robots协议告诉搜索引擎哪些页面能够抓取,哪些页面不能抓取,对于seo来说,意义重大。

  robots是一个协议,而不是一个命令。robots.txt文件是一个文本文件,是放置在网站根目录下,使用任何一个常见的文本编辑器,就能够建立和编辑它。robots.txt是搜索引擎中访问网站的时候要查看的第一个文件,其主要的做用就是告诉蜘蛛程序在服务器上什么文件是能够被查看的。

  robots协议文件的写法及语法属性解释-seo

  若是将网站视为一个房间,robots.txt就是主人在房间门口悬挂的“请勿打扰”或“欢迎进入”的提示牌。这个文件告诉来访的搜索引擎哪些房间能够进入和参观,哪些房间由于存放贵重物品,或可能涉及住户及访客的隐私而不对搜索引擎开放。但robots.txt不是命令,也不是防火墙,如同守门人没法阻止窃贼等恶意闯入者。

  因此,seo建议各位站长仅当您的网站包含不但愿被搜索引擎收录的内容时,才须要使用robots.txt文件,若是您但愿搜索引擎收录网站上全部内容,请勿创建robots.txt文件。

  2、Robots协议的原则

  Robots协议是国际互联网界通行的道德规范,基于如下原则创建:

  一、搜索技术应服务于人类,同时尊重信息提供者的意愿,并维护其隐私权;

  二、网站有义务保护其使用者的我的信息和隐私不被侵犯。

  robots协议文件的写法及语法属性解释-seo

  3、Robots协议的写法

  robots.txt放到一个站点的根目录下便可,一个robots.txt只能控制相同协议,相同端口,相同站点的网页抓取策略。

  一、robots.txt的常规写法

  最简单的robots.txt只有两条规则:

  User-agent:指定对哪些爬虫生效

  Disallow:指定要屏蔽的网址

  整个文件分为x节,一节由y个User-agent行和z个Disallow行组成。一节就表示对User-agent行指定的y个爬虫屏蔽z个网址。这里x>=0,y>0,z>0。x=0时即表示空文件,空文件等同于没有robots.txt。

  下面详细介绍这两条规则:

  (1)、User-agent

  爬虫抓取时会声明本身的身份,这就是User-agent,没错,就是http协议里的User-agent,robots.txt利用User-agent来区分各个引擎的爬虫。

  举例说明:google网页搜索爬虫的User-agent为Googlebot,下面这行就指定google的爬虫。

  User-agent:Googlebot

  若是想指定全部的爬虫怎么办?不可能穷举啊,能够用下面这一行:

  User-agent: *

  可能有的同窗要问了,我怎么知道爬虫的User-agent是什么?这里提供了一个简单的列表:爬虫列表

  固然,你还能够查相关搜索引擎的资料获得官方的数据,好比说google爬虫列表,百度爬虫列表

  (2)、Disallow

  Disallow行列出的是要拦截的网页,以正斜线 (/) 开头,能够列出特定的网址或模式。

  要屏蔽整个网站,使用正斜线便可,以下所示:

  Disallow: /

  要屏蔽某一目录以及其中的全部内容,在目录名后添加正斜线,以下所示:

  Disallow: /无用目录名/

  要屏蔽某个具体的网页,就指出这个网页,以下所示:

  Disallow: /网页.html

  举例:

  User-agent: baiduspider

  Disallow: /

  User-agent: Googlebot

  Disallow: /

  seo解释:意思也就是禁止百度蜘蛛和Google蜘蛛抓取全部文章

  二、robots.txt的高级写法

  首先声明:高级玩法不是全部引擎的爬虫都支持,通常来讲,做为搜索引擎seo技术领导者的谷歌支持的最好。

  (1)、allow

  若是须要屏蔽seo1-seo100,可是不屏蔽seo50,那咱们该怎么办呢?

  方案1:

  Disallow:/seo1/

  Disallow:/seo2/

  ...

  Disallow:/seo49/

  Disallow:/seo51/

  ...

  Disallow:/seo100/

  方案2:

  Disallow:/seo

  Allow:/seo50/

  对比以上2个方案,你们应该知道allow的用法了吧,若是你网站目前也有这个需求的话, seo技术建议你可使用方案2来解决。

  但若是想屏蔽seo50下面的文件seo.htm,又该怎么办呢?

  Disallow:/seo

  Allow:/seo50/

  Disallow:/seo50/seo.html

  聪明的你必定能发现其中的规律,对吧?谁管的越细就听谁的。

  (2)、sitemap

  前面说过爬虫会经过网页内部的连接发现新的网页,可是若是没有链接指向的网页怎么办?或者用户输入条件生成的动态网页怎么办?可否让网站管理员通知搜索引擎他们网站上有哪些可供抓取的网页?这就是sitemap。

  最简单的Sitepmap形式就是XML文件,在其中列出网站中的网址以及关于每一个网址的其余数据(上次更新的时间、更改的频率以及相对于网站上其余网址的重要程度等等),利用这些信息搜索引擎能够更加智能地抓取网站内容。

  新的问题来了,爬虫怎么知道这个网站有没有提供sitemap文件,或者说网站管理员生成了sitemap(多是多个文件),爬虫怎么知道放在哪里呢?

  因为robots.txt的位置是固定的,因而你们就想到了把sitemap的位置信息放在robots.txt里,这就成为robots.txt里的新成员了,好比:

  sitemap: http://www.xminseo.com/sitemap.html

  考虑到一个网站的网页众多,sitemap人工维护不太靠谱,对此,seo建议你可使用google提供了工具能够自动生成sitemap。

  (3)、meta tag

  其实严格来讲这部份内容不属于robots.txt,不过也算很是相关,我也不知道放哪里合适,暂且放到这里吧。

  robots.txt的初衷是为了让网站管理员管理能够出如今搜索引擎里的网站内容。可是,即便使用robots.txt文件让爬虫没法抓取这些内容,搜索引擎也能够经过其余方式找到这些网页并将它添加到索引中。

  例如,其余网站仍可能连接到该网站,所以,网页网址及其余公开的信息(如指向相关网站的连接中的定位文字或开放式目录管理系统中的标题)有可能会出如今引擎的搜索结果中,若是想完全对搜索引擎隐身那咋整呢?seo给你的答案是:元标记,即meta tag。

  好比要彻底阻止一个网页的内容列在搜索引擎索引中(即便有其余网站连接到此网页),可以使用noindex元标记。只要搜索引擎查看该网页,便会看到noindex元标记并阻止该网页显示在索引中,这里注意noindex元标记提供的是一种逐页控制对网站的访问的方式。

  好比:要防止全部搜索引擎将网站中的网页编入索引,那你就能够在网页的头部代码部分添加:

  <meta name="robots" content="noindex">

  这里的name取值能够设置为某个搜索引擎的User-agent从而指定屏蔽某一个搜索引擎。

  除了noindex外,还有其余元标记,好比说nofollow,禁止爬虫今后页面中跟踪连接。这里seo再提一句:noindex和nofollow在HTML 4.01规范里有描述,可是其余tag的在不一样引擎支持到什么程度各不相同,还请读者自行查阅各个引擎的说明文档。

  (4)、Crawl-delay

  除了控制哪些能够抓哪些不能抓以外,robots.txt还能够用来控制爬虫抓取的速率。如何作到的呢?经过设置爬虫在两次抓取之间等待的秒数。

  Crawl-delay:5

  表示本次抓取后下一次抓取前须要等待5秒。

  seo提醒你们一点:google已经不支持这种方式了,不过在webmaster tools里提供了一个功能能够更直观的控制抓取速率。

  这里插一句题外话,几年前seo记得曾经有一段时间robots.txt还支持复杂的参数:Visit-time,只有在visit-time指定的时间段里,爬虫才能够访问;Request-rate: 用来限制URL的读取频率,用于控制不一样的时间段采用不一样的抓取速率。

  后来估计支持的人太少,就渐渐的废掉了,有兴趣的博友能够自行研究一下,seo了解到的是目前google和baidu都已经不支持这个规则了,其余小的引擎公司貌似历来都没有支持过。

  4、Robots协议中的语法属性解释

  Robots协议用来告知搜索引擎哪些页面能被抓取,哪些页面不能被抓取;能够屏蔽一些网站中比较大的文件,如图片,音乐,视频等,节省服务器带宽;也能够屏蔽站点的一些死连接,方便搜索引擎抓取网站内容;再或者是设置网站地图链接,方便引导蜘蛛爬取页面。

  User-agent: * 这里的*表明的全部的搜索引擎种类,*是一个通配符。

  Disallow: /admin/ 这里定义是禁止爬寻admin目录下面的目录。

  Disallow: /mahaixiang/*.htm 禁止访问/mahaixiang/目录下的全部以".htm"为后缀的URL(包含子目录)。

  Disallow: /*?* 禁止访问网站中全部包含问号 (?) 的网址。

  Disallow: /.jpg$ 禁止抓取网页全部的.jpg格式的图片。

  Disallow:/mahaixiang/abc.html 禁止爬取ab文件夹下面的adc.html文件。

  Allow: /mahaixiang/ 这里定义是容许爬寻mahaixiang目录下面的目录。

  Allow: /mahaixiang 这里定义是容许爬寻mahaixiang的整个目录。

  Allow: .htm$ 仅容许访问以".htm"为后缀的URL。

  Allow: .gif$ 容许抓取网页和gif格式图片。

  Sitemap: /sitemap.html 告诉爬虫这个页面是网站地图。

  举例:

  User-agent: *

  Disallow: /?*

  Disallow: /seo/*.htm

  User-agent: EtaoSpider

  Disallow: /

  seo解释:意思就是有禁止全部搜索引擎来抓网站中全部包含问号 (?) 的网址和seo目录下的.htm文章。同时,对etao彻底屏蔽。

  5、Robots协议中的其它语法属性

  一、Robot-version: 用来指定robot协议的版本号

  例子: Robot-version: Version 2.0

  二、Crawl-delay:雅虎YST一个特定的扩展名,能够经过它对咱们的抓取程序设定一个较低的抓取请求频率。

  您能够加入Crawl-delay:xx指示,其中,“XX”是指在crawler程序两次进入站点时,以秒为单位的最低延时。

  三、Crawl-delay:定义抓取延迟

  例子: Crawl-delay:/mahaixiang/

  四、Visit-time: 只有在visit-time指定的时间段里,robot才能够访问指定的URL,不然不可访问。

  例子: Visit-time: 0100-1300 #容许在凌晨1:00到13:00访问

  五、Request-rate: 用来限制URL的读取频率

  例子: Request-rate: 40/1m 0100 - 0759 在1:00到07:59之间,以每分钟40次的频率进行访问。

  Request-rate: 12/1m 0800 - 1300 在8:00到13:00之间,以每分钟12次的频率进行访问。

  seo点评:

  Robots协议是网站出于安全和隐私考虑,防止搜索引擎抓取敏感信息而设置的,搜索引擎的原理是经过一种爬虫spider程序,自动搜集互联网上的网页并获取相关信息。

  而鉴于网络安全与隐私的考虑,每一个网站都会设置本身的Robots协议,来明示搜索引擎,哪些内容是愿意和容许被搜索引擎收录的,哪些则不容许,搜索引擎则会按照Robots协议给予的权限进行 seo抓取。

  Robots协议表明了一种契约精神,互联网企业只有遵照这一规则,才能保证网站及用户的隐私数据不被侵犯,违背Robots协议将带来巨大安全隐忧。
相关文章
相关标签/搜索