做入口页的人经常在抓取日志里发现一个现象:页面上明明挂了目标站的链接,搜索蜘蛛也来抓了入口页,但目标 URL 一直没被访问。排查半天,最后在页面源码里看到那一行 rel="nofollow"。它可能是模板自带的,可能是某个外链插件自动加的,也可能是从别处复制内容时一起带过来的。这篇文章把 nofollow 和搜索蜘蛛跟进链接的关系讲清楚。
nofollow 现在到底起什么作用
早期 nofollow 被理解成一条硬指令:加了它,搜索引擎就既不传递权重,也不跟进这个链接。但这套理解早就过时了。现在主流搜索引擎基本把 nofollow 当作一种提示而非命令,也就是说引擎可以采纳,也可以不采纳,具体怎么处理由各自的算法决定。
更关键的一点是:nofollow 原本主要是用来表达“这个链接不是我推荐的”,它并不是一个用来控制抓取的开关。想控制抓取,该用的是 robots.txt 或者干脆不放这个链接。
加了 nofollow,搜索蜘蛛还会不会跟进去
结论分两层:
- 会不会发现这个 URL:如果一条 URL 只通过 nofollow 链接出现在互联网上,被主动发现的概率会明显下降。搜索引擎更倾向于把 nofollow 链接排除在 URL 发现渠道之外。
- 会不会抓取这个 URL:不一定。如果这个目标 URL 从别的地方(外链、sitemap、其他站点)已经被发现过,引擎照样可能去抓,只是这时抓取和你的入口页没关系了。
换句话说,假设你的目的就是让搜索蜘蛛通过入口页跟进到目标 URL,那么加上 nofollow 基本等于把这条路堵死了一半,剩下的部分还要看引擎心情。这不是一个值得赌的事情。
不同搜索引擎的处理并不一致
这一点在入口页这种场景下尤其要注意,因为你的访客不只有一家引擎的蜘蛛。
- Google 官方明确说过 nofollow 是 hint,且会综合链接上下文判断,处理相对灵活。
- 百度对 nofollow 的官方说明比较简略,实际表现也更不透明,很多站长反馈加了 nofollow 的外链确实很少被跟进。
- 其他中小引擎的处理方式各不相同,有的完全忽略,有的严格遵循。
所以不要用一句“nofollow 现在不算数”来概括所有情况。对入口页来说,能不加就不加是最省心的做法。
什么情况下该加,什么情况下绝不该加
建议保留正常 follow 的情况
- 入口页里指向目标站的链接,这是核心目的,必须让蜘蛛能跟。
- 指向自己站内其他入口页、栏目页的内部链接,这类链接被 nofollow 掉反而会削弱站点结构。
- 合作站之间的互换链接,如果双方都希望被跟进,就别互相加 nofollow。
确实可以考虑加 nofollow 的情况
- 页面上有用户评论、留言板这类不可控内容,里面可能被塞垃圾链接。
- 指向广告位、赞助内容,用 rel="sponsored" 更准确。
- 指向你并不希望被关联的站点,比如纯工具类、测试类地址。
注意,如果你的真实目的是“不想让蜘蛛抓这个链接”,用 nofollow 是个错误工具。正确做法是 robots.txt 禁止抓取,或者不要把这条链接放出来。
怎么排查入口页上的链接有没有被动加了 nofollow
这类问题往往不是手动加的,而是模板或插件批量注入的。可以按下面几步查:
- 在浏览器里打开入口页,右键查看网页源代码,搜索 nofollow,看命中了几处、分别在哪。
- 看是不是所有外链都被加了。如果全部外链都有 nofollow,基本可以确定是某个插件或主题在统一处理。
- 检查内容编辑器。有些编辑器复制粘贴时会保留源页面的 rel 属性,粘一次带一条。
- 检查是否有跳转外链插件,这类插件默认会把站外链接改成跳转地址并加上 nofollow,等于同时改变了 URL 和属性。
- 用抓取工具或者页面上线后抓一份快照,过一段时间再抓一次对比,确认属性没有被后台某次改动带回来。
排查完建议在模板层面直接关掉自动加 nofollow 的逻辑,而不是每次发内容都手动改一遍。手工维护迟早会漏。
一个更实际的判断方式
与其纠结 nofollow 到底算不算数,不如换个角度问自己:这条链接存在的意义是什么?
如果意义就是让搜索蜘蛛从入口页跳到目标 URL,那这个属性就是障碍,去掉它是最直接的解法。如果意义只是给真实用户看,那加不加影响都不大。
入口页的每个属性改动,最终都会反映在抓取日志里。与其事后猜测,不如上线前先看一眼源码,确认链接是干净可跟随的。
最后提醒一句:nofollow 只是影响链接能不能被跟进的因素之一,链接本身能不能被抓、页面质量如何、目标 URL 是否可访问,这些同样会影响最终结果。把它当成排查清单里的一项,而不是唯一的答案。