在蜘蛛池投放和入口页布置里,rel="nofollow" 是最容易被误用的属性之一。很多人听说 nofollow 可以“控制权重流向”,就顺手给入口页里的目标链接加上,随后又开始担心:搜索蜘蛛是不是就不会发现这些 URL 了?要回答这个问题,需要先把“发现 URL”和“传递权重”这两件事分开看。
nofollow 声明的到底是什么
nofollow 最早的作用是告诉搜索引擎:这个链接不是编辑推荐,别把它当成投票。它约束的是权重和信任的传递,而不是“禁止访问”。换句话说,加了 nofollow 的链接,目标地址依然写在 HTML 里,爬虫解析页面时照样能读到 href 的值。
所以从技术角度看,nofollow 不等于 noindex,也不等于 robots.txt 屏蔽。它通常不会阻止链接被发现,只是降低了对该链接的抓取意愿和信号传递。
主流搜索引擎现在的实际处理
Google 在 2019 年把 nofollow 从“指令”降级为“提示”,意思是它不再保证一定不跟进,只是作为一个参考信号。Bing 的说法也接近。也就是说,即便加了 nofollow,Google 仍然可能抓取该 URL,尤其是在它从别的地方也看到过这个地址的时候。
但这种“可能”不能当成确定性来依赖。实际观察中,被 nofollow 的链接,抓取优先级通常低于普通可跟随链接,首次发现时间可能被拉长,抓取频次也可能更低。对于主要靠入口页做 URL 发现的投放来说,这个差别并不小。
容易被忽略的几种“削弱发现”写法
除了单条链接的 nofollow,入口页里还有一些写法会让搜索蜘蛛对目标 URL 的兴趣下降,而且经常和 nofollow 同时出现:
- rel="nofollow sponsored" 或 "ugc":语义更明确的标记,同样属于提示性质,权重传递基本不计入。
- 链接外层包一层 JS 跳转:href 写成 javascript:void(0),真实地址放在 onclick 里,爬虫可能读不到目标 URL。
- 用 meta robots nofollow 控制整页:整页所有出链都被标记,影响范围比单条链接大得多。
- X-Robots-Tag: nofollow:通过 HTTP 响应头下发,覆盖范围和优先级都容易被忽略。
其中整页 nofollow 最需要小心,一条设置会同时影响页面上所有目标链接的发现优先级,排查时很容易漏掉。
投放时怎么处理更稳妥
- 面向 URL 发现的入口页,不要加 nofollow。既然目的就是让爬虫读到并跟进目标地址,就没必要人为设置阻力。
- 检查是否存在全局规则。模板、CMS 插件、CDN 配置都可能自动给外链加 nofollow,改完单页后还要确认没有被整体覆盖。
- 把 nofollow 用在真正需要的地方。比如用户留言、广告位、不可控的第三方链接,而不是自己的目标 URL。
- 多通道并行。入口页链接、sitemap、主动提交各管一段,不要把所有希望压在一个属性上。
一个常见的误区是:给链接加 nofollow 来“控制爬虫只抓我想抓的页面”。实际结果往往相反——你既没控制住抓取,又降低了目标 URL 被发现的概率。
结论
加了 nofollow 的链接,搜索蜘蛛依然可能读到并抓取目标 URL,但被发现的速度和优先级通常会打折扣。如果入口页的作用就是做 URL 发现,正确做法是保持链接干净可跟随,把 nofollow 留给真正不需要传递信号的场景。同时也要记住,属性设置只是影响抓取的一个因素,目标 URL 最终能否被收录,还要看页面本身的内容质量和站点整体表现。