Robots.txt 配置全攻略:核心语法与避坑要点详解

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

Robots.txt 是放在网站根目录下的一个纯文本文件,通过约定的指令告诉搜索引擎爬虫哪些内容可以抓取,哪些路径需要跳过。它并非强制性的访问控制,而是依赖爬虫自觉遵守的"君子协议",配置得当能明显提升抓取效率、减少服务器负载。

1. Robots.txt 的价值与边界

爬虫访问站点时,会先在根目录寻找 robots.txt,以此确定抓取范围。如果没有这个文件,爬虫默认可以抓取所有公开内容。实际使用中,它常被用来屏蔽后台入口、排除低质量页面(如站内搜索页、自动生成的标签集合页),或者降低抓取频率以保护服务器。

需要强调的一点是,正规搜索引擎会遵循协议,但恶意爬虫完全无视它,所以别把 robots.txt 当成安全工具,它只是一个效率调节器。

2. 语法规范与核心指令详解

Robots.txt 由多条记录组成,每条记录必须先写 User-agent 指明适用的爬虫,再写具体的指令行。核心指令掌握这五个就够用了:

2.1 标准配置实例

下面是一个结构清晰、容易读懂的配置示例:

User-agent: *
Disallow: /cache/
Disallow: /internal/
Allow: /internal/important.html
Sitemap: https://www.example.com/sitemap.xml

这段配置的意思是:所有爬虫都不能抓取 cache 目录和 internal 目录,但 internal 目录下的 important.html 页面被单独放行,同时提供了站点地图地址。

3. 高频场景与避坑指南

配置看起来简单,但实际操作中经常因为几个细节没注意而出问题。下面几个场景需要特别小心:

容易踩的坑还包括:文件名拼写错误(必须是 robots.txt,不是 robot.txt)、文件放在子目录而非根目录、路径没有以斜杠开头、使用了不存在的指令(如 Noindex)。每次修改后,最好用搜索引擎官方的 robots 测试工具验证一下。

4. 书写规范与调试思路

写完 robots.txt 后,建议通过以下步骤确认它生效:

  1. 在浏览器直接访问 https://你的域名/robots.txt,确认内容输出的是最新版本。
  2. 对照语法表逐条检查指令拼写和路径格式是否规范。
  3. 使用 Google Search Console 或 Bing Webmaster 的 robots 检测工具,测试具体 URL 的可抓取性。
  4. 观察服务器日志中爬虫的访问频率,看是否达到预期的限制效果。

另外,文件编码建议使用 UTF-8 无 BOM 格式,避免中文注释出现乱码导致解析异常。保持文件精简,不必要的指令及时清理,能减少爬虫理解出错的概率。

5. 常见问题

5.1 Robots.txt 能阻止搜索引擎收录我的网页吗?

不能完全阻止。robots.txt 只是阻止爬虫抓取内容,如果外部网站有链接指向你的页面,搜索引擎仍可能将其索引(仅显示 URL 而不显示内容)。要彻底阻止收录,应该使用 noindex 标签或认证机制。

5.2 Disallow 和 Allow 同时出现时,哪个优先?

在大多数主流搜索引擎的规则中,Allow 的优先级高于 Disallow,但这取决于匹配的精确度。最稳妥的做法是确保 Allow 指向的路径是 Disallow 路径的子集,且前缀匹配准确,避免规则冲突产生意外结果。

5.3 每次修改 robots.txt 后需要等待多久才能生效?

没有固定时间。爬虫通常会在下次计划抓取时重新获取该文件,短则几小时,长则数天。修改后建议主动在站长工具中提交,并要求重新抓取,可以明显加速生效过程。

6. 总结

合理配置 robots.txt 是降低服务器压力、引导爬虫高效抓取的基础操作。建议先明确自己要屏蔽的路径,再按照"先声明爬虫、再写规则、最后验证"的流程执行。每次调整后都测试一遍,避免因为小疏漏导致全站不被收录。记住,它能帮你优化抓取策略,但永远替代不了安全防护和合理的收录控制手段。

图1 图2

nginx