前言

搜索引擎都有自己的“搜索机器人”(ROBOTS),并通过这些ROBOTS在网络上沿着网页上的链接(一般是http和src链接)不断抓取资料建立自己的数据库。

网站所有者使用/robots.txt文件向网络机器人提供有关其网站的说明; 这被称为机器人排除协议

robots.txt 是网站和搜索引擎的协议的纯文本文件。当一个搜索引擎蜘蛛来访问站点时,它首先爬行来检查该站点根目录下是否存在robots.txt,如果存在,根据文件内容来确定访问范围,如果没有,蜘蛛就沿着链接抓取。robots.txt 放在项目的根目录下。

工作原理
机器人想要访问网站,比如http://www.baidu.com。
在此之前,它首先检查http://www.baidu.com/robots.txt,robots.txt文件信息。
存在:搜索机器人就会按照该文件中的内容来确定访问的范围
不存在:搜索机器人就沿着链接抓取。

适用场景
对于网站管理者和内容提供者来说,有时候会有一些站点内容,不希望被ROBOTS抓取而公开,或者指定搜索引擎只收录指定的内容。

robots协议语法及规范

“robots.txt” 文件包含一条或更多的记录,这些记录通过空行分开(以CR,CR/NL,orNL作为结束符),在该文件中可以使用#进行注解,具体使用方法和UNIX中 的惯例一样。

先来看一个简单的示例:

# 允许所有的搜索机器人访问站点下所有文件
User-agent: *
Disallow:

User-agent:表示搜索机器人名称,* 代表所有机器人。如果想要指定某一机器人,如谷歌,你可以这样做:User-agent: Googlebot。该项的值用于描述搜索引擎robot的名字,在"robots.txt"文件中,如果有多条User-agent记录说明有多个robot会受到该协议的限 制,对该文件来说,至少要有一条User-agent记录。如果该项的值设为*,则该协议对任何机器人均有效,在"robots.txt"文件 中,"User-agent:*"这样的记录只能有一条。

Disallow:表示不允许搜索机器人访问的文件目录,空代表允许访问所有,/代表不允许访问。该项的值用于描述不希望被访问到的一个URL,这个URL可以是一条完整的路径,也可以是部分的,任何以Disallow开头的URL均不会被robot访问到。例如"Disallow:/help"对/help.html和/help/index.html都不允许搜索引擎访问,而"Disallow:/help/"则允许robot访问/help.html,而不能访问/help/index.html。

常用关键字段

  1. User-Agent: 以下规则适用的机器人(例如“Googlebot”等)
  2. Disallow: 您希望阻止机器人访问的页面(根据需要,禁止多行)
  3. Allow: 不需要阻止机器人访问的页面
  4. Noindex: 希望搜索引擎阻止和不要索引的页面(如果先前已建立索引,则将其解除索引)

细节注意事项

  1. 机器人可以忽略你的/robots.txt。特别是在网络上扫描安全漏洞的恶意软件机器人以及垃圾邮件发送者使用的电子邮件地址收集器将不予理睬。
  2. /robots.txt文件是一个公开可用的文件。任何人都可以看到您不希望机器人使用的服务器部分。
  3. robots.txt必须放置在一个站点的根目录下(后面说),而且文件名必须全部小写。
  4. 如果"robots.txt"是一个空文件,则对于所有的搜索引擎robot,该网站都是开放的。
  5. 第一个英文要大写,冒号是英文状态下,冒号后面有一个空格
  6. 如果“/”后面多了一个空格,则屏蔽整个网站
  7. 行前不能有空格,如 [空格][空格][空格] User-agent: *
  8. 禁止把命令放在一行,像这样:User-agent: * Disallow:/
  9. 生效时间为几天~几个月

该文件放在那里

简单说,只需要放置在web服务器顶级目录中。

当机器人查找URL的“/robots.txt”文件时,它会从URL中剥离路径组件(来自第一个单斜杠的所有内容),并将“/robots.txt”放在其位置。

例如,对于“ http://www.baidu.com/shop/index.html” ,它将删除 /shop/index.html “,并将其替换为” /robots.txt “,最终将以“http://www.baidu.com/robots.txt”。

因此,需要将其放在Web服务器上的正确位置,以便生成该URL。通常,这是您放置网站主要“ index.html ”欢迎页面的位置。究竟是什么,以及如何将文件放在那里,取决于Web服务器软件。

