Robots.txt 文件编写详解:语法规则、常见配置与避坑要点

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

Robots.txt 是网站与搜索引擎爬虫之间约定访问权限的文本文件,它决定了爬虫可以抓取哪些页面、应当忽略哪些路径。合理配置 robots.txt 既能保护后台和隐私目录,也能引导爬虫将资源集中在关键内容上。这份指南会从基础语法入手,逐步拆解各类场景下的配置写法,并提醒你容易忽略的细节。

1. 理解基础语法与文件结构

robots.txt 必须放置在网站根目录下,比如 https://example.com/robots.txt。文件由若干指令块构成,每个指令块以 User-agent 开头,后跟相应的 Allow 或 Disallow 规则。

核心指令含义:

一个最宽松的示例配置:

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

这段配置的含义是允许所有搜索引擎抓取全站,同时告知地图文件的存放位置。

2. 常见使用场景的配置方法

不同网站对抓取范围有不同需求,以下是几个高频场景的具体写法。

2.1 阻止爬虫抓取整个站点

当网站处于开发测试阶段,或需要临时下线时,可以设置 Disallow: / 来屏蔽所有爬虫访问任何路径。配置内容如下:

User-agent: * Disallow: /

2.2 只封锁指定目录,其余保持开放

如果只想屏蔽后台、用户中心等敏感目录,同时保留其他内容的抓取,可以这样写:

User-agent: * Disallow: /admin/ Disallow: /private/

需要注意的是,Allow 指令最好写在 Disallow 之后;如果目标爬虫不识别 Allow,更稳妥的做法是只在 Disallow 中列出需要屏蔽的路径,剩余路径默认放行。

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

不同搜索引擎可能需求各异。例如允许 Googlebot 抓取全部内容,而禁止其他爬虫访问图片和静态资源目录,配置如下:

User-agent: Googlebot Allow: / User-agent: * Disallow: /assets/ Disallow: /images/

在书写顺序上要特别注意:先写针对单一爬虫的专属规则,最后再写通用规则,因为搜索引擎会优先匹配与自身名称相符的 User-agent 段落。

3. 容易踩坑的地方与规避建议

即便规则简洁,也常有细节问题引发抓取异常,以下注意事项值得牢记。

4. 写好 robots.txt 之后别忘了验证

配置完成后并非万事大吉,还需要通过工具进行校验。可以在搜索引擎站长后台的 robots 测试工具中检查规则是否生效,并观察抓取日志中异常拒绝的情况。注意在调整规则后留存备份,方便随时回滚操作。

5. 常见问题

5.1 Q1:Disallow 留空和 Disallow: / 有什么区别?

Disallow 后不加路径表示允许所有爬虫访问任何页面,等同开放全站;而 Disallow: / 则代表禁止抓取整个站点。两者恰好相反,应用场景也完全不同。

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

不能。robots.txt 只负责控制爬虫的抓取,无法阻止收录;如果页面已被其他网站引用或收录,仍有可能出现在搜索结果中。若想彻底阻止收录,应结合 noindex 标签使用。

5.3 Q3:Allow 指令在所有搜索引擎中通用吗?

并不通用。Allow 指令仅被部分搜索引擎(如 Google)确认为规范支持,其他爬虫可能忽略它。依赖 Allow 时务必查阅对应爬虫的官方文档,并做好兼容性考虑。

6. 总结

配置 robots.txt 看似简单,实则细节不少。建议从基础语法入手,先梳理清楚网站需要对外开放的目录清单,再针对不同爬虫制定策略。写好规则后,务必在站长工具中反复验证,结合抓取报告持续优化。遇到敏感页面时,切记不要只依赖该文件,而是配合其他权限机制共同实现访问控制。

图1 图2

nginx