網站收錄

robots.txt 屏蔽後頁面還在索引里:noindex 與抓取的先後顺序

robots.txt 只控制抓取,並不负责移除已经存在的索引條目。想让頁面登出索引,通常需要先允许抓取、让頁面带上 noindex,等索引更新之後再考虑限制抓取。本文梳理 noindex、robots.txt、404/410 各自的分工,並给出可照做的自查顺序。

網站收錄

robots.txt 屏蔽後頁面還在索引里:noindex 與抓取的先後顺序

屏蔽抓取不等于從索引里移除

處理不想被搜尋展示的頁面时,很多人的第一反應是在 robots.txt 里加一條 Disallow。過一段時間再去搜,頁面标题和摘要依然在结果里,只是描述變成了“由于该網站的 robots.txt 文件,我們無法提供该頁面的具体描述”。這容易让人誤以為規則没生效,于是反复修改。

實际上,robots.txt 管的是“能不能抓”,索引里的條目管的是“已经抓過的内容”。两者不是一回事。已经進入索引的 URL,不會因為你禁止抓取而自動消失,反而因為爬虫再也讀不到頁面,無法確認它是否已经變化或失效。

noindex 必须被抓到才會生效

noindex 是頁面級指令,寫在 HTML 的 meta 标簽或 HTTP 响應头里。它不像 robots.txt 那样在抓取前就被讀取,而是爬虫先把頁面抓下来、再解析,才可能知道“這個頁面不要收錄”。

如果 robots.txt 禁止抓取某個 URL,爬虫就不會去取這個頁面,也就永遠讀不到它里面的 noindex。两個指令叠加,通常得到的是最糟的结果:頁面留在索引里,而你既看不到它的最新内容,也無法用 noindex 让它登出。

所以想让已收錄頁面登出索引,比較稳妥的顺序是先允许抓取、让頁面带上 noindex,等它在索引中消失之後,再考虑是否用 robots.txt 限制抓取,比如為了减轻服務器压力。

先明确目标,再選手段

  • 頁面彻底不要了:返回 404 或 410,這是最直接的失效信号。
  • 頁面還在,但暂时不想被搜尋展示:保留可抓取狀態並加 noindex,适用于活動結束頁、临时說明頁。
  • 只是不想被频繁抓取:用 robots.txt,但要清楚它不负责移除已有的索引條目。
  • 整站或整個目錄需要處理:逐頁加 noindex,或在服務器层面對應返回 410。直接用 robots.txt 全站屏蔽,只會让清理更慢。

几個容易踩的细节

被屏蔽的 URL 不要放進 sitemap

sitemap 的作用是告诉爬虫“這些地址值得抓”。如果其中一批 URL 同时又被 robots.txt 禁止抓取,提交後往往只會得到一堆“已提交但被屏蔽”的提示。要么放開抓取,要么把這些 URL 從 sitemap 里撤掉。

noindex 之後不用急着删内容

noindex 頁面仍有正常内容和連結,不影响用戶訪問,只是不進入索引。等確認索引里已经查不到,再决定是刪除、改版還是繼續保留。

非 HTML 文件看响應头

PDF、图片、音视频等文件里塞不進 meta 标簽,需要用 X-Robots-Tag 响應头表達 noindex。只改 HTML 模板對這些文件不起作用。

一個可以照做的自查顺序

  1. 在搜尋引擎里用 site: 或直接搜 URL,確認頁面目前是否還在索引中。
  2. 检查 robots.txt 是否屏蔽了该路径。如果屏蔽了,先放開。
  3. 確認頁面返回的狀態碼是 200 且能正常渲染;如果本来就是 404 或 410,走刪除流程即可。
  4. 加上 noindex(HTML 用 meta,文件用 X-Robots-Tag),並保持可抓取。
  5. 在搜尋後台用 URL 检查工具請求重新抓取,確認抓取到的版本里带有 noindex。
  6. 定期复查索引狀態。移除不是即时的,可能需要數天甚至更久。

把“抓取控制”和“索引控制”分開看,操作顺序就不會乱:想让頁面登出索引,先让它能被抓到,再让爬虫讀到你的意图。