站点运营

站点运营:robots.txt 规则自查,别让蜘蛛被自己的禁令挡在门外

robots.txt 一旦写错,页面不会报错、也不会消失,只会慢慢从搜索结果里淡出。它通常只在建站时配置一次,改版、换域名、切换环境时经常被一起复制过来。这篇文章梳理三类常见误伤和一份可执行的自查清单,帮你把这个小文件的检查纳入例行流程。

站点运营

站点运营:robots.txt 规则自查,别让蜘蛛被自己的禁令挡在门外

robots.txt 是放在站点根目录下的一个纯文本文件,作用很简单:告诉爬虫哪些路径可以抓、哪些先不要抓。它不控制收录,也不能阻止页面被索引——真正的屏障是登录、密码或 noindex 标记。它的麻烦之处在于,写错之后页面不会报错、不会 404,只是可能在几周后慢慢从结果里淡出,等你发现时已经不好回溯原因。

为什么这个小文件容易出问题

多数站点在搭建初期配置一次 robots.txt,之后很少有人再回头翻。改版、换域名、迁移目录、开测试环境时,旧配置往往被顺手复制过去。规则一条条叠上去,几年后打开一看,既有已经不存在的目录,也有互相冲突的写法,没人说得清哪条还在起作用。

更现实的问题是:它太不起眼了。上线检查清单里通常会写标题、描述、canonical,却很少留一行给 robots.txt。

三类常见的误伤

Disallow 写得过宽

最常见的写法是 Disallow: /,本意是屏蔽某个目录,结果把整站都挡住了。另一种是用通配符一口气排除某类文件,比如把 js、css 一并挡住,爬虫拿不到渲染所需的资源,对页面的理解就会打折扣,移动端适配问题也更容易被忽略。

测试环境规则带上线

测试站为了不被抓取,通常直接写一条禁止全站。正式上线时配置文件跟着一起搬过去,站点从此对蜘蛛关门。这类事故重复率很高,值得在上线清单里单独列一项,逐条对比线上与测试环境的差异。

Sitemap 声明写错或不更新

Sitemap 那一行必须是完整的绝对地址,并且指向真实可访问的 XML 文件。域名换过、目录调整过却没有同步,等于把爬虫引到一个打不开的地址上,既浪费抓取预算,也让人误以为站点没有提交入口。

一份可以照着走的自查清单

  1. 直接访问 你的域名/robots.txt,确认返回 200,类型是纯文本,而不是一个套着 HTML 的错误页。
  2. 逐行读一遍 User-agent 与 Disallow 的组合,问自己:这条会不会误伤首页、栏目页、列表页,以及页面依赖的样式和脚本。
  3. 确认没有残留的整站禁止规则,尤其是从测试环境带过来的那种。
  4. 检查 Sitemap 行是否为绝对地址、能否在浏览器里正常打开。
  5. 清理指向已下线目录、旧域名、旧参数的规则,避免文件越读越乱。
  6. 确认后台、备份文件、日志目录确实被挡在外面,而不是靠路径没人知道。
  7. 把线上文件和版本库里的副本对一遍,确认改动有记录、能回滚。

改完之后怎么验证

可以用搜索引擎官方提供的抓取测试工具,或者手工访问几个关键地址,确认能正常取到内容。改完不要指望马上生效,爬虫会缓存这个文件一段时间,抓取频率本身也有波动。看效果时看趋势,不要盯着单日数据下结论。

需要提醒的是:robots.txt 是抓取层面的约定,不是安全措施。真正敏感的内容,应该用权限、登录或服务端校验来保护,而不是指望一条禁止规则。

把它纳入例行检查

建议在几个固定节点上检查:站点改版、域名迁移、环境切换、目录结构调整。平时也可以每个季度打开读一遍,删掉失效规则。文件越短越清晰,越容易看懂,也越不容易在几年后变成没人敢动的一团乱麻。

另外,不要频繁修改。每次改动都会让爬虫重新判断你的规则意图,短期内的抓取表现可能更不稳定。想清楚要挡什么、为什么挡,一次改到位,比反复微调更省事。