常见問题

入口頁里的連結加了 rel=nofollow,搜尋蜘蛛還會發現並抓取吗?

nofollow 常被当成“隐藏連結”的手段,但它對搜尋蜘蛛的實际影响常被高估。本文說明 nofollow 的提示属性、不同搜尋引擎的處理差异,以及在蜘蛛池入口頁里加 nofollow 後 URL 發現、抓取優先級會怎么變化,並给出更可靠的控制抓取與排查思路。

常见問题

入口頁里的連結加了 rel=nofollow,搜尋蜘蛛還會發現並抓取吗?

在蜘蛛池入口頁里给連結加上 rel=nofollow,很多人是出于两個目的:一是控制權重流向,二是希望搜尋蜘蛛“別抓這些 URL”。第一個目的通常能達到,第二個目的往往達不到。要判断它到底有没有用,得先分清“發現 URL”“抓取 URL”“收錄 URL”是三個不同的环节。

先说结论

nofollow 現在更像一個提示,而不是硬性指令。入口頁 HTML 里的 href 依然會被解析,URL 依然可能進入抓取队列;nofollow 影响的主要是這條連結能传递多少信任與權重,以及抓取調度时的優先級。它不等于“禁止抓取”。

nofollow 本来是干什么的

這個属性最早是给论坛、评论区、用戶投稿這類 UGC 场景用的:頁面作者無法為每條外鏈背书,于是标记為 nofollow,告诉搜尋引擎不要因為這條連結而传递權重。後来它被扩展出 rel=ugc、rel=sponsored 等更细的标记,用途基本围绕“這條連結我不背书”。

也就是说,它的设計初衷是信任與權重問题,不是訪問權限問题。

不同搜尋方的處理並不一致

  • 主流商业搜尋引擎:大多已把 nofollow 描述為“提示”。遇到需要被發現的 URL,仍可能跟随抓取,只是處理權重时會打折扣。
  • 不同引擎之間:權重折算方式、是否跟随,各有各的實現,很难用一句话概括。
  • 各類站内爬虫與第三方工具:很多只看連結结构,根本不解析 nofollow,照样會訪問。
  • 同一引擎的不同阶段:發現阶段和排序阶段的處理也可能不一样。

所以,把 nofollow 当成一把“谁都不许進”的鎖,前提就不成立。

入口頁加 nofollow 後,實际會發生什么

  1. URL 仍可能被發現。只要連結寫在 HTML 的 href 里,解析阶段就能拿到這個地址,進入待抓列表的机會依然存在。
  2. 抓取優先級可能下降。在抓取预算有限的站点上,nofollow 連結被排到後面的概率會更高,原本一天抓完的,可能變成几天。
  3. 想彻底藏住連結,基本做不到。真正阻断抓取要靠 robots.txt、訪問權限或驗證机制,而不是一個連結属性。
  4. 對目标站的影响不對称。入口頁的 nofollow 主要削弱這條連結的權重信号,但並不阻止目标 URL 被訪問和评估。

哪些情况下反而适合加

  • 入口頁里有用戶提交、無法审核的内容連結。
  • 頁面是资源聚合頁,指向的第三方地址與站点定位無關。
  • 連結指向临时頁、測試頁、已下线的地址。
  • 你明确不希望把權重分配到某個方向,但又不介意它被訪問。

想控制抓取,比 nofollow 更靠谱的手段

  1. robots.txt 的 Disallow:從抓取层面拦截。注意 URL 若被別處連結指向,仍可能進入待抓队列,只是抓不到内容。
  2. meta robots 或 X-Robots-Tag 的 noindex:管的是“能不能收錄”,一般不影响發現與抓取。
  3. 登入、驗證碼、白名單:從訪問權限上直接挡住,蜘蛛也一样進不来。
  4. 日誌校驗:结合 UA、IP 反查,判断来訪的是不是真實搜尋蜘蛛,再决定策略。

一句话区分:nofollow 管的是信任與權重,robots.txt 管的是能不能抓,noindex 管的是能不能收錄。三者经常被混用,效果自然也常常對不上预期。

排查时看什么,而不是看什么

如果你在入口頁加了 nofollow,想確認“目标 URL 到底有没有被訪問”,最直接的办法是看目标站或入口頁的訪問日誌:有没有對應蜘蛛的抓取记錄、抓取時間分布、返回狀態碼是什么。只看頁面代碼里有没有寫 nofollow,是得不到结论的。

另外也要注意,入口頁的價值主要在于让 URL 被看见。如果為了控制權重而把連結全部标成 nofollow,同时又指望它們承担發現任務,這两件事本身就有冲突,需要按實际目标取舍。