搜尋抓取

nofollow 加了之後蜘蛛還走不走:連結属性與 URL 發現的邊界

站内連結是蜘蛛發現新 URL 的主要通道,加上 nofollow、ugc、sponsored 之後,這條通道還通不通?本文把“發現 URL”和“传递信号”分開讲,說明連結属性對抓取的實际影响、站内連結该怎么标注,以及 Sitemap、robots.txt、服務器响應在其中扮演的角色。

搜尋抓取

nofollow 加了之後蜘蛛還走不走:連結属性與 URL 發現的邊界

站内連結是蜘蛛發現新 URL 最常用的通道。给連結加上 rel="nofollow" 之後,這條通道還算不算數,是很多站長在做内鏈时反复纠结的問题。要回答它,需要把“發現 URL”和“传递信号”两件事分開看。

一、nofollow 阻止的是哪一步

早期搜尋引擎把 nofollow 当作硬性指令:看到這個属性的連結,就不再顺着它去抓取目标地址。後来主流引擎陆續修改了處理方式,把它降級為“提示”(hint),即不再绝對保證不抓取、也不绝對保證不传递信号,具体怎么處理由引擎自己判断。

這意味着一個現實:加了 nofollow 的連結,目标 URL 仍然有可能被發現和抓取,只是概率和優先級通常低于普通連結。把 nofollow 当成“彻底断掉這條發現通道”的開關,容易做出错誤判断。

二、站内連結上的 nofollow 要慎用

  • 導航、面包屑、正文里的編輯連結,一般不加 nofollow,它們是蜘蛛理解站点结构的主干。
  • 确實不想被跟進的内容,比如登入後頁面、临时活動頁,優先用 robots.txt 的 Disallow 或 noindex 處理,而不是靠 nofollow。
  • 不要把 nofollow 当成控制抓取预算的工具。真正吃预算的是大量低價值 URL 被反复抓取,需要從站点结构上减少,而不是逐個連結加属性。

三、ugc 與 sponsored:语义更明确的两種属性

rel="ugc" 用于用戶生成内容里的連結,比如评论区、论坛帖子;rel="sponsored" 用于付費或广告性质的連結。它們和 nofollow 一样,属于對連結性质的标注,而不是對目标 URL 的封杀。用戶评论里的外鏈被标注之後,通常不會给站点带来額外風險,但也不會有正向帮助。

需要提醒的是,不同搜尋引擎對這三個属性的處理细节並不一致,也不公開完整規則。因此不要把某一條经驗当成通用结论,尤其是在做大規模内鏈調整之前。

四、真正决定 URL 能否被發現的,是這几件事

  1. 連結是否出現在 HTML 里,而不是只存在于 JS 点击事件中。
  2. 頁面本身是否可以被抓取,robots.txt 是否放行。
  3. 連結所在的頁面是否被抓取過,以及抓取频率如何。
  4. Sitemap 是否覆盖了這批 URL,作為爬行之外的补充申报通道。
  5. 服務器是否稳定响應,抓取时不會超时或返回異常狀態碼。
一句话:nofollow 影响的是蜘蛛愿不愿意顺着這條連結走,而不是目标 URL 存不存在、能不能被抓。

五、實操建议

如果你的目的是让重要頁面尽快被發現,把 nofollow 從站内連結上拿掉,让連結以普通形式存在,通常更稳妥。如果目的只是标注連結性质(广告、用戶投稿),保留 sponsored 或 ugc 即可,不必再額外叠加 nofollow。

同时检查两件事:一是新頁面有没有至少一條来自已抓取頁面的普通連結;二是這些 URL 是否已经進入 Sitemap。两條通道都覆盖,URL 被發現的速度和稳定性通常比只靠其中一條更好。

最後,別把連結属性的調整当成一次性動作。站点结构調整、模板改版、评论区開放或關閉,都會改變連結的形態,建议定期抽查關键頁面的 HTML 源碼,確認連結是否按预期輸出。