網站收錄

robots.txt 屏蔽與 noindex:想移除收錄时该先用哪一個

robots.txt 管的是能不能抓,noindex 管的是抓到之後收不收。两者顺序用反,頁面常常會以無摘要的形式長期留在索引里,而且因為抓不到,排查也變得困难。本文梳理两者的作用位置、常见的誤用组合,以及移除已收錄頁面时可以按顺序做的几步。

網站收錄

robots.txt 屏蔽與 noindex:想移除收錄时该先用哪一個

做内容清理时,很多人第一反應是在 robots.txt 里加一條 Disallow,或者在頁面头部塞一個 noindex。看起来都是在说“別收這個頁面”,但這两件事發生在完全不同的环节。顺序用反,常见的结果是頁面依然留在索引里,而且因為蜘蛛抓不到,後續想查都查不了。

禁止抓取和禁止收錄是两件事

抓取是搜尋引擎把頁面内容取回去,收錄是取回之後决定要不要放進索引。robots.txt 影响第一步,noindex 影响第二步。

  • robots.txt 里的 Disallow:告诉蜘蛛這個路径別来抓。蜘蛛通常遵守,于是它拿不到頁面内容。
  • noindex:寫在頁面里,意思是“抓到了,但別放進索引”。它的前提是頁面能被抓到。

這里的關键点是:noindex 是頁面内容的一部分,蜘蛛不進来看,就永遠讀不到這條指令。

被屏蔽的 URL 仍可能出現在结果里

一個地址被 Disallow 之後,如果站内其他頁面或站外連結還在指向它,搜尋引擎仍可能把這個 URL 记下来。它可能出現是结果里,但通常没有标题、描述和摘要,只是一個孤零零的連結。這不算违規收錄,而是蜘蛛無法確認頁面内容,只能先保留地址。

屏蔽抓取不等于從索引里消失,很多时候只是把頁面變成了“看不到内容”的狀態。

noindex 不生效的几種情况

  • 頁面同时被 robots.txt 挡住,蜘蛛進不来,讀不到 noindex。
  • noindex 是通過 JS 渲染後才插進 DOM 的,首轮抓取看不到。
  • 寫在 HTTP 响應头 X-Robots-Tag 里,但格式或字段名寫错了。
  • 同一個頁面既寫了 noindex,又寫了指向自己的 canonical,信号互相矛盾。
  • meta 标簽拼寫有誤,實际等同于没寫。

移除已收錄頁面,可以按這個顺序做

  1. 先確認頁面能被抓取:robots.txt 不挡這個路径,訪問返回 200。
  2. 在頁面头部或响應头加上 noindex,保持可抓取狀態。
  3. 等搜尋引擎重新抓取這個地址,索引狀態會慢慢變成已排除或從结果中淡出。這個過程從几天到几周都有可能。
  4. 確認索引里已经没有它之後,如果确實不想再让蜘蛛把抓取机會花在這里,再考虑加 Disallow。

把顺序倒過来做,最容易卡在第一步:Disallow 一加,蜘蛛再也讀不到 noindex,頁面就可能長期以無摘要的形式挂在索引里,既占位置又难處理。

頁面已删或者需要尽快消失

  • 内容确實不再提供:返回 404 或 410 通常比 noindex 更直接。410 语义上更明确,表示已刪除。
  • 頁面要留着给用戶看,只是不想被搜到:用 noindex,同时保證它可被抓取。
  • 整站或整個目錄临时不想被抓:robots.txt 可以临时用,但要记住它只是一個抓取開關,已有的收錄狀態不會跟着一起清掉。

几類常见誤用

  • 測試站没有防護:既没 noindex 也没訪問限制,被抓走之後變成重复内容的来源。
  • 给 noindex 頁面做内鏈:内部連結會持續把蜘蛛引向這些地址,既浪費抓取机會,也让這些 URL 更容易被外部發現。
  • 只改 robots.txt 就以為頁面會消失:收錄层面的移除需要頁面級指令或者狀態碼来配合。
  • 對分頁、篩選頁一刀切 Disallow:如果商品或内容的唯一入口就在這些頁面里,屏蔽抓取會顺带断掉發現路径,反而影响真正想被收錄的頁面。

自查顺序小结

遇到“不该被收錄的頁面還挂在索引里”,可以按這個顺序排一遍:頁面現在返回什么狀態碼,robots.txt 是否挡住了它,蜘蛛能不能讀到 noindex,有没有内鏈或外鏈在持續指向它,最後再考虑用工具提交移除請求。把這几步的顺序理清,通常比反复改 robots.txt 更省事。