搜尋抓取

nofollow 連結還會被抓吗:蜘蛛遇到标记連結时的走法

很多人把 nofollow 当成抓取開關,其實它主要是連結關系提示,並不保證蜘蛛不来。本文說明 nofollow 在抓取阶段的作用、蜘蛛為何仍可能跟着它發現 URL,以及内鏈、外鏈和功能性連結该怎么分层處理。

搜尋抓取

nofollow 連結還會被抓吗:蜘蛛遇到标记連結时的走法

nofollow 不是“別抓我”

在站内連結上加 rel="nofollow" 以後,蜘蛛就不来了吗?多數情况下不會這么简單。nofollow 最初是用来告诉搜尋引擎“這個連結不是投票”,後来變成了一個提示信号。它主要影响連結關系的判断,而不是直接關閉抓取通道。

換句话说,蜘蛛看到 nofollow 連結时,可能會選擇不传递權重、不把它当作推荐,但仍然可能沿着這條連結去發現和抓取目标 URL。尤其是当這個 URL 没有出現在別的地方时,nofollow 連結反而可能是蜘蛛第一次见到它的入口。

把 nofollow 当成抓取预算的阀门,往往會失效;真正能阻止抓取的是 robots.txt 的 Disallow 或服務器层面的限制。

蜘蛛為什么會跟着 nofollow 走

抓取和索引是两件事。爬虫需要先拿到 URL,才會判断頁面内容、canonical、noindex 等信号。nofollow 不阻止 URL 被發現,所以下面几種情况蜘蛛仍可能排队抓取:

  • 目标頁面是新的,站内没有其他可爬入口,nofollow 連結成了唯一發現路径;
  • 同一批 URL 在多個頁面被 nofollow 連結反复指向,蜘蛛在合並連結關系时仍會记錄這些地址;
  • 外鏈带了 nofollow,但搜尋引擎仍可能抓取目标頁,用于判断連結质量和内容相關性;
  • UGC 或评论区的 nofollow 連結,蜘蛛為了反垃圾和發現新内容,也會做一定程度的抓取。

因此日誌里看到蜘蛛抓了 nofollow 連結,並不一定是配置失效,而是抓取發現机制在正常工作。

nofollow、robots.txt 和 noindex 的分工

這三個指令经常被混用,其實作用的阶段不同。

  • robots.txt Disallow:阻止蜘蛛抓取指定路径,但 URL 仍可能被索引成無摘要结果。适合後台、搜尋结果頁、參數组合等不需要抓取的功能地址。
  • noindex:让頁面不被索引,但蜘蛛必须先抓取頁面、讀到 meta 或响應头才生效。适合内容單薄但可訪問的頁面。
  • nofollow:處理連結關系,不保證目标 URL 不被抓取。适合广告、赞助、不可信 UGC 和你不愿背书的連結。

如果目标是不让蜘蛛抓取,優先考虑 robots.txt;如果目标是不让頁面進索引,用 noindex;nofollow 放在連結层面,解决的是信任和權重問题,而不是抓取開關。

内鏈里的 nofollow 要慎用

有些站点為了“节省抓取額度”,把篩選參數、分頁、登入註冊等内鏈全部加上 nofollow。這样做常常适得其反:蜘蛛仍然可能抓到這些 URL,但重要頁面的發現路径變窄了,抓取分布變得更难预测。

更稳的做法是分层處理:

  1. 把纯功能性地址(购物车、结算、用戶中心、站内搜尋结果)放進 robots.txt,减少無效抓取。
  2. 對不需要出現在索引里的可訪問頁面,使用 noindex,並确保蜘蛛能讀到。
  3. 對广告、赞助和外部 UGC 連結使用 nofollow,明确關系即可。
  4. 站内核心導航、文章互鏈和 Sitemap 保持干净可爬,让蜘蛛沿着稳定路径走。
  5. 定期看服務器日誌,確認蜘蛛實际抓了哪些 URL,再調整規則。

分頁連結通常不建议加 nofollow。如果希望蜘蛛繼續翻到後面的列表頁,保留可爬連結比标记 nofollow 更直接。

用日誌驗證,而不是凭感觉

nofollow 的實际效果會因搜尋引擎和场景而變化。與其假设“加了就不抓”,不如在日誌里看蜘蛛是否訪問了被标记的 URL、訪問频率如何、是否带上了參數。再结合 robots.txt 和 noindex 做小范围測試,观察抓取路径的變化。

站点运营里,抓取管理更像分层疏導:该拦的用 robots.txt,该去索引的用 noindex,该表明關系的地方用 nofollow。把每個指令放在它擅長的环节,蜘蛛的路径才會更清楚。