Robots.txt

最近在做站点的SEO优化和爬虫权限控制,反复跟 robots.txt 打交道,踩了不少小坑,也把这块的知识点彻底梳理了一遍。今天就用最直白的方式,跟大家聊聊 Robots协议 到底是什么、怎么写、实战中怎么用,新手也能直接照着配。

一、先搞懂:Robots.txt 到底是个啥?

Robots协议,全称是 Robots Exclusion Protocol(网络爬虫排除标准),大家平时也叫它爬虫协议、机器人协议。

说白了,它就是一个纯文本的配置文件,我们把它放在网站根目录,用来告诉百度、谷歌这些搜索引擎的爬虫

  • 哪些页面你可以随便爬
  • 哪些目录、文件你不许碰

它是一个君子协定,正规的搜索引擎都会遵守,但恶意爬虫是可以无视的,所以别指望用它来保护敏感数据,这点一定要记牢。

二、最基础:一行代码禁止整站被抓取

很多时候我们测试站点、内部站点,不想被任何搜索引擎收录,最简单的写法就两行,直接复制就能用:

1
2
User-agent: *
Disallow: /

解释一下:

  • User-agent: *:代表所有爬虫,不管是百度、谷歌还是其他,一视同仁
  • Disallow: // 代表网站根目录,也就是禁止抓取整个网站

这也是我最常用的临时屏蔽配置,测试环境必备。

三、核心指令:写 Robots.txt 必懂这几个

其实整个协议的语法非常简单,常用指令就这几个,记熟就够写90%的配置了:

  1. User-agent:指定针对哪个爬虫
  2. Disallow:禁止抓取的路径
  3. Allow:允许抓取的路径(优先级比 Disallow 高)
  4. Sitemap:告诉爬虫网站地图的地址
  5. Crawl-delay:建议爬虫的抓取间隔(部分爬虫支持)

路径规则也很简单:

  • /:根目录,代表全站
  • /admin/:禁止 admin 目录及所有子内容
  • /test.html:只禁止这一个单独文件

四、常见爬虫 User-agent 大全(2017年实测版)

不同的搜索引擎,都有自己专属的爬虫标识,我把日常最常见的整理出来了,配置的时候直接对号入座:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# 百度爬虫
User-agent: Baiduspider

# 搜搜爬虫(腾讯)
User-agent: Sosospider

# 搜狗爬虫
User-agent: sogou spider

# 有道爬虫
User-agent: YodaoBot

# 谷歌主爬虫
User-agent: Googlebot
# 谷歌图片爬虫
User-agent: googlebot-image
# 谷歌移动端爬虫
User-agent: googlebot-mobile

# 必应爬虫
User-agent: Bingbot
# 必应旧版爬虫
User-agent: MSNBot

# Yahoo 爬虫
User-agent: Slurp
User-agent: yahoo-mmcrawler

# 其他小众/工具爬虫
User-agent: Teoma
User-agent: ia_archiver
User-agent: twiceler
User-agent: Scrubby
User-agent: Robozilla
User-agent: Gigabot
User-agent: psbot

平时配置,只需要关注百度、谷歌、必应这几个主流的就行,小众爬虫直接用通配符 * 管理。

五、实战配置示例:直接复制改路径就能用

我把工作中最常用的几种场景整理好了,直接套用就行。

1. 禁止所有爬虫,只允许百度抓取

1
2
3
4
5
6
7
# 允许百度爬虫爬全站
User-agent: Baiduspider
Disallow: ""

# 其他所有爬虫禁止访问
User-agent: *
Disallow: /

2. 允许全站抓取,只屏蔽敏感目录

1
2
3
4
5
6
7
8
9
User-agent: *
# 禁止后台管理目录
Disallow: /admin/
# 禁止接口目录
Disallow: /api/
# 禁止私密文件目录
Disallow: /private/
# 禁止所有PDF文件
Disallow: /*.pdf$

3. 针对不同爬虫做不同限制

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 百度:禁止后台和接口
User-agent: Baiduspider
Disallow: /admin/
Disallow: /api/

# 谷歌:全部允许
User-agent: Googlebot
Disallow: ""

# 其他:全部禁止
User-agent: *
Disallow: /

# 告诉爬虫网站地图地址
Sitemap: https://www.xxx.com/sitemap.xml

六、我踩过的坑:这些误区一定要避开

  1. 文件必须放根目录
    只能是 域名/robots.txt,放在子目录里没用,爬虫不会识别。
  2. 文件名必须全小写
    robots.txt,不是 Robots.txt 或者 robot.txt,写错直接失效。
  3. 别用它保护敏感数据
    它只是协议,不是权限控制,/admin/ 即使禁止抓取,直接输URL还是能访问。
  4. 规则有优先级
    具体爬虫 > 通配符 *,Allow > Disallow,别写冲突了。

七、总结

其实 robots.txt 一点都不复杂,核心就记住三点:

  1. User-agent 指定爬虫,* 代表全部;
  2. Disallow 禁止路径,/ 代表全站;
  3. 放在网站根目录,文件名全小写。

日常做站点优化、屏蔽爬虫、控制收录,这套规则完全够用了。


Robots.txt
https://cszy.top/2017-11-27 robots-txt/
作者
csorz
发布于
2017年11月27日
许可协议