做蜘蛛池入口页时,经常有人问:如果把目标链接加上 rel=“nofollow”,搜索蜘蛛还会不会顺着爬过去,把目标 URL 记进待抓队列?这个问题没有一刀切的答案,因为 nofollow 如今更多是一种提示,而不是一条禁止指令。
nofollow 到底限制的是什么
nofollow 最早是为了对抗评论区和论坛里的垃圾外链。它表达的语义是:这个链接不是我主动推荐的,请不要把权重算到对方头上。注意关键词是权重,不是抓取。
后来主流搜索引擎陆续把 nofollow 从硬性指令调整为提示信号。也就是说,一个带 nofollow 的链接,搜索蜘蛛依然可能在爬取入口页时把它加入队列并访问,只是访问之后大概率不传递权重、也不被当作推荐背书。
对“发现 URL”意味着什么
- 发现和权重是两件事:nofollow 主要影响权重与信任传递,对“能不能爬到”的影响有限,但也不是零。
- 爬虫会看整体质量:如果入口页内容单薄、外链几乎全是 nofollow,蜘蛛继续深入的意愿可能下降,抓取频次也会变化。
- 不同引擎行为不一致:有的仍会抓取目标页并尝试索引,有的会降低优先级,无法保证每次结果相同。
把 nofollow 当发现开关,通常不划算
加 nofollow 的人一般有两种目的:一种是“想让蜘蛛发现但不想传权重”,另一种是“不想让蜘蛛发现”。前者勉强说得过去,后者基本不可靠。
- 想阻止抓取,正确做法是 robots.txt 或 meta 限制,但那会连发现渠道一起切断,和目的相冲突。
- 入口页如果整页都是 nofollow 外链,链接模式看起来不自然,容易和低质目录页归为一类。
- 把 nofollow 当成控制发现的开关,往往两头落空:权重没控住,发现效率也下降。
更务实的做法:入口页保留少量自然、可跟随的链接,让蜘蛛有理由继续爬;目标 URL 的发现再通过 sitemap、主动提交、其他入口页等多条渠道覆盖,不要压在一个属性上。
什么情况下入口页用 nofollow 是合理的
- 页面里混有广告、赞助位、付费合作链接,按规范应当标注。
- 链接指向的页面质量参差不齐,你只想传递权重给少数重点页面。
- 入口页里存在站外联系页、备案信息等与目标 URL 发现无关的链接,可以顺手标注减少噪音。
换句话说,nofollow 是用来表达态度和分配权重的,不是用来管理抓取的。
怎么判断有没有生效
看服务器日志是最直接的办法。重点观察三件事:搜索蜘蛛是否访问了入口页;访问之后是否出现目标 URL 的抓取记录;抓取时返回的状态码和频率是否正常。
- 入口页有蜘蛛,不等于目标 URL 一定被抓,中间可能被拦截、超时或提前跳出。
- 目标 URL 被抓,也不等于会收录,收录还取决于内容质量、重复度和站点整体情况。
- 如果日志里目标 URL 长期为零或极少,可以先去掉 nofollow 再观察一到两周,对比前后变化。
几个容易忽略的细节
- rel=“nofollow” 写在 a 标签上才起作用,写在纯文本或 JS 变量里没有意义。
- 如果链接还被放在 noindex 的中间页上,发现路径会变长,效率更低。
- nofollow 与页面级 meta 限制、响应头限制不是一回事,别混着理解。
总结一下:入口页链接加上 nofollow,搜索蜘蛛仍有可能顺着发现目标 URL,但这是概率问题,不是保证。nofollow 更适合用来表达权重态度,不适合当作 URL 发现的开关。想让目标 URL 被稳定发现,多铺几条互不依赖的渠道,比在一个属性上反复纠结更有效。