站点运营

站点运营:robots.txt 自查,别让一行规则挡住整站抓取

robots.txt 只有几行字,写错却常常是整站级别的影响。这篇整理高频出错点:整站 Disallow、路径写不全、Sitemap 地址写错、通配符滥用,以及改完之后怎么验证,并建议把这份文件纳入日常发布流程。

站点运营

站点运营:robots.txt 自查,别让一行规则挡住整站抓取

robots.txt 是站点和爬虫之间最简单的一份约定,放在根目录,纯文本,几行字。它不复杂,但一旦写错,影响面往往是整站级:轻则某些目录长期不被访问,重则整站抓取被拦在门外。这篇不聊花式写法,只把容易出问题的几处挑出来,做成一份可以照着走的自查清单。

先明确它管什么、不管什么

robots.txt 只做一件事:告诉遵守协议的爬虫,哪些路径不建议抓。它不是访问控制,也不是删除工具。被 Disallow 的页面如果已经被收录,不会因为这一行字就消失;页面也不该靠它保护隐私或敏感数据,那需要登录、权限或服务器层面的限制。

另外要记住:不同爬虫对协议的支持程度不完全一样,规则写得越绕,解读分歧越大。

几个高频写错的地方

  • Disallow: / 覆盖了整站,却没人发现。测试或临时封站时加上的规则,上线后忘了删,是常见事故。
  • DisallowAllow 的顺序搞混。多数主流爬虫按最长匹配优先,相同长度时 Allow 优先,但规则一多就难判断,不如一开始就写清楚。
  • 路径没写全。写 Disallow: /admin 会连带屏蔽 /admin-panel、/administrator,而本意往往只是想挡一个目录。改成 /admin/ 会准确得多。
  • Sitemap 地址写错或漏写。这是文件里少数能主动提供信息的地方,写对能省不少事。
  • 通配符和结尾符号凭感觉用。星号和美元符号的支持情况参差,能用明确路径就别用花式匹配。
  • 文件返回 200 但内容是空的,或者直接返回 404。前者让爬虫以为什么都不许,后者让爬虫以为没有限制,两种结果完全不同,需要分清楚。

改一次,验证一次

  1. 浏览器直接打开 域名/robots.txt,确认能正常返回、没有跳转、没有奇怪的字符编码。
  2. 确认文件里没有整站级的 Disallow,除非你确实需要临时全站封闭。
  3. 检查 Sitemap 行是否指向可访问的地址,且地址与当前域名一致,做过迁移的站点尤其要看。
  4. 用搜索平台提供的抓取测试工具模拟一次,看重点目录是否仍在可抓范围。
  5. 改动后观察一段时间抓取日志,看被屏蔽目录的访问量是否按预期下降,未被屏蔽的主干目录是否正常。

别把它当成一次性配置

站点结构变了、栏目下架了、临时活动页要挡一下,这些都会让 robots.txt 需要更新。比较稳妥的做法是把它纳入发布流程:涉及目录增删、域名切换、临时封站时,明确谁负责改、谁负责复核。

一个可用的判断标准:如果你没法用一句话说清每条规则挡的是哪类页面,那这条规则大概写得太模糊了。

最后提醒一句,robots.txt 只对守规矩的爬虫有效,真正盯上你数据的人不看这份文件。所以该用权限控制的地方就用权限控制,别指望几行文本兜底。