给蜘蛛池入口页的链接加上 rel=nofollow,是不少站长的习惯做法:既想让搜索蜘蛛顺着入口页爬到目标 URL,又不想让入口页把权重导出去。但这一步加上之后,很多人会发现日志里的抓取记录变得看不懂——目标 URL 有时被抓,有时完全不出现。nofollow 不是开关,它更像一个提示,而且不同搜索引擎对提示的采纳程度差别很大。
先把发现和抓取分开看
一个 URL 从入口页到最终被抓,要经过两个环节:
- 发现:搜索蜘蛛读取入口页 HTML,从超链接里提取出目标 URL,放进待抓队列。
- 抓取:蜘蛛根据队列里的 URL 发出请求,拿到目标站点的响应。
nofollow 主要影响的是第二个环节的意愿,但它并不等于删除链接。蜘蛛解析 HTML 时,链接本身仍然是一段可提取的地址,很多引擎仍会把这个 URL 记下来,只是降低优先级或不做权重传递。所以严格说,加了 nofollow 后 URL 仍可能被发现,只是抓取不被保证。
不同搜索引擎的差别
- Google:2019 年起把 nofollow 明确为一种提示(hint),可能忽略、也可能跟随。用于发现 URL 的情况仍然常见,但优先级与权重传递会受影响。
- Bing:同样把 nofollow 视为信号而非硬性指令,实际抓取行为还与站点整体质量、链接所在上下文有关。
- 百度:官方对 nofollow 的支持一直比较含糊,实践中不少站点反馈加了 nofollow 的链接依然会被抓取。把它当成阻止抓取的手段,风险很大。
也就是说,如果你的目标是让蜘蛛发现并抓取目标 URL,入口页链接加 nofollow 是在给自己增加不确定性,而不是一个稳定的控制手段。
加了 nofollow 后常见的两种误判
- 目标 URL 没被抓,就归因于 nofollow。更常见的原因其实是对应蜘蛛根本没来、入口页本身没被抓,或者目标站响应太慢、返回 5xx。
- 目标 URL 被抓了,就认为 nofollow 没用。可能只是蜘蛛把这行 HTML 按普通链接解析了,并不代表链接关系按你预期走。
什么时候才值得用 nofollow
nofollow 更适合用在你不希望蜘蛛浪费时间、也不希望形成链接关系的地方,例如:
- 入口页上的站外广告位、合作互换链接;
- 用户可自行提交的评论区、留言板链接;
- 与主题无关、只想收集 URL 的临时跳转页。
如果目的就是让目标 URL 被稳定发现,入口页上的这条链接最好不要随手加 nofollow。想控制权重传递,可以在链接上做更明确的关系标注;想彻底阻止抓取,则应使用 robots.txt 或目标页的 meta robots,同时注意 noindex 是允许抓取但不索引,与 robots.txt 的 disallow 是两回事。
排查时按这个顺序走
- 查看入口页源码,确认 nofollow 是否真的输出、有没有被模板或脚本覆盖改写。
- 对比服务器日志里搜索蜘蛛 IP 的请求记录,看是只抓入口页没抓目标,还是连入口页都很少来。
- 单独检查目标 URL 的可访问性、响应码、robots.txt 与 meta robots 设置。
- 如果想测试 nofollow 的影响,做小范围对照更靠谱:同一个目标 URL 分别放在带 nofollow 和不带 nofollow 的入口页上,观察一段时间的日志,而不是凭单次抓取下结论。
一句话总结:nofollow 影响的是链接关系和抓取意愿,不是 URL 能否被发现。入口页链接加不加它,取决于你想要的是发现,还是控制权重;想靠它精确控制搜索蜘蛛的行为,通常达不到预期。