網站收錄

robots.txt、noindex 還是直接刪除:让頁面离開索引的三種做法

站点运营里常碰到一個需求:某個頁面不想让它出現在搜尋结果里。控制收錄的手段有 robots.txt、noindex 和直接刪除三種,它們分別作用在抓取、索引和頁面存在性三個环节。混用最常见的後果是爬虫被挡在门外、讀不到 noindex,頁面長期留在索引里。本文拆解三者的分工,並给出一套可执行的自查顺序。

網站收錄

robots.txt、noindex 還是直接刪除:让頁面离開索引的三種做法

站点运营里常碰到一個需求:某個頁面不想让它出現在搜尋结果里。參數篩選頁、临时活動頁、内部測試頁、已经下线的老栏目,都属于這一類。這时通常有三條路可走——寫進 robots.txt、加 noindex、或者直接删掉返回 404/410。它們看起来都在做同一件事,實际作用在完全不同的环节,混着用之後经常出現“折腾了半天没變化”的情况。

抓取和索引是两個环节

搜尋引擎處理一個 URL 大致分两步:先抓取,把頁面内容取回来;再判断是否值得放進索引,索引里有了,頁面才可能出現在搜尋结果中。控制收錄的手段,有的作用在第一步,有的作用在第二步。分不清這一点,就容易用错工具。

robots.txt 只管抓取入口

robots.txt 里的 Disallow 告诉爬虫“這個路径不要来抓”,解决的是抓取問题,不是索引問题。一個已经被收錄的頁面,事後加進 robots.txt 屏蔽,通常不會让它從索引里消失——爬虫不再来抓,也就讀不到頁面上後来补充的 noindex,搜尋结果的标题和摘要可能長期停留在舊版本。

所以 robots.txt 更适合的场景是:頁面本身没問题,只是不想让爬虫把抓取額度浪費在上面,比如無限翻頁的參數组合、站内搜尋结果頁。

noindex 管索引,但要先能被抓到

noindex 是頁面級指令,寫在 meta 标簽里;非 HTML 文件則用 X-Robots-Tag 响應头。它表達的是“這個頁面可以抓,但請別放進索引”。要让這條指令生效,前提是爬虫真的抓到了這個頁面並讀到了它。因此頁面返回碼應是 200,内容正常,並且没有被 robots.txt 屏蔽。

两個一起用會互相抵消

最常见的错誤组合是:既在 robots.txt 里屏蔽了這個路径,又在頁面里加了 noindex。结果是爬虫被挡在门外,永遠讀不到 noindex,頁面可能一直留在索引里,尤其是当它還有外鏈指向的时候。

如果目标是把一個已经收錄的頁面拿掉,顺序應该是:先在 robots.txt 里放行,确保頁面能被抓取;再加 noindex;等它在搜尋结果里消失之後,如果确實不想被频繁抓取,再考虑加回屏蔽。

頁面确實不要了:404 還是 410

如果頁面本身就该下线,那就不是“藏起来”的問题,而是“不存在”的問题。返回 404 表示未找到,返回 410 表示永久移除。两者都可能让頁面登出索引,410 的语义更明确,處理起来通常也更快一些。如果刪除頁面上還有價值相近的替代内容,更合适的是做 301 跳轉到新地址,而不是直接扔一個 404。

按需求選手段

  1. 頁面還在,只是不想被索引:保持可抓取,加 noindex;HTML 用 meta,PDF、图片等文件用 X-Robots-Tag。
  2. 頁面永久下线:返回 410 或 404,同时在頁面上保留 noindex 更稳妥;有替代頁就做 301。
  3. 只是不想浪費抓取額度:robots.txt 屏蔽,但要接受它可能仍留在索引里。
  4. 改版期間的临时遮挡:可以短期用 robots 屏蔽,改版完成後记得放行。

一套可执行的检查顺序

  1. 先確認這個 URL 現在到底在不在索引里,用 site 查询或直接搜完整地址。
  2. 看 robots.txt 有没有屏蔽该路径。如果屏蔽了,先放行,否則後面的操作都白做。
  3. 在頁面上加 noindex,確認頁面返回 200、内容正常、没有多余的跳轉鏈。
  4. 用抓取測試工具確認 noindex 确實被讀到,而不是藏在 JS 渲染之後才出現。
  5. 等索引更新,周期可能是几天到几周,视頁面權重和抓取频率而定。
  6. 確認從索引中消失後,再决定是否需要加回 robots 屏蔽。
判断用哪種手段,先問一句:這個頁面是“還在但不想被看到”,還是“已经不要了”。前者用 noindex,後者用 404/410,robots.txt 只负责挡抓取,別指望它做索引层面的清理。