Robots.txt 完整配置指南:规则语法与实用示例详解

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

Robots.txt 是网站与搜索引擎爬虫之间的第一道沟通桥梁,它决定了哪些页面资源可以被抓取收录,哪些应当被拒之门外。一份配置得当的文件,既能保护后台与隐私数据,也能减轻服务器压力,让爬虫将精力集中在真正有价值的内容上。接下来,我们以实际配置为目标,系统梳理其语法规则与常见场景的写法。

1. 文件位置与基础规则解读

Robots.txt 的存放位置有严格要求,必须位于网站域名的根目录下,例如 https://yourdomain.com/robots.txt。其内容遵循简单的键值对格式,每个指令占一行,主要通过几个核心字段来控制爬虫行为。

一个最宽松的配置示例,表示放行一切抓取,并声明地图位置:

User-agent: * Disallow: Sitemap: https://yourdomain.com/sitemap.xml

值得注意的是,Disallow 与 Allow 匹配的是 URL 的路径前缀,而非精准的绝对地址。例如 Disallow: /api 会同时屏蔽 /api 与 /apidata 等以该字符串开头的链接,因此编写时需留意路径细节。

2. 高频场景下的配置写法

在真实项目中,我们往往需要根据站点架构去定制规则。以下列举几种最常遇到的场景及推荐写法。

2.1 临时屏蔽全站抓取

当网站处于开发测试期,或需要临时关闭搜索引擎收录时,可以使用以下规则彻底阻绝爬虫:

User-agent: * Disallow: /

这样设置后,爬虫将无法抓取根路径下的任何资源。但需注意,此操作仅影响新抓取,已收录页面的展示可能需要一段时间才会被移除。

2.2 仅禁封指定目录,保留其余内容

大多时候,我们只希望隐藏某些特定区域,比如管理后台或用户中心。此时只需列明需禁止的目录,其余路径保持默认放行状态:

User-agent: * Disallow: /admin/ Disallow: /user-center/ Disallow: /checkout/

若你担心某些爬虫对 Allow 指令支持不佳,最稳妥的方式便是如上方所示,仅使用 Disallow 列出黑名单,这比混合使用 Allow 更容易掌控结果。

2.3 为不同爬虫分配差异化权限

大型站点通常需要区分对待不同搜索引擎。例如允许 Googlebot 抓取全部内容,同时限制百度爬虫访问低质量的分页列表,而面向其他爬虫则屏蔽资源目录:

User-agent: Googlebot Allow: / User-agent: Baiduspider Disallow: /tag/ Disallow: /page/2/ User-agent: * Disallow: /assets/ Disallow: /static/img/

这里有一个重要原则:具体的爬虫规则必须写在通配规则之前。爬虫在读取文件时会自上而下匹配,优先命中以自己名称命名的区块,随后才轮到星号规则。

3. 常见误区与避坑要点

编写过程中,一些微小的疏漏可能造成页面意外泄漏,或导致规则整体失效。以下是几个容易被忽视的关键点。

4. 验证规则与更新维护

规则写好后,务必将文件上传至根目录,并通过搜索引擎官方的抓取诊断工具进行测试。这些工具可以模拟爬虫视角,帮助检查某条具体的 URL 是否会被拦截。

在维护层面,建议遵循以下步骤进行日常管理:

  1. 在改动文件前,先备份原有配置内容,方便快速回滚。
  2. 每次调整后,利用站长工具逐一验证核心页面与新增功能的可访问性。
  3. 定期检查服务器访问日志,观察是否有异常爬虫在请求被 Disallow 的路径,识别潜在的数据风险。
  4. 当网站改版或目录结构调整时,同步复查并更新 robots.txt 以保持代码与实际情况一致。

5. 常见问题

5.1 robots.txt 文件能直接控制页面不被搜索引擎收录吗?

它主要负责控制爬虫的抓取行为。如果页面因为 Disallow 规则未被抓取,那么自然不会出现在索引中。但如果页面已经被收录过,之后才添加屏蔽规则,那么已经收录的缓存结果仍然可能短暂显示在搜索结果里,需要等待搜索引擎自然清理或通过工具提交删除请求。

5.2 多条 User-agent 规则冲突时,到底听从谁的?

爬虫会严格按照文件内部的顺序进行匹配。对于某个具体的爬虫,它只会执行第一个包含其名称的 User-agent 区块内的指令,不会再合并后续的同名区块。因此,务必先将针对特定爬虫的详细规则写在前面,最后再声明通配的星号规则,否则特定规则会被忽略。

5.3 文件中使用了 Allow 指令,但爬虫似乎完全不理会,是什么原因?

Allow 指令的优先级在实际应用中是存在争议的。虽然主流搜索引擎(如 Google)支持 Allow 与 Disallow 组合使用,并以最长匹配路径为准,但部分小众爬虫仅支持标准的 Disallow。若你发现规则不生效,最稳妥的办法是重新梳理目录结构,仅使用 Disallow 声明黑名单路径,而把需要放行的内容留在默认白名单中。

6. 总结

Robots.txt 并不复杂,关键在于理解其匹配原理与执行顺序。建议你在实际部署时,先梳理出网站中必须隐藏的目录清单,再设定不同爬虫的权限分层,最后上传文件进行逐一验证。平日里养成定期复查的习惯,确保规则没有误伤重要页面,也未遗漏新上线的敏感路径。从一份清晰简洁的配置开始,为网站的搜索引擎优化工作奠定坚实基础。

图1 图2

nginx