網站收錄

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 当成“抓取開關”而不是“收錄開關”,排查时就會先問一句:現在是抓不到,還是抓到了但没被留下?分清這两件事,後面的核對顺序才不會乱。