常见問题

入口頁寫了 noindex 或 X-Robots-Tag:里面的目标連結還會被搜尋蜘蛛跟進吗

很多站長把入口頁设成 noindex,以為這样入口頁里的連結也不會被抓。其實 noindex 管的是“要不要進索引”,nofollow 才管“連結要不要跟”。本文讲清两者的差別、日誌里的表現,以及蜘蛛池场景下這样設定會带来哪些實际影响。

常见問题

入口頁寫了 noindex 或 X-Robots-Tag:里面的目标連結還會被搜尋蜘蛛跟進吗

不少做蜘蛛池的人會给入口頁加上 noindex,想法很直接:只想让入口頁当個“放連結的架子”,不希望它本身進入索引。這個思路本身没問题,但常被顺带理解成“入口頁不索引了,里面的連結也就不會被抓”。這是两件事,需要拆開看。

noindex 管的是索引,不是抓取

noindex 的语义是“不要把這一頁放進索引结果”,它並不阻止搜尋蜘蛛来請求這一頁。只要入口頁能被正常抓取,蜘蛛依然會下载 HTML、解析里面的連結,把目标 URL 放進待抓队列。真正會让連結跟進行為停止的,是 nofollow 這一類指令,而不是 noindex。

反過来说,如果入口頁连抓都抓不到(被 robots.txt 屏蔽、返回 403 或 429、需要登入),那 noindex 寫在哪儿都讀不到,連結自然也發現不了。“可抓取”是前提,“是否索引”是另一层判断,顺序不能倒過来。

两種寫法在日誌里的表現

meta robots

寫在 HTML 的 head 里,例如 <meta name="robots" content="noindex">。蜘蛛必须先抓到並解析 HTML 才能讀到它,所以入口頁會正常出現在訪問日誌中,狀態碼一般是 200。

X-Robots-Tag

寫在 HTTP 响應头里,例如 X-Robots-Tag: noindex。蜘蛛在响應头阶段就能看到這個标记,處理路径更短,但對“頁面里的連結能否被發現”没有影响——連結還在 HTML 里,依然會被解析。

两種方式都不會让入口頁從抓取日誌里消失。你能看到的訪問记錄,和“索引狀態”是两套分開的信号,排查时不要混用。

和 nofollow 一起寫會怎样

常见的组合是 noindex, nofollow。這时入口頁虽然照样能被抓,但頁面上的連結不再被当作可跟進的發現来源。不同搜尋引擎在细节實現上可能有差异,稳妥起见不要指望它仍能正常传递發現。

如果你的目标是“入口頁不進索引,但里面的連結照常被發現”,那就只寫 noindex,不要带 nofollow;寫成 noindex, follow 语义會更明确。

放到蜘蛛池场景里的几個實际影响

  • 入口頁會持續被抓取。noindex 不會降低抓取频率,只要入口頁還被外鏈、sitemap 或別的入口指向,蜘蛛仍然會来。
  • 抓取配額會被占用。入口頁本身不产生索引层面的價值,却要消耗抓取预算。入口頁數量一大,這部分開销要提前算清楚。
  • 連結發現照常進行。目标 URL 會不會被排队,取决于入口頁是否可抓、連結是否是可解析的超連結、目标 URL 是否可訪問,與入口頁寫不寫 noindex 無關。
  • noindex 不能当成“屏蔽入口頁”的手段。如果确實不想让入口頁被抓,那要用 robots.txt,但這同时會让里面的連結不再被發現,很可能和你原本的目的相反。

排查时按這個顺序看

  1. 確認入口頁返回 200,且 Content-Type 是蜘蛛能解析的類型。
  2. 在日誌里確認蜘蛛确實請求了入口頁,而不是只請求了站点首頁。
  3. 检查响應头里的 X-Robots-Tag 是否同时带了 nofollow。
  4. 检查 HTML head 里的 meta robots 是否包含 nofollow。
  5. 確認目标連結是可解析的 <a href>,不是纯文本,也不是靠 JS 後置插入。
  6. 最後再看目标 URL 自身的狀態碼,403、429、500 都會让發現鏈條断在下一步。
一句话区分:noindex 决定“這一頁要不要進索引”,nofollow 决定“這一頁的連結要不要跟”。把這两個指令当成同一件事,日誌和實际抓取行為就會對不上。

小结

如果只是想把入口頁隐藏起来,用 noindex 就够了,但要知道入口頁仍會被抓取、仍會消耗抓取预算,里面的連結也仍會被發現。只有当你不希望連結被跟進时,才需要 nofollow,而這通常和蜘蛛池的用途相冲突。把這两件事分清楚,再去看日誌里的抓取记錄,判断才會更贴近實际。