搜索抓取

nofollow 链接与 URL 发现:蜘蛛会跟,还是只是记下地址

链接加了 nofollow,不代表蜘蛛一定看不到目标 URL。不同爬虫对 nofollow、ugc、sponsored 的处理并不完全一致,现代搜索引擎更多把它当作提示。本文梳理链接属性对 URL 发现、抓取优先级和内链结构的影响,并给出更稳妥的使用方式。

搜索抓取

nofollow 链接与 URL 发现:蜘蛛会跟,还是只是记下地址

先说结论:nofollow 不等于“蜘蛛看不见”

很多运营者把 nofollow 当成一道墙:只要给链接加上这个属性,蜘蛛就不会去访问目标 URL。实际执行中,这件事没有这么绝对。链接属性能表达“我不为这个链接背书”,但爬虫是否跟过去,还取决于它自己的策略、链接所在页面、目标地址的历史质量,以及该 URL 是否从其他入口已经被发现。

需要区分两件事:URL 被发现页面被判断价值。nofollow 更多影响后者,或者影响抓取优先级;它并不天然等于“从发现队列里删除”。

三种常见链接属性分别表达什么

  • nofollow:表示不推荐、不背书这个链接,常见于用户评论、不可控内容和不想传递信号的链接。
  • ugc:用户生成内容中的链接,比如论坛、评论区、问答区。
  • sponsored:广告、赞助、付费合作等商业链接。

这三种属性主要面向搜索引擎的价值判断,不是抓取开关。Google 在 2019 年后把 nofollow 等属性视为“提示”,而不是绝对指令;其他爬虫的跟进程度和解释方式并不完全一致,所以不适合把它们当作精确的抓取控制工具。

蜘蛛看到 nofollow 链接后,通常怎么处理

常见情况是:页面被抓取时,爬虫仍然可能把 nofollow 链接中的 URL 记下来,放入待发现或待抓取队列,但可能降低优先级、减少后续访问,或者不把它当作排名信号。尤其是在同一页面已有大量可跟随链接时,nofollow 链接被跟进的概率会下降,但它不是零。

如果目标 URL 还出现在 Sitemap、其他页面的普通链接、外链或历史记录中,它照样可能被正常抓取。反过来,如果目标 URL 只存在于一个 nofollow 链接里,并且站点没有其他入口,那么它的发现速度和稳定性就会明显变差。

想阻止抓取,优先考虑 robots.txt;想阻止收录,通常要允许抓取后再用 noindex。把 nofollow 当唯一手段,容易两头都做不彻底。

哪些场景适合使用 nofollow

  1. 用户评论、论坛签名、留言板等不可控的 UGC 链接。
  2. 广告、赞助内容、联盟链接等商业合作链接。
  3. 登录、注册、购物车、结算等对搜索没有索引价值的页面链接。
  4. 明显不可信的外部站点链接,避免留下推荐信号。

这些场景中,nofollow 的主要作用是信号管理,而不是抓取管理。它不会阻止有决心的爬虫继续探测,也不能替代 robots.txt 和权限控制。

站点运营中常见的几个误区

  • 用 nofollow 控制抓取预算:效果有限。真正占用抓取的是大量可访问但低价值的 URL,需要从入口和结构上收敛。
  • 给全站内链加 nofollow:这会切断重要页面的发现路径,让蜘蛛只能依赖 Sitemap 或外链,深层页会变得更难被抓。
  • 认为 nofollow 能防收录:如果 URL 被其他页面正常链接,或者被抓取后判定可索引,仍可能出现在搜索结果中。
  • 蜘蛛池或站群场景里滥用 nofollow:大量导出链接即使加了属性,也可能被爬虫探测到,重点还是链接质量和入口结构。

更稳妥的内链与抓取安排

重要页面尽量使用普通的可抓取链接,保持锚文本自然、路径层级清晰。Sitemap 用来补充发现,内链用来强化路径,robots.txt 用来排除明确不想抓的目录。对确实需要标注的评论、广告和商业链接再使用 nofollow、ugc、sponsored,而不是把它们当成全站抓取策略。

如果发现某个 URL 一直不被抓取,先检查它有没有至少一个可跟随的入链,再检查服务器是否稳定、页面是否返回正常状态。nofollow 只是其中一个变量,不是决定抓取与否的唯一开关。