屏蔽抓取不等于從索引里移除
處理不想被搜尋展示的頁面时,很多人的第一反應是在 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 模板對這些文件不起作用。
一個可以照做的自查顺序
- 在搜尋引擎里用 site: 或直接搜 URL,確認頁面目前是否還在索引中。
- 检查 robots.txt 是否屏蔽了该路径。如果屏蔽了,先放開。
- 確認頁面返回的狀態碼是 200 且能正常渲染;如果本来就是 404 或 410,走刪除流程即可。
- 加上 noindex(HTML 用 meta,文件用 X-Robots-Tag),並保持可抓取。
- 在搜尋後台用 URL 检查工具請求重新抓取,確認抓取到的版本里带有 noindex。
- 定期复查索引狀態。移除不是即时的,可能需要數天甚至更久。
把“抓取控制”和“索引控制”分開看,操作顺序就不會乱:想让頁面登出索引,先让它能被抓到,再让爬虫讀到你的意图。