搜尋抓取

nofollow、ugc、sponsored:蜘蛛遇到這些連結时還會不會繼續走

内鏈上的 rel 属性经常被当成抓取開關,實际它只是連結性质的标注。本文說明 nofollow、ugc、sponsored 對蜘蛛抓取路径的真實影响,梳理三個常见誤解,並给出适合使用的场景與驗證方法。

搜尋抓取

nofollow、ugc、sponsored:蜘蛛遇到這些連結时還會不會繼續走

内鏈是蜘蛛發現新 URL 的主要通道,而連結上的 rel 属性會改變蜘蛛處理這條連結的方式。很多站点把它当成一個開關,加了就以為蜘蛛一定不走;也有人完全不敢用,怕影响抓取。實际規則比這两種理解都细一些。

rel 属性在告诉蜘蛛什么

rel="nofollow" 最早的含义是不要沿着這條連結繼續传递權重,後来逐步演變成對連結性质的一種标注。目前主流搜尋引擎把它视為提示(hint),而不是必须执行的指令。也就是说,加了這個属性,連結仍然可能被蜘蛛走到,只是它在排序信号上的作用被弱化。

两個變体常被一起提到:rel="ugc" 用于用戶生成内容里的連結,rel="sponsored" 用于付費或赞助性质的連結。它們和 nofollow 想表達的意思接近,区別在于语义更明确。

三個常见的誤解

一、加了 nofollow 蜘蛛就不抓

這是最常见的想当然。蜘蛛是否抓取某個地址,取决于它對站点整体的抓取安排、這條連結所在的位置和上下文,以及该 URL 是否在別處也被引用。nofollow 更接近“我不為這條連結背书”,而不是“這條連結不存在”。

二、頁面級和連結級是一回事

頁面級寫法 作用于整頁所有出鏈;連結級 rel="nofollow" 只作用于那一條。前者影响范围大得多,改動前最好確認整頁出鏈里有没有需要被蜘蛛走到的重要地址,比如分頁、栏目入口。

三、用 nofollow 省抓取预算

靠它来省抓取预算,效果並不稳定。如果目标是不让蜘蛛請求某個地址,robots.txt 的 Disallow 更直接;如果是想让某個頁面不進索引,應该用 noindex。拿 nofollow 去挡這两件事,往往两邊都達不到预期。

比較适合使用的场景

  • 用戶评论、论坛簽名里自動生成的連結,性质不可控,标注 ugc 更清楚。
  • 付費推廣、联盟連結,标注 sponsored 是基本要求。
  • 登入、註冊、购物车、打印頁這類没有检索價值的頁面入口,可以在内鏈层面做處理。
  • 指向站外、你不想為其背书的地址。

反過来,站点自己的栏目頁、詳情頁、分頁、Sitemap 里列出的地址,一般不應该被 nofollow 覆盖,這些正是蜘蛛需要走的路。

内鏈上的 rel 属性只影响這條連結的信号强度,不负责决定蜘蛛能不能請求這個地址。想控制抓取,用 robots.txt;想控制索引,用 noindex。三者分工不同,混用容易出現意料之外的结果。

怎么確認處理结果

改動之後不要只看頁面源碼,去看服務器日誌里蜘蛛對相關 URL 的請求有没有變化,再用抓取統計观察一段時間。如果一批原本能走到的地址在改動後請求量明顯下降,說明覆盖范围给大了。稳妥的做法是:先在小范围頁面加上,观察几周,再决定要不要推廣到其他位置。

另外要注意,rel 属性描述的是頁面上可见的連結,通過外鏈或其他外部通道引入的連結不在這套規則里,两邊的處理逻辑不要混在一起讨论,否則很难判断問题出在哪一层。