Robots.txt 配置全攻略:语法要点与实用案例详解

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

搜索引擎的爬虫访问你的站点时,第一眼看的往往就是根目录下的 robots.txt 文件。这份纯文本文件相当于整个网站的“门禁系统”,它能告诉 Googlebot、Baiduspider 等爬虫哪些目录可以正常抓取,哪些地带必须止步。用好它,就能在保护数据隐私、节省服务器开销的同时,让搜索引擎的注意力更聚焦于优质页面。

1. 文件位置与核心语法解读

robots.txt 没有过多的自由度,它的存放位置是硬性规定:必须放在网站的根目录。比如你的域名是 www.example.com,那么访问地址就是标准的 https://www.example.com/robots.txt。文件的核心由若干规则块组成,每一块都以 User-agent 开头,用来划定该规则块的适用对象。

一个最简单但完整的文件示例,作用是向所有爬虫敞开大门,并提交地图:

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

写这个文件时格式要挑剔:每一条指令换一行、冒号后面留半角空格、末尾不能有多余的空白字符。任何一个细节出错,都可能导致整段规则被忽略。

2. 不同场景下的配置思路

每家网站的诉求都不同,有的怕被收录,有的只想划出几块禁区。掌握下面几类常见模式,基本上就能应付绝大多数需求了。

2.1 发期间的全站封锁

站点正在重构,或者只是临时放在测试服务器上,这时候最怕被搜索引擎捉到。一个“狠招”就能解决:

User-agent: * Disallow: /

这个配置直接把所有爬虫屏蔽在外,比挨个目录去设置要省心得多,也避免临时环境里的半成品页面被快照记录下来。

2.2 隔离敏感目录的精准策略

一般的业务站点不需要全站封闭,往往只是想把后台管理或会员中心藏起来。比如要阻挡爬虫进入 /admin/ 和 /user-center/,文件可以这么写:

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

这里有个细节值得留意:Allow: / 这一行必须排在所有 Disallow 的后边,它的作用相当于“除了上面封掉的,剩下的全放行”。假如你不太确定目标爬虫是否支持 Allow 指令,干脆只保留 Disallow 行,因为凡是没被明确禁止的路径,按协议默认就是开放的。

2.3 对不同爬虫实行差异化管理

流量大的站点往往想要更细致的控制。例如,你可以允许 Bingbot 抓取所有内容,但偏偏不让某个特定的爬虫接近图片目录,避免服务器资源被白白消耗。这种分组写法能让资源的分配更贴合自己的需要。

另外,站点地图地址一定要用绝对 URL 写全,并且确保这个文件本身是可访问的,否则这一行就形同虚设了。

3. 容易踩坑的格式与匹配细节

robots.txt 的规则看起来直白,实际执行起来却有不少容易出错的地方。尤其是路径匹配这一块,理解不透彻就容易搞出“误杀”或“漏杀”。

写完配置后,建议顺手找一下搜索引擎官方的 robots.txt 测试工具,输入文件内容检查一下有没有语法警告,防止规则在无形中失效。

4. 文件维护与上线后的检查要点

robots.txt 并不是写完就一劳永逸的。网站的结构会调整、目录会改版,这个文件也必须跟着保持同步,否则就可能把新上线的优质栏目挡在搜索引擎门外,或者把旧路径漏给爬虫。

  1. 每季度至少复查一遍文件,把所有 Disallow 的路径对照实际目录,看看有没有已经废弃的内容还占着位置。
  2. 留意是否有新增的动态参数链接(比如带问号的排序链接),这些链接往往没有抓取价值,可以酌情用一条规则拦掉。
  3. 检查 sitemap 地址是否仍然有效,特别是换了域名或改了路径之后,很容易忘记同步更新这里。
  4. 如果更换了 CMS 系统,确认新系统是否有自己的 robots 输出机制,避免新旧文件冲突导致规则混乱。

最后建议把这份文件纳入网站的版本管理,每一次改动都留个记录,出问题时可以快速回溯。

5. 常见问题

5.1 为什么我的 robots.txt 设置了 Disallow 却依然被收录?

最可能的原因有三个:一是规则格式有问题,比如冒号后缺了空格或结尾多了字符;二是页面早已被收录,robots.txt 只负责阻止“新抓取”,对已经索引的内容没有主动清除的作用,需要另行通过 Search Console 提交删除请求;三是目标爬虫根本不遵守 robots 协议,这时就得考虑使用更底层的密码保护措施了。

5.2 Allow 和 Disallow 同时写的时候到底听谁的?

实际执行时,爬虫会比较匹配到的规则路径长度,长度更长的那条拥有更高优先级。例如 Disallow: /shop 和 Allow: /shop/checkout,当爬虫访问 /shop/checkout 时,因为 Allow 的路径更长会更具体,所以最终判定为允许。掌握这个原则,就能利用路径长短实现对同一目录下不同子路径的精确放行。

5.3 robots.txt 能提升网站的搜索排名吗?

并不能直接提升排名。它的本职工作只是控制访问权,减少无谓的抓取负担,让爬虫投入更多精力去处理重要页面,这属于间接优化。真正决定排名的是内容质量和外部链接等因素,千万不要指望修改这个文件就能让关键词排名突飞猛进。

6. 总结

制作一份合格的 robots.txt 并不复杂,关键在于理解每条指令的实际含义并细心匹配路径。先把文件放在根目录,按照“先封后放”的顺序写清楚规则,再借助搜索引擎官方工具验证一遍,就能避开绝大部分错误。上线之后定期复查,跟着网站的实际结构走,这份“门禁文件”就能长期稳定地替你守好每一寸内容领地。

图1 图2

nginx