搜索抓取

nofollow 链接与蜘蛛抓取:不传递权重,不等于不抓取

nofollow 常被误当成阻止蜘蛛抓取的工具,其实它主要表达链接关系,不传递权重,但链接仍可能被蜘蛛发现和访问。本文说明 nofollow 与 robots.txt、noindex 的区别,哪些场景适合使用,以及内链结构里怎样避免误伤 URL 发现和抓取路径。

搜索抓取

nofollow 链接与蜘蛛抓取:不传递权重,不等于不抓取

站内给链接加 nofollow 是很常见的操作,但围绕它的误解也很多。有人把它当成“禁止蜘蛛抓取”的开关,给一批链接加上 nofollow 后就等着蜘蛛不再访问;也有人担心加了 nofollow 会让整条抓取路径断掉。实际运行中,nofollow 的作用比这两个极端都要窄。

nofollow 到底在表达什么

nofollow 写在 a 标签的 rel 属性里,例如 rel="nofollow"。它最初的含义是告诉搜索引擎:这个链接不是站点的背书,不要把它当作投票或权重传递的依据。后来主流的处理方式有所变化,nofollow 更多被当作一种提示,而不是硬性指令。

它解决的是“权重和信任”的问题,不是“抓取和发现”的问题。换句话说,nofollow 并不等于 robots.txt 里的 Disallow,也不等于页面上的 noindex。

蜘蛛看到 nofollow 链接时,通常怎么做

链接仍然出现在 HTML 里,蜘蛛解析页面时能看到这个 URL。是否继续访问,取决于它自己的判断:链接在页面中的位置、页面重要性、同一 URL 是否从别处也能到达、抓取队列的压力等。

  • 从内链和 Sitemap 都能到达的 URL,即使某处加了 nofollow,蜘蛛也可能照样抓取。
  • 只在一个 nofollow 链接里出现、别处没有入口的 URL,被发现和抓取的概率会降低,但不等于零。
  • 已经抓取过的 URL,后续复查不受某一条 nofollow 的绝对限制。
把 nofollow 当成“阻止抓取”的工具,通常会得到相反的结果:你以为蜘蛛不会走,日志里却仍能看到访问记录。

哪些地方适合用 nofollow

  • 用户评论、论坛帖子里的外链,你无法审核目标页面质量。
  • 广告位、赞助内容、付费链接,需要明确标注关系。
  • 登录、注册、购物车、后台入口等没有索引价值、也不希望被搜索用户直接进入的链接。
  • 站内一些临时活动页、跟踪链接,确实不需要蜘蛛把抓取预算花在这里。

但要注意,nofollow 的站点侧效果是“建议不传递权重”,不是“从抓取路径里删除”。如果这些 URL 同时还有别的入口,蜘蛛仍然可能走到。

真正想控制抓取,该用什么

如果目标是“不让蜘蛛访问”,应该看 robots.txt 的 Disallow;如果目标是“可以抓但不要收录”,用页面级的 noindex;如果目标是“必须登录才能看”,让未登录请求返回合适的 401/403 或跳转登录页。三种手段解决的是不同问题,混用容易出错。

还有一个常见错误:给需要被收录的页面加了 nofollow,同时又指望它通过内链被蜘蛛发现。内链的发现价值和 nofollow 的权重提示是两码事,重要页面不必用 nofollow 来“节约权重”。

内链结构里,nofollow 要谨慎使用

主导航、面包屑、分类列表、分页、文章正文里的相关推荐,这些链接承担着 URL 发现和抓取路径的作用。如果大面积加 nofollow,蜘蛛从首页出发能走的层级会变少,新页面被发现的速度可能变慢。尤其是新站或内容更新频繁的站点,抓取路径本来就不宽裕,更不该把内链入口砍掉。

用日志验证,而不是靠猜

想知道蜘蛛有没有走 nofollow 链接,最直接的方式是看服务器日志。筛选带 rel="nofollow" 的链接对应 URL,观察是否有蜘蛛 User-Agent 访问,以及访问频率是否低于同页面的普通链接。连续观察一段时间,再决定是保留、移除还是换成 robots.txt 规则。

nofollow 是一个关于链接关系的标注,不是抓取开关。站点运营中更稳妥的做法是:把 nofollow 用在确实需要标注关系的地方,把抓取路径和 URL 发现交给清晰的内链、Sitemap 和合理的 robots.txt 规则来管理。