搜索抓取

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 属性描述的是页面上可见的链接,通过外链或其他外部通道引入的链接不在这套规则里,两边的处理逻辑不要混在一起讨论,否则很难判断问题出在哪一层。