网站收录

robots.txt 和 noindex 别混着用:一个挡抓取,一个挡收录

robots.txt 和 noindex 常被当成同一件事来用,其实一个管抓取、一个管收录。本文梳理两者的作用顺序、混用时容易出现的失效情况,以及临时页、参数页、下架页分别该怎么选,并给出一份从状态码到索引记录的检查顺序。

网站收录

robots.txt 和 noindex 别混着用:一个挡抓取,一个挡收录

处理不希望出现在搜索结果里的页面时,很多站点的第一反应是「屏蔽掉」。但屏蔽其实有两条完全不同的路:一条是在 robots.txt 里写规则,一条是在页面里放 noindex。两者不通用,混着用经常出现两种结果:以为挡住了,索引里却还有记录;想放出来,却迟迟不收录。

robots.txt 阻止的是抓取动作

robots.txt 里的 Disallow 表达的只有一件事:这个路径别来抓。它不表达「这个页面别收录」。如果页面此前已经被抓取过,或者有外链指向它,索引里可能仍然保留旧记录,只是蜘蛛不再去更新里面的内容。

更麻烦的是,一旦整个目录被 Disallow,蜘蛛就读不到目录内页面的 noindex 标签。在这个目录上再补 noindex,等于写了个没人看的备注。

noindex 要生效,前提是页面被抓到

noindex 写在 meta robots 或 HTTP 响应头里,作用对象是这一条索引记录。它必须先被蜘蛛抓取、解析,才会起作用。

所以顺序很重要:先允许抓取,让蜘蛛读到 noindex,等索引里的记录清掉,再考虑要不要连抓取也一起挡。反过来做,等于先关了门,再把通知贴在门里面。

几种常见的混用场景

  • 新做的活动页、临时页想彻底不进索引,直接在 robots.txt 里 Disallow。蜘蛛没机会读到 noindex,如果 URL 已经通过外链或提交被发现,索引里可能出现只有地址、没有摘要的空记录。
  • 页面已经加了 noindex,robots.txt 同时又挡住。之后想恢复收录,得先放开抓取,再撤 noindex,两步都做完才可能被重新处理。
  • 想批量下架页面,robots.txt 和 noindex 一起上。旧记录清理依赖重新抓取,路径被封反而拖慢这个过程。
  • noindex 和 canonical 指向别的页面同时使用。这两个信号含义不同,叠在一起容易互相干扰,先想清楚是要它消失,还是要它归并到另一个地址。

怎么选更合适

只是不想让某个页面出现在搜索结果里,同时页面本身对用户仍有价值,保留可抓取并加 noindex 通常更直接。

不希望浪费抓取资源、或者内容对搜索引擎确实没有意义的路径(后台入口、站内搜索结果、无限参数组合),用 robots.txt 挡抓取更合适,前提是也不指望这些地址进索引。

页面已经真正下架,用 404 或 410 比堆规则更清楚,索引清理也更明确。

撤掉限制之后不会立刻恢复

把 noindex 去掉、或放开 robots.txt 之后,页面不会马上回到索引。索引恢复依赖重新抓取和重新评估,时间从几天到几周不等。这段时间可以先通过站内链接、站点地图让它被重新发现,但不必反复改动规则。

一份简单的自查顺序

  1. 确认页面当前返回的状态码。
  2. 确认 robots.txt 是否允许抓取这个路径。
  3. 确认页面或响应头里有没有 noindex。
  4. 确认 canonical 指向哪里。
  5. 最后再去看索引里是否还留着旧记录。

把这五层依次对齐,比一次性把能用的规则全加上更省事,也更容易判断是哪一步没生效。

挡住抓取和挡住收录是两件事,规则叠加不等于效果叠加。

处理收录问题,先把目的说清楚,再选手段,顺序反了往往要回头返工。