屏蔽和刪除是两件事
robots.txt 里的 Disallow 只是請求爬虫不要抓取某個路径,它並不是一條刪除指令。已经進入索引的 URL,不會因為你加了一行規則就自動消失。更麻烦的是,一旦抓取被挡住,爬虫就讀不到頁面里的 noindex 和 canonical,而這两個恰恰是處理收錄問题最主要的信号。信号讀不到,索引里的舊地址往往留得更久。
所以遇到「明明屏蔽了却還被收錄」的情况,先別急着改規則,先判断這些地址属于哪一類,再决定是保留、收口還是彻底清掉。
先確認索引里留着的到底是什么
- 看标题和摘要:屏蔽狀態下,搜尋结果里顯示的标题常常来自外鏈锚文本或站内其他頁面的引用,並不代表頁面真實内容,不要據此判断頁面质量。
- 点進去能不能打開:能正常打開,說明只是没被抓取;打不開或跳走,要先處理狀態碼和跳轉鏈路。
- 有没有快照:如果長期没有快照,多半是抓取一直被規則挡住,而不是頁面本身有問题。
- 是不是參數或測試地址:這類地址通常有大量變体,逐個處理成本很高,要按路径規則整体看。
按頁面價值分情况處理
需要保留的頁面
如果這些地址本身有内容、也可能带来訪問,正确做法是放開抓取,让它回到正常的收錄流程。屏蔽只會让它以一個残缺的狀態挂在索引里,既拿不到准确的标题摘要,也没法通過頁面内的規則參與規范化。放開之後,观察它是否能被抓取、狀態碼是否正常、内容是否和用戶看到的一致。
确定不要的頁面
如果這類地址确實不打算保留,最稳妥的顺序是:先放開 robots.txt,让頁面可以被抓取;再让頁面正常返回 200,並在頁面里寫上 noindex;等爬虫重新抓取並讀取到這條指令後,观察它從索引中逐步消失;確認消失之後,再考虑用 410 或 301 做最终處理。
這個顺序看起来绕,但它把控制權留在了頁面本身。反過来做——先屏蔽、再想办法加 noindex——等于把唯一能传達指令的通道關掉了,爬虫永遠讀不到你的意图。
屏蔽是「別来看」,noindex 是「別收錄」。想让地址從索引里消失,需要的是後者,而後者必须先能被抓到才能生效。
容易踩的几個坑
- 只屏蔽目錄、不處理已有地址:目錄下如果已经有大量頁面被收錄,規則加上去之後它們依然在,只是不再更新。
- 同时寫 Disallow 和 noindex:两者並存时,抓取被挡住,noindex 讀不到,结果往往是白寫。
- 屏蔽整站測試环境後忘了移除:如果這個环境和正式站同域,會影响正式站的抓取通道,要在改版或上线检查清單里單獨列一條。
- 用 status 查询频繁催:抓取受阻的地址,反复催也讀不到内容,先把規則理顺更實际。
處理完之後的观察节奏
規則調整後,不要指望当天就有變化。抓取、重新评估、更新索引是分步發生的,中間可能隔几周。這期間重点看三件事:日誌里這些路径是否重新出現抓取记錄、頁面返回的狀態碼是否稳定、索引里的地址數量是否在缓慢下降。如果抓取恢复了但索引長時間没有動静,再回头检查頁面本身是否返回 200、内容是否真實存在、有没有被其他規則再次挡住。
把這些確認清楚,再决定要不要換別的處理方式,比反复改 robots.txt 更有效。