網站收錄

robots.txt 挡了抓取,頁面為什么還在索引里:把抓取屏蔽和索引屏蔽分開用

很多站点把 robots.txt 和 noindex 当成同一個開關,结果出現“屏蔽了却還在索引里”或“想移除却一直移除不掉”的情况。本文從抓取屏蔽與索引屏蔽的区別出發,說明 robots.txt、meta robots、X-Robots-Tag 各自的生效條件與冲突處理顺序,以及列表頁、參數頁、临时下线等场景该用哪一個,並附一份自查清單。

網站收錄

robots.txt 挡了抓取,頁面為什么還在索引里:把抓取屏蔽和索引屏蔽分開用

经常有人問:已经在 robots.txt 里 Disallow 了,為什么搜尋里還能搜到那個頁面?反過来也常见:明明加了 noindex,過了一两個月還在索引里。這两件事看着像同一個問题,其實分別卡在两個不同的环节上。把抓取屏蔽和索引屏蔽当成一個開關,是很多收錄問题的起点。

抓取屏蔽和索引屏蔽,是两個不同层面的動作

搜尋引擎處理一個 URL 大致分几步:發現、抓取、索引、展示。robots.txt 管的是“能不能来抓”,属于抓取层;noindex(meta robots 或 X-Robots-Tag)管的是“抓到了要不要放進索引”,属于索引层。两者的生效前提完全不一样。

  • robots.txt Disallow:阻止爬虫請求该 URL。爬虫不會拿到頁面内容,因此也看不到頁面上寫的 noindex。
  • noindex:必须等爬虫真正抓取到頁面、讀到這行指令之後才生效。如果頁面同时被 robots.txt 挡住,noindex 就永遠讀不到。

這就是最常见的矛盾:想移除一個頁面,于是先 Disallow,再补 noindex。结果 robots.txt 挡住了抓取,noindex 没机會被讀到,頁面既抓不了也去不掉,只能一直挂在索引里(通常表現為無摘要或舊摘要)。

為什么被 robots.txt 挡住的 URL 還可能出現在索引里

爬虫虽然不能抓取頁面,但 URL 本身可以通過外鏈、sitemap、歷史记錄等途径被發現。在没有頁面内容可判断的情况下,搜尋引擎有时會把這個 URL 保留在索引中,只是不展示摘要,或者沿用之前的快照。這不是“規則失效”,而是抓取层和索引层各管各的。

想让一個頁面彻底离開索引,正确顺序通常是:先允许抓取,让 noindex 能被讀到;確認頁面已從索引移除後,再决定要不要用 robots.txt 挡抓取。

三種指令的生效位置和優先級

  1. robots.txt:站点級,按路径匹配,控制抓取。對已抓取内容的索引狀態没有直接作用。
  2. meta robots:寫在 HTML 的 head 里,頁面級,控制索引和連結跟随。需要頁面被抓到才生效。
  3. X-Robots-Tag:寫在 HTTP 响應头里,适合非 HTML 资源(PDF、图片、视频),也常用于整站或目錄級统一設定。生效條件同样是請求能到達。

当几處指令同时存在且互相冲突时,一般以更嚴格的為准:一處说 noindex,另一處没提,通常按 noindex 處理。但前提是這些指令能被讀到。被 robots.txt 挡住的路径,後面的 meta 和 header 指令都無從谈起。

不同场景该怎么選

不想让某個目錄被抓,但也不介意它是否存在

比如後台、測試环境、内部搜尋接口,用 robots.txt 屏蔽抓取就够了。這些 URL 本身不太會被外鏈引用,留在索引里的概率低,重点是別浪費抓取资源。

想让一個已收錄頁面彻底消失

不要先上 Disallow。先確認頁面可被抓取,加上 noindex,等索引移除後再考虑是否收回抓取權限。如果是整站迁移或大批量下线,配合 301 或 410 處理更直接。

列表頁、篩選頁不想進索引,但希望連結被跟随

這種情况用 noindex, follow,而不是 robots.txt。Disallow 會同时切断連結的传递,反而影响下层頁面的發現。

參數頁、跟踪碼頁面

先做 URL 归一和 canonical,再考虑是否加 noindex。直接 Disallow 容易让同一頁面的其他變体繼續被索引,看起来像“屏蔽没生效”。

自查清單

  • 被屏蔽的路径,是否同时寫了 noindex?如果是,先理清目的:要的是不抓取,還是不索引。
  • noindex 是否寫在可被抓取的頁面上?用抓取工具確認返回的 HTML 或响應头里确實带上了指令。
  • robots.txt 是否誤挡了 CSS、JS 等渲染所需资源?這會影响頁面内容判断,間接影响索引质量。
  • 检查 X-Robots-Tag 是否在某层配置里被批量加上,覆盖了單頁設定。
  • 移除索引需要時間,观察周期按周計,不要一天之内反复改指令。

抓取和索引是两件事,處理顺序错了,越改越乱。先想清楚目标是不被抓、不被索引,還是不被展示,再選對應的工具,比同时上多個指令稳妥得多。