處理不希望出現在搜尋结果里的頁面时,很多站点的第一反應是「屏蔽掉」。但屏蔽其實有两條完全不同的路:一條是在 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 之後,頁面不會马上回到索引。索引恢复依赖重新抓取和重新评估,時間從几天到几周不等。這段時間可以先通過站内連結、站点地图让它被重新發現,但不必反复改動規則。
一份简單的自查顺序
- 確認頁面目前返回的狀態碼。
- 確認 robots.txt 是否允许抓取這個路径。
- 確認頁面或响應头里有没有 noindex。
- 確認 canonical 指向哪里。
- 最後再去看索引里是否還留着舊记錄。
把這五层依次對齐,比一次性把能用的規則全加上更省事,也更容易判断是哪一步没生效。
挡住抓取和挡住收錄是两件事,規則叠加不等于效果叠加。
處理收錄問题,先把目的说清楚,再選手段,顺序反了往往要回头返工。