搜索抓取

被 nofollow 的链接,蜘蛛还会不会走:URL 发现与权重传递不是一回事

站内给链接加上 nofollow,很多人以为蜘蛛就不会再走这个入口。实际上 nofollow 主要影响的是权重传递和引擎对链接的信任判断,URL 发现仍可能通过其他路径完成。本文梳理 nofollow 在抓取环节的实际作用、常见误用,以及更合适的替代方案。

搜索抓取

被 nofollow 的链接,蜘蛛还会不会走:URL 发现与权重传递不是一回事

站内链接上加一个 rel="nofollow",是不少运营和开发的习惯动作。加完之后,蜘蛛到底还会不会顺着这条链接走过去,答案往往和直觉不太一样。

nofollow 原本想解决什么问题

这个属性的原始用途,是标记“这个链接不是本站主动背书的”。典型场景是不可信的外部链接、广告位、联盟链接和用户生成内容。它的核心语义偏向不要把它当作一次投票,而不是“不要访问这个地址”。

把这句话记住,后面很多困惑就容易理解了:nofollow 管的是链接信号,不是服务器访问权限。

蜘蛛遇到 nofollow 链接时的实际动作

  • 多数搜索引擎会降低或忽略这条链接传递的权重信号。
  • 是否抓取目标 URL,各家引擎策略并不统一,有的仍会把该地址纳入发现队列。
  • 即便站内全部加了 nofollow,这个 URL 也可能通过 Sitemap、外部链接或其它内链被找到。

所以,看到一个 nofollow 链接对应的 URL 仍然出现在抓取日志里,并不代表设置失效,而是它本来就属于另一个层面的问题。

URL 发现与权重传递是两件事

把流程拆开会更清楚:发现(蜘蛛知道这个地址存在)、抓取(服务器返回了内容)、索引(引擎判断是否入库)、排序(在结果中排到什么位置)。nofollow 主要作用于后两者之间的信号判断,对“服务器有没有被访问”这件事影响有限。

站内用 nofollow 的几个常见误区

把它当成 robots.txt 用

robots.txt 是抓取层面的规则,告诉蜘蛛哪些路径不必来请求;nofollow 是页面内链接层面的提示。想阻断抓取,靠 nofollow 是放错了位置。

用它来“节省抓取预算”

效果通常有限。真正影响预算的是站点里存在多少低价值、重复、无法访问的 URL,以及服务器响应是否稳定。与其逐个链接加标签,不如先把无意义的参数页、空列表页收敛掉。

给重要栏目入口加 nofollow

站内导航、栏目入口这类链接,是蜘蛛建立抓取路径的骨架。给它们加 nofollow,可能让该栏目下的一批 URL 发现变慢,行走半径变窄,得不偿失。

更合适的替代做法

  1. 不希望被抓取:用 robots.txt 划定范围,注意规则写清楚,避免误伤。
  2. 可以抓取但不希望被索引:用 noindex。需要留意的是,noindex 页面本身仍可能被请求。
  3. 同一内容多个地址:用 canonical 指明主版本,而不是靠 nofollow 硬压。
  4. 低价值参数页或筛选页:从内链结构上收敛,必要时再配合 robots.txt。
  5. 用户生成内容、广告位:nofollow 或同类属性仍在合理使用范围内,同时配合审核机制。
几种机制各管一段:robots.txt 管抓取范围,nofollow 管链接信号,noindex 管是否入库,canonical 管重复归并。不要指望一个标签解决全部问题。

怎么确认设置有没有起作用

比较实际的做法是看日志:观察被标记链接对应的 URL,是否仍有蜘蛛请求。如果仍被访问,通常是正常的;真正需要关注的是这些请求带来了什么结果,页面是否返回 200、内容是否与预期一致、是否反复抓取同一批无变化地址。

如果发现某类 URL 被大量重复抓取,先排查内链是不是把它们放在了导航、列表等高频位置,再考虑是否需要调整结构,而不是急着加 nofollow。

总结一句:nofollow 是一个表达态度的属性,不是一道门禁。想控制蜘蛛走哪条路,最终还是要回到站点结构、服务器响应和 URL 本身的取舍上。