網站收錄

robots.txt 挡住了抓取,頁面却還在搜尋结果里

把頁面寫進 robots.txt 的 Disallow,並不等于让它從索引里消失。本文梳理抓取屏蔽與索引登出的区別,解释已收錄頁面屏蔽後仍會出現的原因,並說明刪除、迁移、僅站内使用三類场景分別该用狀態碼、noindex 還是抓取屏蔽,附上操作顺序與核對清單。

網站收錄

robots.txt 挡住了抓取,頁面却還在搜尋结果里

在站点运营中,robots.txt 常被当成萬能開關:把某個目錄寫進 Disallow,就以為這些頁面會從搜尋结果里消失。過一段時間去搜,發現頁面還挂在结果里,只是摘要變得很奇怪。這不是搜尋引擎失灵,而是把两個不同的動作混在了一起。

robots.txt 管的是抓取,不是索引

robots.txt 的作用是告诉蜘蛛“這一段路径可以来抓,那一段不要来抓”。它是一份抓取层面的约定,蜘蛛讀到 Disallow 後,會停止對该路径下 URL 的抓取請求。

但索引是另一回事。一個 URL 只要被外部連結、站点地图、歷史抓取记錄等渠道暴露出去,搜尋引擎就可能先把它登记在案——哪怕没有抓取到正文,也能以“僅 URL”的形式出現在结果里。這種结果通常没有正常摘要,标题可能取自外鏈锚文本或其他来源,看起来就像一條残缺记錄。

记住一句:robots.txt 拦的是“進来讀”,拦不住“被知道”。

已经被收錄的頁面,屏蔽之後為什么還在

  • 歷史索引尚未更新:蜘蛛還没来得及重新訪問该 URL,舊记錄仍然保留。屏蔽抓取反而让它更难被更新,因為蜘蛛讀不到新狀態。
  • URL 被外鏈暴露:別的站点、论坛、评论区带着完整 URL,搜尋引擎從這些地方就能知道它的存在。
  • 内容被轉载:同样的内容出現在其他可抓取的站点上,原頁面即使屏蔽,相似内容仍可能占據结果。
  • Disallow 寫法和路径不匹配:目錄层級、通配符用法有誤,實际並没有挡住目标 URL。

想让頁面真正從索引里登出,顺序要反過来

很多站点在這里踩坑:先加 Disallow,再加 noindex。结果蜘蛛根本進不来,讀不到 noindex,索引记錄就一直在。正确顺序大致是這样:

  1. 先放開抓取:把该 URL 從 robots.txt 的 Disallow 中移除,确保蜘蛛能正常請求。
  2. 再给出明确信号:希望尽快下线且不再恢复,用 410;頁面搬到別處,用 301 指向新地址;頁面還要繼續服務用戶但不想被搜到,加 noindex。
  3. 等蜘蛛重訪:通過内鏈、站点地图或搜尋後台的抓取工具促成一次訪問,让它看到新狀態。
  4. 必要时用移除工具:搜尋後台一般提供临时移除功能,可加速隐藏,但它只是過渡手段,最终仍要依赖上面的狀態碼或指令。
  5. 回头核對:過一段時間再查该 URL 的索引狀態,確認记錄已消失或已指向新地址。

三種常见场景,處理方式並不一样

頁面彻底不要了

用 410 或 404,別用 robots 屏蔽。返回狀態碼能被抓取的蜘蛛讀到,處理速度也比“屏蔽後等”更可控。若 URL 有外鏈價值,可考虑 301 到相關性較高的替代頁面。

頁面保留,只是不想被搜到

用 noindex,同时不要在 robots.txt 里屏蔽它。這一步看起来矛盾,實际是必须的:蜘蛛進得来,才能讀到 noindex。常见于會員中心、内部搜尋頁、活動临时頁。

只是不想让蜘蛛浪費抓取

比如後台、购物车流程、大量參數组合頁。這類頁面可以用 robots.txt 屏蔽抓取,代價是它們仍可能以“僅 URL”的形式出現。如果连這種出現也不接受,那就该用 noindex,而不是單纯屏蔽。

上线前的几個核對点

  • Disallow 的路径是否與實际 URL 完全匹配,有没有漏掉大小寫、斜杠差异。
  • 需要下线的頁面,是否同时被 robots 屏蔽和 noindex,形成互相抵消。
  • 站点地图里是否還留着已决定下线的 URL。
  • 頁面上的 noindex 是通過 meta 标簽寫入,還是僅靠 HTTP 头,二者是否一致。

把“不抓取”和“不索引”分開看待,很多看起来诡异的搜尋结果就能解释清楚。屏蔽抓取是最容易加、也最容易加错的一层;判断某個 URL 该怎么處理,先問清楚目标——是刪除、迁移,還是僅在站内使用,再决定用狀態碼、noindex 還是 robots.txt。