robots.txt 配置全解析:语法规则与高频避坑指南

📍 WDQWDWQD987AAAAA:216.73.216.15
📱 Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
🔗 /233152d5d825.html
📄

robots.txt 是置于网站根目录的纯文本文件,用来告知搜索引擎爬虫哪些路径可以抓取、哪些应当绕行。文件虽小,写错却代价不小——要么新内容长期不被收录,要么后台或临时目录被爬虫一览无余。理解其语法内核与常见陷阱,是站内优化绕不开的一步。

1. 上手语法:一个规则块的基本构成

文件由若干规则块组成,每一块以 User-agent 行指定适用对象,再用 Disallow 或 Allow 指定路径约束。一个最朴素的例子:

User-agent: *
Disallow: /private/

解读为:全部爬虫禁止访问 /private/ 目录。这里有两个高频误区值得警惕。其一,Disallow 后面应当写相对路径而非完整网址,写成 Disallow: https://example.com/private/ 不会生效;其二,路径匹配区分大小写,/Private/ 与 /private/ 完全不是同一地址,务必按实际大小写书写。

2. 典型配置场景与操练要点

不同成长阶段的站点,robots.txt 的写法也有差异。以下三个场景几乎覆盖了绝大多数日常需求。

2.1 全站屏蔽与全面放行:一个斜杠的分野

开发中或改版期间想拦住所有爬虫,通常这样写:

User-agent: *
Disallow: /

这里的斜杠指代根目录,意思是整站禁止抓取。但若把这一行改成 Disallow:(冒号后留空),语义瞬间反转,等于宣布所有路径均可访问。两者仅差一个斜杠,影响却截然相反。许多站点上线后收录迟滞,循着日志排查才发现是这里写反了。调完文件后,建议用抓取测试对照两行规则的实际输出。

2.2 大范围封禁下放行个别子目录

假设你希望爬虫不进入 /docs/,但 /docs/sample/ 下的演示页需要被索引。单靠一条 Disallow 做不到,必须显式补充 Allow:

User-agent: *
Disallow: /docs/
Allow: /docs/sample/

搜索引擎的路径匹配遵循长路径优先原则,即更具体的规则拥有更高优先级。如果有意或无意遗漏了最后一行,sample 子目录会随父目录一并被拦截。判断是否需要追加 Allow 的方法很直接:只要有特例路径需穿透禁止范围,就单独给它配一条放行指令。

2.3 按爬虫类型分流配置

百度蜘蛛、Googlebot、Bingbot 在基础指令理解上趋同,但部分冷门爬虫对 Allow 指令并不买账。稳妥的做法是先以 User-agent: * 设置一套通用兜底规则,再为特定爬虫追加专属规则块。值得提醒的是,不要对同一爬虫反复声明多个规则块,后声明的会覆盖先前的,容易造成预期之外的覆盖效果。

3. 常见易错点与排查方向

即便语法正确,配置仍可能暗藏隐患。以下是重复率最高的几个问题。

4. 写好后如何自检验证

文件配置完毕并非万事大吉,规范的自检流程能提前消化大量隐患。

  1. 打开 robots.txt 的公开访问地址(如 yourdomain.com/robots.txt),确认返回的是文本内容而非 404 或 HTML 页面。
  2. 使用搜索引擎提供的抓取测试工具(如 Google Search Console 的 URL 检查),输入你希望放行与拦截的若干具体网址,逐条核对返回状态。
  3. 查看抓取日志,确认目标爬虫确实读取了文件,并观察其实际访问的路径是否符合预期。
  4. 改动文件后留出 24 至 48 小时的生效窗口,再复查索引覆盖情况。

5. 常见问题

5.1 Disallow 与 Allow 同时命中时,搜索引擎听谁的?

遵循最长匹配优先原则。无论规则出现的先后顺序,只要路径命中的规则更具体(路径更长),就以它为最终决定。示例中 Disallow: /docs/ 与 Allow: /docs/sample/ 同时生效时,sample 子路径会被放行,因为其规则串更长。

5.2 robots.txt 能阻止搜索引擎收录页面吗?

能阻止抓取,但无法保证阻止收录。若页面已被其他网站引用,搜索引擎仍可能仅根据链接信息将其收录在索引中,只是不抓取正文。想要彻底移除已收录内容,还需结合 noindex 标签或站点删除请求。

5.3 文件写错了,最快多久能恢复?

爬虫访问频率通常在数小时到数天之间,多数搜索引擎会在 24 小时内重新读取该文件。紧急情况下可先修改文件暴露全部路径,再登录站长平台提交抓取请求,能显著缩短等待时间。

6. 总结

robots.txt 的配置核心在于三个判断:路径是否写成了相对地址、大小写是否与实际一致、特例路径是否配了显式 Allow。上线前后务必进行抓取测试并查阅日志确认实际效果。从最小化的规则块起步,逐步叠加特例,比一次性堆砌大量指令更容易维护,也不易埋下认知盲区。

图1 图2

nginx