站点运营

站点运营:robots.txt 自查,别把该抓的目录一起挡住

robots.txt 常在上线时顺手写好,之后几年没人再打开。测试期遗留的整站屏蔽、写得太短的前缀规则、失效的 Sitemap 地址,都可能挡住本该被抓的页面。本文按打开文件、逐条核对、验证抓取状态的顺序,整理一份可以直接照做的自查步骤。

站点运营

站点运营:robots.txt 自查,别把该抓的目录一起挡住

robots.txt 通常是站点上线时顺手写下的一个文件,之后很少有人再打开看。它躺在根目录,规则是复制来的,几年里被不同的人改过几行,最后变成一份谁也不敢删、也没人说得清的文件。等到某天发现某个栏目一直没被抓取,才会回头翻它。

先确认谁在读这个文件

主流搜索引擎的爬虫在抓取前会先请求 /robots.txt,按里面的规则决定哪些路径可以抓。它是一份约定,不是访问控制:不遵守约定的采集程序照样能访问,所以不要把私密内容寄托在它身上。

几种常见的写法问题

留下测试时期的整站屏蔽

上线前为了不让测试页被抓,常见写法是 Disallow: /,上线后忘记删。这类规则一旦生效,抓取请求会明显减少,而页面上看不出任何异常,排查时往往会先怀疑服务器和模板。

路径写得太宽

Disallow: /search 本意是挡住搜索参数生成的结果页,但如果站点里存在 /search-guide 这类正常栏目,同样会被一起挡住。规则按前缀匹配,写得越短,误伤范围越大。

Disallow 与 Allow 混在一起

同一组里同时出现 Allow 和 Disallow 时,判断逻辑并不是简单按行先后,不同爬虫的具体处理也有差异。最稳妥的做法是让规则尽量简单,能用目录划分的,就不要靠长串网址去兜底。

Sitemap 地址写错或没更新

Sitemap 一行可以帮爬虫更快找到入口,但如果域名换过、目录改过,却还写着旧地址,这一行基本不起作用,反而容易让人误以为已经提交过。

一次完整的自查可以按这个顺序走

  1. 直接在浏览器打开 https://你的域名/robots.txt,确认返回的是当前线上版本,而不是缓存或旧文件。
  2. 逐条读规则,能删的删,能合并的合并,只留下真正有必要的屏蔽项。
  3. 检查是否存在 Disallow: / 这类整站规则,以及末尾有没有漏掉必要的 Allow。
  4. 确认 Sitemap 地址使用 https、域名正确、文件本身能正常访问。
  5. 用搜索引擎官方提供的 robots.txt 测试工具或抓取调试功能,挑几个典型网址验证是否被允许。

别忽略 meta robots 和响应头

robots.txt 管的是能不能来抓,页面里的 meta robots 管的是抓到之后怎么处理。两者可能互相矛盾:robots.txt 允许抓取,页面却写了 noindex,于是抓取量看着正常,页面却一直不进索引,排查时很容易被忽略。响应头里的 X-Robots-Tag 优先级更高,多域名共用一套程序时尤其要留意,避免某个站点的策略被带到其他站点上。

改完之后做一次验证

修改不要只改一半:先确认几类代表页面(首页、栏目页、详情页、搜索结果页)的抓取状态,再观察一段时间服务器日志里爬虫请求的变化。同时记录改动时间和改动内容,出问题时能快速回退,也方便下次改版时对照。

robots.txt 的作用是引导抓取,而不是提升收录。规则越简单清晰,越不容易出现意料之外的误伤。

把这份文件当成需要定期核对的基础配置,改动频率不用高,但每次改版、换域名、新开栏目之后,都值得花几分钟看一眼。