SEO 百科
robots.txt 规范
本页目录
robots.txt 规范
robots.txt 规范 讲 Google 如何读这份文件。它的自动抓取工具支持 REP,也就是 robots 协议,标准文本是 RFC 9309[1]。抓取某个网站之前,Google 先下载并解析这个网站的 robots.txt[1]。规则从中读出来,决定哪些部分可以抓。
这份规范不适用于全部客户端。由用户控制的 Google 抓取工具不走 REP,用来提高用户安全性的抓取工具也不走,恶意软件分析属于后者[1]。
位置与生效范围
文件必须放在网站的顶级目录,并使用受支持的协议。就 Google 搜索而言,受支持的协议是 HTTP、HTTPS 和 FTP[1]。HTTP 与 HTTPS 下抓取工具发无条件 GET 请求取文件,FTP 下用标准 RETR 命令并匿名登录[1]。
文件里的规则只适用于它所在的主机、协议和端口号[1]。同一家公司下面 http://example.com 与 https://example.com、www 与 m. 这几份文件互不相干[1]。
文件的网址也区分大小写,和其他网址一样[1]。规则里的路径同样区分大小写,/fish 匹配不到 /Fish.asp[1]。
取不到文件时的处理
状态码决定处理方式。2xx 表示让抓取工具处理服务器给的内容[1]。4xx(429 除外)被解读为这个网站没有有效的 robots.txt 文件,等于 Google 假定没有任何抓取限制[1]。
重定向会被跟到底。Google 按 RFC 1945 的规定至少跟踪五次重定向,之后停止,并按 404 处理这份文件[1]。文件里的逻辑重定向不跟,框架、JavaScript 和元刷新这三种都不算[1]。
5xx 有一套时间表。头 12 小时里 Google 停止抓取该网站,但继续尝试取文件[1]。之后 30 天内使用上一个正常版本,同时仍尝试取新版[1]。503 会触发非常频繁的重试[1]。没有可用的缓存版本时,Google 假定没有任何抓取限制[1]。30 天仍未修好,能全面抓取的网站按没有 robots.txt 处理,不能全面抓取的则停止抓取,只定期请求这份文件[1]。DNS 问题和网络超时按服务器错误同样处理[1]。
缓存 24 小时
robots.txt 的内容会被 Google 缓存,通常最长 24 小时[1]。取不到新版时,这个时间还会延长。已缓存的响应可由各种不同的抓取工具共享[1]。缓存生命周期按 max-age 这个 Cache-Control 标头延长或缩短[1]。
这条对改规则的人来说最实用:上传新文件不等于立刻生效,急用要在 Search Console 里请求重新抓取[2]。
规则的挑选顺序
匹配看路径长度,抓取工具使用最具体的那条规则[1]。规则冲突时,Google 用限制性最弱的一条[1]。
它给的例子能看出差别。allow: /p 与 disallow: / 同时存在,访问 /page 时用的是 allow: /p,因为它更具体[1]。allow: /folder 与 disallow: /folder 完全相同地冲突时,用 allow,因为限制更弱[1]。allow: /page 与 disallow: /*.htm 相遇,访问 /page.htm 时用的是 disallow,那条路径更长、匹配更多[1]。
比较时用的是网址的百分号编码形式[1]。规则里写原始 UTF-8 也会被规范化成同一形式[1]。下面两条规则在解析器那里是同一件事:
Disallow: /foo/bar/ツ
Disallow: /foo/bar/%E3%83%84
附录
参见
参考资料
官方(境外)
- 《Google 如何解读 robots.txt 规范》,Google 搜索中心。
- 《更新 robots.txt 文件》,Google 搜索中心。