注意:使用全文小写作为文件名:“ robots.txt ”,而不是“ Robots.TXT。

一些 “先进” 的技术

有些搜索引擎已经开始合作来推进robots.txt文件的功能,增加了一些先进的技术,但是使用时需要谨慎,防止带来反效果。

抓取延迟
某些网站可能会遇到大量流量,并希望将搜索引擎蜘蛛减慢,以允许更多的服务器资源来满足常规流量的需求。抓取延迟是Yahoo,Live Search和Ask所认可的特殊指令,指示抓取工具在抓取页面之间等待的秒数。

# 抓取减慢5秒
User-agent: *
Crawl-delay: 5

模式匹配
模式匹配的价值相当可观,先看一下最基本的模式匹配,使用*通配符。

# 阻止Google机器人访问所有以script开头的子目录
User-agent: Googlebot
Disallow: /script*/

不仅如此,还可以使用美元符号($)匹配字符串的末尾。

# 阻止Google机器人访问所有以.asp结尾的URL
User-agent: Googlebot
Disallow: /*.asp$

与在Perl和其他地方的正则表达式中发现的更先进的模式匹配不同,问号没有特殊的权力。所以,阻止对包含问号(?)的所有URL的访问,只需使用问号(不需要“转义”或者使用反斜杠):

User-agent: *
Disallow: /*?*

还可以阻止机器人抓取特定文件类型的所有文件(例如.gif):

User-agent: *
Disallow: /*.gif$

这是一个比较复杂的例子。假设您的站点仅使用查询字符串部分的URL(“?”),仅用于会话ID,并且您要排除包含动态参数的所有URL,以确保机器人不会抓取重复的页面。但是您可能希望包含以“?”结尾的任何URL。以下是如何实现的:

User-agent: *
Disallow: /*? # 阻止包含 a 的URL
Allow: /*?$ # 允许所有以 a 结尾的URL

允许指令
就像听起来一样,它与Disallow指令相反,它提供了专门调用可能被抓取的目录或页面的能力。这在大部分或整个场地被禁止之后可能是有益的。

要允许Googlebot只进入“google”目录:

User-agent: Googlebot
Disallow: /
Allow: /google/

Noindex指令
该指令提供了从搜索结果中消除无代号无标题列表的优点,但仅限于Google。它的语法恰好反映了Disallow。用Matt Cutts的话说:

Google允许在robots.txt中使用NOINDEX指令,它将完全从Google删除所有匹配的站点URL。(这种行为可能会根据这个政策讨论而改变,当然这也是为什么我们还没有谈论过这个问题。)

网站地图
XML网站地图文件可以告诉搜索引擎您网站上的所有页面,并且可选地提供有关这些页面的信息,例如哪些是最重要的以及更改频率。它充当一个自动发现机制,让蜘蛛找到XML站点地图文件。您可以通过在robots.txt文件中添加以下行来告诉Google和其他搜索引擎您的Sitemap:

Sitemap: sitemap_location

sitemap_location是Sitemap的完整网址。此指令与 User-agent 行无关,因此放在任何地方并不重要,不过一般是放在最后。所有主要的搜索引擎都支持Auto-Discovery Sitemap协议,包括Google,Yahoo,Live Search和Ask。

虽然 Auto-Discovery 提供了一种通知搜索引擎关于sitemap.xml文件的方法,但也值得通过其每个网站管理员控制台(Google网站管理员中心,雅虎网站浏览器,实时搜索网站管理员中心)直接验证和提交站点地图到搜索引擎 。

写在后面

如果想要查看更多常用 robots.txt 写法示例请点击这篇文章

SEO优化 - robots协议相关推荐

  1. robots协议是什么?对网站SEO有什么好处?

    在网站优化中,robots协议一直是优化人员重视的细节,想要网站能够有更高的抓取和排名,此协议也起到很大的作用,那么robots协议是什么呢?它对网站的SEO有什么作用和好处呢?下面一起来了解一下. ...

  2. 新建网站提升曝光率设置集合(边使用边更新)(包括:SEO优化,Robots设置,CDN加速,防盗链)

    目前处于边学习边记录的状态,将自己建站中遇到的问题记录下来,以供大家参考,最终效果可以访问我的主页进行查看:alvincr.com Table of Contents 1.1 SEO优化目的(搜索引擎 ...

  3. 织梦根目录感染abc.php,织梦SEO优化:织梦dedecms根目录下robots.txt文件设置详解! - 张俊SEO...

    对于dedecms这个建站程序,我想大多数站长都曾经用过,他功能之强大,几乎能秒杀一切内容管理系统,而且所有页面都能生成静态的html文件,对于SEO优化也是相当有优势的,说道SEO优势,就不得不提到 ...

  4. META的SEO优化中方法技巧

    Meta的SEO优化中方法技巧,Meta标签是用来描述网页属性的一种语言,标准的Meta标签可以便于搜索引擎排序,提高搜索引擎网站权重排名.要想网站做的更符合搜索引擎标准就必须了解meta标签,下面由 ...

  5. 怎么给网站加js_网站站内SEO优化实操细节详解,权重上升嗖嗖的

    做SEO优化的都知道,网站SEO排名的好与坏,影响的因素非常多.而站内优化是重要的一个因素,如果按满分100分来计算,菜鸟菌觉得站内优化至少占20分左右.因此,站内的优化是很重要的,但也不能说做好站内 ...

  6. 常用SEO优化之META标签

    之前对meta标签的理解只有<meta charset="UTF-8">和移动端适口<meta name="viewport" content ...

  7. 移动SEO优化指南(附百度内部移动化培训课程)

    移动互联网的使用人数在不断的增加,网站通过移动搜索来的流量也越来越多,但不可否认的是,现阶段很多站长直接将PC端网站copy成简单的移动版本的wap网站,基本没有做过SEO优化,所以需要我们重视移动S ...

  8. 重庆SEO优化:网站通过SEO优化会有哪些好处以及【SEO优化】 深度了解蜘蛛spider抓取原理-专业SEO技术教程

    网站通过SEO优化会有哪些好处       SEO优化自产生以来,受到了众多网络推广人员的的欢迎.其实通过SEO进行优化是有很大的好处的.虽然不是很全面但是还是可以提供一定的帮助.接下来就为大家网络就 ...

  9. 入门【必学】20个SEO优化术语

    相信许多SEOer都知道要想入门SEO最开始就要知道SEO优化的术语,但也有许多SEOer不知道具体又那些,今天重庆SEO鹏鹏就为大家一一介绍SEO优化中的一些术语让新手SEOer快速对SEO术语有进 ...

最新文章

  1. debian 9/ ubuntu 添加swap分区
  2. dx200手环使用方法_硅胶手环的缺点有哪些?
  3. CSS3系列一(概述、选择器、使用选择器插入内容)
  4. 当前元素_90行代码,15个元素实现无限滚动
  5. NDN与TCP/IP
  6. RequestBody注解
  7. 【Mysql】数据库主从搭建-基于docker
  8. jmeter简单使用
  9. 2021,软件测试的出路在哪里?
  10. GIT入门笔记(2)- 典型的工作模式
  11. pythondocx更新目录_python根目录
  12. 【NLP】EMNLP 2019 参会小结及最佳论文解读
  13. 文件比较,忽略目录引起编译出错
  14. Kettle工具简单使用(spoon)
  15. Python的数据类型讲座
  16. 王见:手机创业很简单,去县城获取粉丝更简单!
  17. mt6762/mt6765平台i2c驱动能力修改与波形优化
  18. google专利的脚步
  19. C++判断字符串是否所有字符全都不同
  20. 制作Linux版PE系统

热门文章

  1. 雷军VS黄章:现实主义和梦幻主义的商业对决
  2. Python抓取基金公开信息,从此选基金不再盲目
  3. 可以用于毕设参考,请勿过度借鉴
  4. String类菜鸟级教程(字符串常量池及不可变,StringBuffer 和 StringBuilder)
  5. 搜狗浏览器默认皮肤无法修改问题
  6. HDLBITS笔记34:Lemmings1、Lemmings2、Lemmings3、Lemmings4
  7. 为subclipse配置http代理,解决“RA layer request failed, Unable to connect to a repository at URL ... 错误
  8. Docker daemon启动问题
  9. C# 打印照片和文档
  10. 计算机组成原理页表长度,清华计算机组成原理习题课课件习题课1-7.ppt