RFC 9309:robots 排除协议标准
IETF 2022-09 发布的标准,把 1994 年诞生的 robots.txt 实践正式标准化:定义 user-agent、allow、disallow 指令与解析、缓存、错误处理规则;crawl-delay 不在标准内。
robots.txt 用了近三十年才有了正式标准。RFC 9309 是“抓取层排除”语义的本体,也是判断各家实现差异的坐标系原点。
政策要点
RFC 9309(Robots Exclusion Protocol,2022 年 9 月发布,IETF 标准轨道)由 robots.txt 的 1994 年发明者 Martijn Koster 与 Google 的 Gary Illyes、Henner Zeller、Lizzi Sassman 共同撰写,将行业实践正式标准化:
- 指令集:标准只定义三组指令——user-agent(分组起始行)、allow、disallow。crawl-delay 不在标准内:未识别的行可被爬虫宽松解释,但解析时不得干扰标准指令(例如 sitemap 行不得终止分组)。
- 文件规范:robots.txt 须为 UTF-8 编码、置于域名顶层路径 /robots.txt;解析器至少须支持 500 KiB 的文件处理上限。
- 爬取与缓存行为:爬虫在首次抓取前应获取 robots.txt;缓存使用不应超过 24 小时(文件不可达时除外)。
- 匹配规则:特殊字符 $(行尾锚定)与 *(通配)必须支持,字面使用需百分号编码;最长(最具体)匹配优先,同长度时 allow 胜过 disallow;分组按 user-agent 匹配,不匹配任何分组时遵循 * 组。
- 错误处理:4xx(文件不可用)= 不受限抓取;5xx 或网络错误期间 = 完全禁止抓取,持续约 30 天后可按“文件不可达”处理;至少跟随五次重定向;逐行解析并仅使用可解析规则。
- 性质声明:标准明确 robots 协议不是访问授权机制——排除规则是声明而非技术强制,无鉴权与执行力。
覆盖与不覆盖
覆盖:HTTP 爬虫对 robots.txt 的获取、解析与匹配行为。不覆盖:AI 训练偏好与引用偏好的表达——“允许抓取”不等于“允许训练”或“允许被引用”,使用层偏好由 aipref 等新提案处理(见aipref 术语卡);也不覆盖各引擎的具体实现差异(如 Google 不支持 crawl-delay、其文档对 5xx 另有三阶段处理口径,与 RFC 的保守处理不同——配置差异见robots.txt 与 AI 术语卡)。RFC 规定“爬虫该怎么遵守”,但对违反者没有处罚机制。
对 GEO 行业的含义
robots.txt 的语义稳定性有标准背书,“抓取层排除”与“使用层偏好”必须分开表达、分开解读。标准由 Google 工程师参与撰写,Google 文档与 RFC 的实现差异以各自文本为准;标准自身的更新由 IETF aipref 工作组草案承接——aipref-attach 草案声明更新 RFC 9309,截至 2026-10 仍为草案、未成 RFC。
限制与待核实
本卡要点按 RFC 9309 原文归纳;5xx 长期不可达后的具体处理在跨引擎场景下应以各引擎官方文档为准(RFC 与 Google 文档表述不同)。
引用来源
- IETF RFC 9309:Robots Exclusion Protocol for automated Internet crawlers(2022-09)
最后更新 2026-10-01引用本页请附:https://www.showhoo.net/library/policy/policy-rfc9309/