robots.txt 完整教程:语法解析与易错点避坑指南

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

每个网站运营者都会遇到 robots.txt,这个放在根目录的小文件,决定了搜索引擎爬虫能在你的站点里看到什么。写对了,抓取预算被高效利用,核心页面更快收录;写错了,轻则页面迟迟不出现,重则整个网站从搜索结果里消失。本文梳理这份文件的定位、语法和踩坑点,帮你少走弯路。

1. 文件定位与存放须知

robots.txt 是一个纯文本文件,必须放在网站根目录,访问地址固定是 https://你的域名/robots.txt。它的职责是约束爬虫的抓取行为,而不是决定页面是否被索引。想让某页不出现在搜索结果中,正确做法是给页面添加 noindex 标签,robots.txt 只能拦住爬虫的访问,拦不住收录逻辑。

同时要清醒认识到,这份文件对爬虫属于君子协定。正规搜索引擎会遵守,但恶意采集程序根本不看它。因此,涉及用户隐私、支付信息或商业机密的目录,必须叠加登录验证、IP 限制等防护措施,不能只靠 robots.txt 挡人。定期打开文件检查一遍,确认没有因误操作暴露敏感路径,也是运维的好习惯。

2. 核心语法结构详解

robots.txt 由若干规则组构成,每组以 User-agent 字段开头。格式统一为字段名加冒号加值,建议全部使用小写字母,避免个别爬虫解析出错。

2.1 User-agent:规则作用在谁身上

这个字段声明规则对哪个爬虫生效。比如 User-agent: Googlebot 只约束谷歌爬虫;想覆盖所有搜索引擎,就写 User-agent: *。文件里可以写多个规则组,分别给不同爬虫设置差异化的权限。当同一爬虫命中多个规则组时,主流搜索引擎遵循最长匹配原则,即路径更具体的组优先。

2.2 Allow 与 Disallow:一放一禁

Disallow 声明禁止访问的路径,Allow 则声明允许访问。注意 Disallow: 后面留空表示解除限制,即允许爬取全站。当两条规则冲突时,搜索引擎统一按更长的路径匹配来裁决。举个例子,同时写了 Disallow: /api/ 和 Allow: /api/public/,后者会被放行。建议路径写完整,用绝对路径或明确目录,减少歧义。

2.3 Sitemap 与 Crawl-delay:辅助指令

Sitemap 指令用来声明站点地图的完整 URL,帮助爬虫更快获取内容清单,放在文件末尾即可。Crawl-delay 用来设定抓取间隔,但谷歌已明确忽略这个指令,想控制抓取频率,请到 Google Search Console 后台设置。Bing 等搜索引擎仍支持该指令,可以保留。

3. 高频场景配置示例

下面是几个常见需求的写法,可以直接复制,修改路径后使用。

注意最后一个例子,两个规则组的作用域不同,能实现精确控制。配置完可以访问 https://你的域名/robots.txt 核对内容是否生效。

4. 常见误区与避坑建议

实际运营中,很多问题都源于对 robots.txt 的误用。以下几类情况需要特别留意。

4.1 误把 robots.txt 当索引控制工具

这是最普遍的错误。用 Disallow 屏蔽页面后,爬虫确实不再抓取,但如果该页面被外部链接指向,搜索引擎仍可能将其收录并展示,只是看不到内容,展示效果更差。正确的做法是:不想让页面出现在搜索结果中,就用 noindex;想节省抓取预算,才用 robots.txt 屏蔽。

4.2 语法格式不严谨

比如漏写冒号、路径缺少斜杠、大小写混用等,都会导致规则失效。检查时注意每个字段必须以冒号分隔,每个规则之间用空行隔开。另外,通配符只支持 * 和 $,不要幻想能用正则表达式。写完后用搜索引擎的 robots.txt 测试工具验证一遍,比肉眼检查更可靠。

4.3 忽略抓取预算的影响

大站点的抓取预算需要精打细算。如果 robots.txt 放行了大量无用页面,比如带参数的商品筛选页、搜索结果页,爬虫的预算就被浪费在这些页面上,真正有价值的内容反而得不到及时抓取。建议将参数多、内容重复的目录用 Disallow 屏蔽,同时通过站点地图引导爬虫优先访问核心内容。

4.4 修改后未验证就上线

无论新增规则还是调整路径,都要先在小范围测试。可以先用爬虫模拟工具查看预期效果,再部署到线上。部署后连续几天观察搜索控制台的抓取统计,确认没有异常波动再放心。毕竟一旦写错,整站掉出索引的后果要花很长时间才能挽回。

5. 常见问题

5.1 robots.txt 写了 Disallow: / 之后,网站多久会从搜索结果消失?

不会立刻消失。爬虫需要重新抓取你的 robots.txt 文件,发现新规则后才会停止抓取,然后逐步从索引中移除页面,这个过程可能持续数天到数周。如果不希望页面被索引,请改用 noindex 标签,效果更快更精准。

5.2 为什么我的 robots.txt 对某些爬虫不生效?

可能有两个原因:一是该爬虫根本不遵守 robots.txt 协议,比如一些恶意采集程序;二是你的路径写法不精确,比如漏了斜杠或大小写不一致。建议先访问 https://你的域名/robots.txt 确认文件能正常访问,再用搜索引擎官方的测试工具检查规则匹配情况。

5.3 能否用 robots.txt 保护用户隐私数据?

不能。robots.txt 只是协议约定,没有强制约束力。任何出于恶意的人都可能绕过它直接访问文件。涉及隐私的数据必须用服务端验证机制,比如登录后才能查看内容,或者对敏感接口做 IP 白名单限制,才能真正起到保护作用。

6. 总结

robots.txt 是搜索引擎优化的基础配置,掌握它的语法和边界,就能避免大部分低级错误。理解它是抓取控制工具而非索引控制工具,规则书写保持规范,配置后用工具验证、上线后观察数据,这些都是基本操作。建议按季度审视一遍自己的 robots.txt,结合网站结构调整及时更新规则,让爬虫的每一次访问都花在刀刃上。

图1 图2

nginx