網站收錄

robots.txt 挡住抓取後,noindex 信号也一起失效了

清理收錄时常有人同时用 robots.txt 屏蔽和頁面 noindex,结果两把鎖互相打架:抓取被挡住,登出索引的信号送不出去,URL 反而長期留在搜尋结果里。本文区分抓取與索引两道工序,按不同目的给出工具選擇顺序和一份排查清單。

網站收錄

robots.txt 挡住抓取後,noindex 信号也一起失效了

清理收錄时,不少站点习惯做两件事:一邊在 robots.txt 里屏蔽某個目錄,一邊在頁面上加 noindex。看着像双保險,實际常常互相打架——抓取一旦被挡住,noindex 這個信号根本送不出去。

抓取與索引是两道不同的工序

搜尋引擎處理一個 URL,大致分两步:先把 HTML 取回来,這一步叫抓取;再判断它能不能作為搜尋结果出現,這一步叫索引。robots.txt 管的是第一步,noindex 管的是第二步。两把鎖開在不同的门上,混着用就容易出問题。

robots.txt 拒绝抓取,不等于刪除索引

Disallow 的意思是“別来抓”,不是“別收錄”。一個 URL 如果之前已经被抓取並進了索引,寫了 Disallow 之後,那條记錄仍可能保留,因為搜尋引擎拿不到新頁面来判断内容是不是變了。表現出来就是:搜尋结果里還能看到這條 URL,点進去信息却是舊的,标题和摘要有时還會拼错。

noindex 必须被讀到才生效

noindex 寫在頁面 HTML 的 meta 标簽或响應头里,前提是搜尋引擎能把頁面抓下来。如果這個 URL 同时被 robots.txt 挡住,爬虫取不到 HTML,看不到 noindex,登出索引的指令就落空了。這就是常见的“双保險變双失效”。

几種容易踩的组合

  • 目錄屏蔽 + 頁面 noindex:noindex 大概率讀不到,URL 可能長期留在索引里。
  • 只加 noindex、不挡抓取:頁面繼續被抓,確認信号後逐步登出索引,這是更稳的做法。
  • 只加 robots.txt、不加 noindex:頁面不再被抓,但已有索引不會立刻消失。
  • 屏蔽之後別處仍有内鏈:爬虫依然知道這個 URL 存在,只是不去抓,發現和抓取本来就是两回事。

按目的選工具

目标一:让某個 URL 從索引里登出

  1. 確認頁面可以被抓取,robots.txt 不要挡這條路径。
  2. 在頁面加 noindex,可用 meta 标簽或 X-Robots-Tag 响應头。
  3. 等搜尋引擎重新抓取並處理,索引记錄逐步减少,這個過程有滞後,不是即时的。
  4. 確認登出後,如果确實不想再被抓,再考虑加屏蔽規則。

目标二:不想让爬虫消耗抓取资源

比如後台路径、站内搜尋结果頁、大量的篩選參數组合。這類场景用 robots.txt 是合理的,但要接受一個前提:已经進索引的地址不會因為寫了 Disallow 就立刻消失,需要單獨處理或等待自然更新。

目标三:既不想被收錄,也不想被訪問到

後台、測試环境、内部资料属于這一類。更稳妥的做法是權限控制,或者干脆返回 403、404,而不是只靠 robots.txt 和 noindex。搜尋指令是约定,不是訪問控制。

排查清單

  1. 用 robots.txt 測試工具確認目标路径是否被挡。
  2. 用抓取測試工具看頁面實际返回的 HTML 里有没有 noindex。
  3. 检查 noindex 是否寫在响應头里,與頁面 meta 是否冲突。
  4. 检查是否有 X-Robots-Tag 和其他規則叠加。
  5. 確認 canonical 没有指向一個允许收錄的地址,canonical 與 noindex 同时出現會互相干扰。
记一句:robots.txt 决定“能不能抓”,noindex 决定“要不要留”。想让它走,就別先把门鎖上。

改完之後怎么看

收錄變化通常有滞後,配置改完不要一天一查就下结论。观察周期以周為單位更合理,同时看抓取频次、抓取狀態碼和索引數量的趋势,而不是盯着某一天的數字。信号是否送達,比數字当天有没有動更值得關注。