常见問题

入口頁放了 noindex:搜尋蜘蛛還會抓里面的目标連結吗

入口頁加了 noindex 之後,很多人以為蜘蛛就不来了。其實 noindex 只影响頁面能不能進索引,不影响抓取,更不必然切断連結發現。本文把 noindex、nofollow、X-Robots-Tag 和 robots.txt 摆在一起對比,說明什么情况下目标 URL 還能被搜尋蜘蛛發現,什么情况下會真的被挡住。

常见問题

入口頁放了 noindex:搜尋蜘蛛還會抓里面的目标連結吗

先说结论:一個入口頁如果只設定了 noindex,搜尋蜘蛛仍然可以抓取這個頁面,也能顺着頁面里的連結繼續發現目标 URL。noindex 影响的是這個頁面本身能不能出現在搜尋结果里,不是搜尋蜘蛛能不能来、能不能跟連結。

noindex 管的是收錄,不是抓取

把過程拆成三步會清楚很多:抓取、索引、連結發現。抓取是蜘蛛把頁面取回本地;索引是判断這個頁面值不值得進库、能不能展示;連結發現是在解析頁面时,把里面出現的 URL 提取出来進入待抓取队列。

noindex 作用在第二步。它相当于告诉搜尋引擎:這個頁面可以取,但別把它当结果展示。第三步發生在解析阶段,跟 noindex 没有直接冲突。所以只加 noindex 的入口頁,里面的超連結通常照样會被提取出来。

meta robots 和 X-Robots-Tag 的区別

noindex 有两種常见寫法。一種是寫在 HTML 头部的 robots meta 标簽里,只對 HTML 頁面有效。另一種是通過响應头 X-Robots-Tag 下發,它對 PDF、图片、视频等非 HTML 资源同样生效,而且常常由服務器或 CDN 统一加上。

這一点在排查时很關键。有时候頁面源碼里看不到任何 robots meta,抓取结果却顯示 noindex,多半是响應头里被加了 X-Robots-Tag。蜘蛛池入口頁如果挂在不熟悉的 CDN 或托管平台上,值得先查一遍响應头。

noindex 和 nofollow 组合起来會怎样

  • 只寫 noindex:頁面不進索引,連結仍可被跟随,目标 URL 有机會被發現。
  • 只寫 nofollow:頁面可以正常收錄,但頁面上的連結不被视為推荐,蜘蛛是否繼續跟取决于實际情况。
  • 寫 noindex 加 nofollow:既不想收錄這個頁面,也不想让蜘蛛顺着連結走,這时目标 URL 的發現會明顯受限。
  • 什么都不寫:頁面正常抓取、正常參與索引,連結照常被跟進。

所以真正會影响連結發現的是 nofollow,而不是 noindex。如果你的入口頁只想避免自己出現在搜尋结果里,同时又希望目标 URL 被正常發現,通常保留可抓取、不加 nofollow 就够了。

它和 robots.txt 屏蔽完全不是一回事

robots.txt 里的 Disallow 是抓取层指令。被它挡住的 URL,蜘蛛一般不會去取,自然也讀不到頁面里的連結,連結發現就此中断。這也是為什么有些站点在用 robots.txt 屏蔽入口頁之後,發現目标 URL 一個都没動。

noindex 反過来:頁面能被取回、能被解析,只是不给展示。两者的层級不同,混用會让問题變得难判断。如果入口頁既要防止自己被收錄、又希望里面的連結被發現,robots.txt 屏蔽是反效果的做法。

實际排查时可以按這個顺序看

  1. 查看頁面 HTML 头部有没有 robots meta,確認里面是否包含 noindex、nofollow 或 none。
  2. 用抓取工具或直接查看响應头,確認有没有 X-Robots-Tag 被服務器或 CDN 注入。
  3. 检查 robots.txt 是否對该入口頁或其目錄做了 Disallow,這一步會直接决定蜘蛛来不来。
  4. 確認返回狀態碼是 200,而不是 404、5xx 或需要登入跳轉,否則連結發現同样會断。
  5. 看頁面里的目标連結是不是真正可抓取的超連結,而不是脚本渲染後才出現、或者被包在登入校驗後面。
noindex 不等于隐身。想让入口頁不被收錄又想保留連結發現能力,就只加 noindex;想让蜘蛛连抓都別抓,才需要考虑抓取层的屏蔽。

最後提醒一点:noindex 是一個索引层指令,既不能阻止蜘蛛訪問,也不能阻止它解析頁面。它的價值在于控制展示结果,而不是控制抓取行為。把這一点区分清楚,蜘蛛池入口頁的配置就不容易走偏。