网站收录

robots.txt 误封了目录:恢复抓取之后收录状态的核对顺序

robots.txt 只影响抓取,不直接决定索引。误封目录之后,即便放开了抓取,收录状态也不会立刻恢复。本文按确认封禁范围、确认文件可读、放开后的观察顺序、常见坑梳理一遍,帮你分清到底是抓不到,还是抓到了没被留下。

网站收录

robots.txt 误封了目录:恢复抓取之后收录状态的核对顺序

robots.txt 是抓取层的规则,不是索引层的开关。把一段目录写进 Disallow,只是告诉搜索引擎“不要来抓”,它并不会主动把已经收录的地址从索引里删掉。反过来,恢复抓取之后收录也不会立刻回到从前——这中间的落差,常被误判成“改了没用”。

先分清 robots.txt 管什么、不管什么

  • 管抓取:被禁止的 URL 不会被正常抓取,页面内容也就无法被读取。
  • 不管索引:已经进入索引的地址,不会因为一条 Disallow 就自动消失;它可能长期以“只有 URL、没有摘要”的形式留在结果里。
  • 会让 noindex 失效:如果页面同时写了 noindex,但抓取被禁止,爬虫读不到这条指令,删除动作就无从触发。这是最容易被忽略的一层。
所以顺序很重要:先放开抓取,再让 noindex 有机会生效,最后才谈索引状态的变化。

第一步:确认封禁范围是否真的覆盖了目标目录

很多“误封”其实是规则写得比想象中更宽,或者更窄。

  1. 路径按前缀匹配。Disallow: /news 会连 /news-old、/newsletter 一起挡住。
  2. 通配符 * 和结尾符 $ 会改变匹配范围,尤其在带参数的 URL 上更明显。
  3. 路径区分大小写,/Search 和 /search 可能是两条不同的规则。
  4. 同一个爬虫名称出现多段时,通常只有最具体的那一段生效,容易被后写的宽松规则“以为放开了”。
  5. 检查有没有 Disallow: / 这类整站规则被部署到了生产环境。

第二步:确认 robots.txt 本身能被正常读取

  • 必须放在域名根目录,子域名与不同端口各自独立。
  • 返回 200 且内容类型为纯文本;返回 4xx 一般按“无限制”处理,返回 5xx 可能被当作“全部禁止”,两种情况都会让排查跑偏。
  • 如果站点用了 CDN 或多套环境,确认对外返回的是同一份文件,别让测试环境的规则盖住线上。
  • 改动之后,用各搜索引擎提供的抓取测试工具验证一次,比反复改文件更有效。

第三步:放开抓取之后的观察顺序

这一步不要跳步,按顺序看信号。

  1. 看服务器日志:确认目标目录重新出现抓取记录。没有抓取,后面的都不用谈。
  2. 看页面是否被重新读取:只有内容被读到,noindex、canonical、状态码这些信号才有机会生效。
  3. 看是否需要主动表达意图:确实要下线的页面,用 404/410 或 noindex 说明,而不是继续靠 Disallow 拖着。
  4. 看索引状态的变化:这一步通常需要时间,且不保证结果,观察趋势即可,不必逐日盯单个 URL。

几个常见坑

  • 把 Disallow 当成删除工具,页面长期处于“抓不到、也删不掉”的中间状态。
  • 只改了一处规则,忘了多域名、多语言目录下还有各自的 robots.txt。
  • 恢复了抓取,但页面本身内容完整度或质量没变,收录表现自然也不会有明显变化。
  • 用 robots.txt 屏蔽大量低价值目录后不做清理,抓取放开了,预算又回到老问题上。

把 robots.txt 当成“抓取开关”而不是“收录开关”,排查时就会先问一句:现在是抓不到,还是抓到了但没被留下?分清这两件事,后面的核对顺序才不会乱。