網站收錄

noindex 和 Disallow 一起用會怎样:抓取與索引的邊界

想让頁面登出索引,有人加 noindex,有人寫 Disallow,還有人两個一起上。這三種做法作用在不同环节,结果差別很大。本文梳理抓取與索引的先後顺序,說明哪些场景该用哪種規則,以及改完之後怎么驗證,避免規則堆叠却看不到效果。

網站收錄

noindex 和 Disallow 一起用會怎样:抓取與索引的邊界

想把某個頁面從搜尋结果里拿掉,很多人的第一反應是去 robots.txt 寫一條 Disallow,或者在頁面头部加 noindex。這两個動作看起来都指向“別收錄”,但作用的位置完全不同。更麻烦的是,当它們被同时使用,往往會得到和预期相反的结果。

抓取和索引,是两道不同的门

搜尋引擎處理一個 URL 大致分两步:先抓取,把頁面内容取回;再判断是否值得放進索引,放進索引後才有出現在搜尋结果里的可能。

  • 抓取由蜘蛛完成,robots.txt 里的 Disallow 影响的就是這一步。
  • 索引由搜尋引擎的内容系統决定,頁面里的 noindex 标簽影响的是這一步。

關键点在于:noindex 是寫在頁面里的,蜘蛛必须先把頁面抓下来,才有机會讀到它。如果抓取這一步已经被挡住,noindex 就没有机會被看到。

三種组合,结果差別很大

只加 noindex

蜘蛛可以正常抓取頁面,讀到 noindex 後,通常會把已有的索引條目移除。這是让頁面登出索引比較直接的方式,代價是蜘蛛仍會时不时来抓,因為規則上它没被禁止訪問。

只加 Disallow

蜘蛛不會抓取该 URL,也就讀不到頁面上的任何指令。已经進入索引的頁面,可能因為長期抓不到更新而停留在舊狀態,甚至繼續以舊标题、舊描述出現在结果里。對于尚未被收錄的 URL,Disallow 能让它大概率不被抓取和收錄,但它並不是一個“保證刪除已有索引”的操作。

两個一起加

這是最容易出問题的一種。Disallow 挡住了抓取,noindex 没机會被讀取,于是已经收錄的頁面可能長期挂在索引里,你却以為已经處理完了。常见表現是:改完一两個月,搜标题還是能找到,结果里的摘要停留在改動之前。

简單记:想让頁面從索引里消失,先放開抓取,让 noindex 被讀到;確認條目减少後,再考虑是否需要用 robots.txt 减少抓取。

那么该用哪一個

  1. 只是不想让它被搜到,頁面本身還有用:用 noindex,別 Disallow。
  2. 站内搜尋頁、篩選用頁,數量巨大且没有收錄價值:可以先用 noindex 收口,再评估是否需要限制抓取频率。
  3. 後台、临时目錄、接口地址:這類不需要被外部訪問的路径,用 robots.txt 阻挡抓取更合适,同时確認它們本来就不该有外鏈和站内入口。
  4. 已经收錄、想彻底移除:優先 noindex,等索引條目减少後,再按需調整 robots 規則;不要反過来操作。

改完之後怎么驗證

  • 用搜尋引擎提供的 URL 检查類工具,看目前頁面的抓取狀態和索引狀態是否一致。
  • 查看頁面返回的 HTML 源碼,確認 noindex 是否真的在 head 里,以及是否依赖 JS 後置注入而可能讀不到。
  • 观察服務器日誌,確認蜘蛛是否還能正常訪問该 URL。
  • 索引條目的更新通常不是即时的,给它一段观察期,不要一天一改規則。

最後提醒一句:noindex、Disallow、canonical、301 各自解决的是不同問题。動手之前先说清楚目标是“別抓”還是“別收”,再選工具,比一次性堆上四五種規則要有效得多。