網站收錄

想让頁面不入索引:noindex 和 robots.txt 该用哪一個

抓取和索引是两步,robots.txt 管抓取,noindex 管索引,用错顺序會让頁面在索引里待得更久。本文把两者的作用位置拆開,按頁面目前狀態给出選擇建议,並列出改完之後需要核對的检查項。

網站收錄

想让頁面不入索引:noindex 和 robots.txt 该用哪一個

做站点运营经常會碰到一個需求:某個頁面不想让它出現在搜尋结果里。這时候面前通常摆着两個選項——在頁面里加 noindex,或者在 robots.txt 里屏蔽。两者看起来都是"挡住",但作用的位置完全不同,顺序用错了,反而會让頁面在索引里待得更久。

先把两件事拆開:抓取和索引

搜尋引擎處理一個 URL,大致分两步:先由爬虫把頁面抓下来,再决定要不要放進索引。robots.txt 管的是第一步,noindex 管的是第二步。

在 robots.txt 里寫 Disallow,等于告诉爬虫"這個地址不用来抓"。爬虫看不到頁面内容,自然也讀不到頁面里的 noindex 标簽。noindex 反過来,它必须寫在頁面里,或者通過 HTTP 响應头返回,爬虫得先把頁面抓下来才能看到。這就是為什么一個常见的坑是:既在 robots.txt 里屏蔽,又指望頁面里的 noindex 生效,结果两邊都没起作用。

robots.txt 常被誤用的地方

很多人以為在 robots.txt 里屏蔽一個 URL,它就等于從搜尋结果里消失了。實际並不一定。

  • 如果這個 URL 之前已经被索引,屏蔽抓取並不會立刻把它清出索引,它可能繼續以没有摘要的形式出現在结果里。
  • robots.txt 是公開文件,任何人可以查看。不要把不想公開的路径当成保密手段。
  • 不同爬虫對 robots.txt 的遵守程度不一样,屏蔽的實际范围也可能有差异。

所以 robots.txt 更适合用来控制抓取预算、减少無意义的抓取压力,而不是用来做索引清理。

noindex 生效需要满足什么

noindex 要想起作用,前提是頁面能被抓取。也就是说:

  1. 该 URL 没有被 robots.txt 屏蔽;
  2. 服務器能正常返回頁面,不是持續的超时或 5xx;
  3. 标簽寫在正确的位置,能被解析到。

常见的寫法有两種:HTML 頁面上用 <meta name='robots' content='noindex'>,非 HTML 资源比如 PDF、图片、视频,用 HTTP 响應头 X-Robots-Tag。後者容易被忽略,一份 PDF 只在文件里塞 meta 标簽是没用的。

一個實用顺序:頁面還没被索引、想让它別進去,可以允许抓取並加 noindex;頁面已经被索引,同样先允许抓取並加上 noindex,等它從索引里消失之後,再考虑是否收紧抓取。

按场景選做法

具体用哪個,取决于頁面目前的狀態和你真正想達到的目的。

  • 不想被搜到、也不想被索引:允许抓取,加 noindex。確認移出索引後,如果不希望繼續消耗抓取资源,再改成 robots.txt 屏蔽。
  • 只是不想让它占抓取预算:用 robots.txt。比如篩選參數、排序參數生成的组合頁。
  • 頁面數量大、层次明顯:先看清哪一层是真正需要收錄的,把不需要的层用 noindex 或屏蔽處理,不要所有层套同一套規則。
  • 已被索引且内容敏感:除了 noindex,還可以用搜尋引擎提供的移除工具做临时處理,同时把頁面本身删掉或改成返回 404、410。

改完之後要看什么

調整不是改完就結束,還需要核對几件事:

  • 用抓取測試工具確認頁面返回的是预期狀態碼,noindex 是否被识別;
  • 观察一段時間内的索引數量變化,注意是缓慢下降還是完全没有變化;
  • 检查 robots.txt 是否誤屏蔽了你還需要收錄的路径,尤其是測試环境的規則被带到线上;
  • 如果走了刪除路线,確認頁面确實返回 404 或 410,而不是仍然返回 200。

简單归纳:robots.txt 决定抓不抓,noindex 决定收不收。想让一個頁面從索引里出去,通常要靠 noindex 加可抓取;只想减少抓取压力,才用 robots.txt 屏蔽。把這两件事分清,很多反复處理不掉的問题就能顺着原因找到出口。