不少站点为了控制权重流向,或者不想给外链背书,会给大批链接加上nofollow。过一段时间回头看,新页面迟迟没有被抓取,于是把原因全部算在nofollow头上。实际上,nofollow和URL发现之间的关系,需要拆成发现、抓取、索引三个环节分别看,混在一起谈容易得出错误结论。
nofollow现在到底代表什么
nofollow最早的含义是“不要跟随这个链接”,即不传递权重、不保证抓取。2019年之后,主流搜索引擎把它从硬性指令弱化为提示,官方说法是将其作为排序时的参考因素之一,而不是绝对禁止。这意味着,即使链接带nofollow,搜索蜘蛛仍可能在解析HTML时读到href,只是后续处理方式发生了变化。
三个环节分别会发生什么
- 发现:nofollow通常不阻止爬虫解析页面里的链接,URL仍可能进入待抓取队列。
- 抓取:是否真的抓取取决于抓取配额、页面重要性和链接上下文,nofollow不构成绝对门槛。
- 索引:如果被抓取的页面本身允许索引,且内容质量和外部信号满足条件,它仍可能进入索引。nofollow不等于noindex。
换句话说,nofollow影响的是链接关系,不是URL本身能不能被访问。
真正会挡住搜索蜘蛛的写法
- robots.txt的Disallow:阻止抓取内容,但其他页面上的链接仍可能被发现,于是常出现“已发现但未抓取”的状态。
- meta robots noindex:允许抓取,但要求不进索引,这是控制索引的正确工具。
- X-Robots-Tag:通过HTTP头下指令,适合PDF、图片等非HTML资源。
- rel="sponsored"与rel="ugc":用于广告和用户生成内容,性质与nofollow类似,都属于提示。
想彻底不让抓取,用robots.txt;只想不进索引,用noindex。把nofollow当开关用,通常两头都做不好。
蜘蛛池投放的URL和nofollow的关系
蜘蛛池的作用是给新URL制造外部入口,让搜索蜘蛛有更多机会碰到它。站内链接的nofollow主要影响站内路径的传递,与外部投放渠道是两条独立的线。常见的情况是:导航和列表页全加了nofollow,站内发现路径被掐断,同时外部投放的链接也没被真正抓取,结果是两边都没走通。这时应该优先恢复关键路径上的普通链接,而不是把希望全部押在外部投放上。sitemap也是同样道理,它是一个补充入口,不能替代站内链接。
nofollow控制的是链接关系,不是URL能不能被抓。把它当成抓取开关,往往会做错方向。
实操上的判断顺序
- 先明确目的:是不想传递权重、不想背书,还是想完全禁止抓取和索引。
- 再选工具:禁止抓取用robots.txt,禁止索引用noindex,只是不想背书用nofollow。
- 保留至少一条普通链接路径:栏目页、相关推荐、上一篇下一篇,任选其一即可。
- 看服务器日志:按User-agent过滤搜索蜘蛛,确认目标URL是否出现、返回了什么状态码。
- 做对照:把同一批URL分成有普通链接和只有nofollow链接两组,观察一段时间内被访问的比例差异。
几个常见误区
- 以为nofollow加多了就等于屏蔽爬虫。
- 站内链接全部nofollow,指望靠外部投放解决发现。
- nofollow和noindex混用,既不想被抓又希望被发现。
- 认为提交进sitemap的URL就一定会被抓取。
结论并不复杂:nofollow不等于关闭发现通道,但它确实会降低这条路径被优先处理的概率。要判断有没有被搜到,看日志比看代码更直接。搜索蜘蛛的行为会随站点权重、内容更新频率和抓取配额变化,不存在某个写法保证一定被抓的结果,只有概率上的差别。