網站收錄

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. 最後再去看索引里是否還留着舊记錄。

把這五层依次對齐,比一次性把能用的規則全加上更省事,也更容易判断是哪一步没生效。

挡住抓取和挡住收錄是两件事,規則叠加不等于效果叠加。

處理收錄問题,先把目的说清楚,再選手段,顺序反了往往要回头返工。