網站收錄

noindex 和 robots.txt 一起用,頁面為什么還在索引里

想让一個頁面從搜尋结果里消失,很多人的做法是 robots.txt 里 Disallow 加上頁面里的 noindex,双保險。结果頁面挂着好几個月還在。問题出在顺序:Disallow 挡住抓取,爬虫就讀不到那句 noindex。本文拆開讲抓取與索引两道门,给出正确的下线顺序、常见寫法的自查清單,以及什么时候 Disallow 才是對的選擇。

網站收錄

noindex 和 robots.txt 一起用,頁面為什么還在索引里

想從一個網站里拿掉某個頁面,很多人的第一反應是两個操作一起上:robots.txt 里 Disallow 掉,頁面里再加一個 noindex。看起来是双保險,實际结果经常是頁面在索引里挂了好几個月,甚至在搜尋结果里還能看到标题和連結。

抓取和索引是两道獨立的门

要理解這個問题,先分清两個動作各自在管什么。

  • 抓取:搜尋引擎把頁面的 HTML 拿回去。robots.txt 里的 Disallow 管的是這一步。
  • 索引:把抓回来的内容判断、處理、存進索引库。noindex 管的是這一步。

關键在于,noindex 是寫在頁面里的一個 meta 标簽。搜尋引擎必须先抓到頁面,才能讀到它。如果 robots.txt 已经明确禁止抓取這個 URL,爬虫通常就不會去取内容,自然也讀不到那句 noindex。

Disallow 加 noindex 會發生什么

這是最常见的一類「下线失敗」。

搜尋引擎的视角

爬虫来到這個 URL,被 robots.txt 拦住,不抓正文。但它此前可能已经從別的地方知道了這個地址——外鏈、sitemap、内鏈、歷史记錄都算。于是這個 URL 仍然可能被放進索引,只是拿不到摘要,展示成一條光秃秃的連結,或者标注「由于该網站的 robots.txt 文件,我們無法提供该頁面的具体描述」。

你看到搜尋结果里還有這個頁面,以為 noindex 没生效,其實是它根本没被讀到。

另一個容易忽略的点

有些站長在 robots.txt 里用通配符拦了一整個目錄,然後指望目錄下所有頁面的 noindex 生效。结果是這一批頁面全部處在「被拦住、又可能被索引」的狀態,處理起来更麻烦。

想真正下线一個頁面,顺序應该反過来

  1. 先确保這個 URL 允许被抓取,不要用 robots.txt 挡住它。
  2. 在頁面里放 noindex,或者返回 X-Robots-Tag: noindex 响應头。
  3. 等爬虫重新訪問並讀到 noindex,頁面從索引中移除。
  4. 確認已经移除之後,决定要不要在 robots.txt 里加 Disallow。

顺序颠倒,就是前面说的僵局:拦住了抓取,也就拦住了 noindex 生效的唯一途径。

几種常见寫法的自查

  • meta 寫法要完整:<meta name="robots" content="noindex">。只寫 noindex 时預設仍允许跟踪連結;如果同时不想让爬虫顺着連結走,用 noindex, nofollow。
  • 如果頁面是通過 301 跳到別處,通常不需要再寫 noindex,跳轉本身會推動舊 URL 登出索引。
  • 非 HTML 资源(PDF、图片、视频)没法寫 meta,要用 X-Robots-Tag 响應头。
  • 检查有没有互相打架的标簽:一個说 noindex,另一個從模板繼承来 index。最终以更嚴格的那個為准,但值得把冲突清理掉。
  • 分頁、篩選參數這類不想被索引的 URL,同样優先考虑 noindex 而不是 Disallow,除非你确實不希望搜尋引擎去抓。

什么时候 Disallow 才是對的

当你不介意 URL 出現在索引里、只是不想让爬虫浪費抓取配額时,Disallow 是合适的選擇。比如後台路径、站内搜尋结果頁、大量無意义的參數组合。這類頁面的目标是「別来抓」,而不是「從索引里删掉」。

一句话区分:想让頁面消失,用 noindex;想让爬虫別来,用 Disallow。两者同时用,等于让 noindex 永遠送不到。

改完之後的观察点

改完不要立刻下结论。索引更新有周期,尤其是訪問量低、外鏈少的頁面,重訪間隔可能很長。可以做的几件事:

  • 用抓取检查工具看目前抓到的 HTML 里,robots meta 到底是什么值。
  • 確認 robots.txt 没有再拦這個 URL。
  • 如果涉及頁面數量多,用 sitemap 或内鏈引導爬虫重新訪問,加快重讀。
  • 看服務器日誌里這個 URL 的返回狀態和响應头,確認服務端没有額外下發冲突的指令。

頁面是否收錄,最终由搜尋引擎决定,我們能做的是把信号给清楚、別自相矛盾。把抓取和索引這两件事分開處理,很多「删不掉的頁面」其實只是指令顺序寫反了。