在蜘蛛池入口页上放目标链接时,很多人会习惯性给链接加一个 rel=“nofollow”,理由通常是“不想把权重分出去”或者“看着更安全”。加完之后又开始纠结:搜索蜘蛛看到这个属性,是不是就不跟过去了?这个问题没有一句话的答案,关键是要把“发现 URL”和“传递权重”分成两件事来看。
nofollow 管的是权重,不是发现
rel=“nofollow”最初的含义是告诉搜索蜘蛛:这个链接不算投票,别把权重算到目标页头上。它并不是一条“禁止访问”指令。真正用来拦住抓取的,是 robots.txt 里的 disallow,或者页面级的 noindex(针对页面能不能被收录)。三者作用的对象完全不同:一个针对链接,一个针对抓取路径,一个针对页面索引。
所以从原理上说,带 nofollow 的链接里的 URL 仍然可能被抓取,也可能被收录。实际会不会抓,取决于搜索引擎对 nofollow 的解释程度和它自己的抓取策略。
不同搜索引擎的处理差别
- Google:把 nofollow 当成“提示”而不是硬性指令,明确表示仍会把 nofollow 链接作为发现新 URL 的线索,只是不计入排名信号。
- 必应:同样倾向把 nofollow 视为提示,发现 URL 的路径通常保留。
- 百度:官方口径长期是 nofollow 不传递权重,但对“是否抓取”没有完全明确的承诺,实际表现受抓取配额和页面整体质量影响。
- 其他蜘蛛:实现差异更大,有的直接跳过,有的照常排队,很难一概而论。
把这些放在一起看,就会明白一件事:把 nofollow 当成“能阻止抓取”是一个很常见的误判。它更像是“我不为这个链接背书”,而不是“这条路封了”。
想确认目标 URL 到底抓没抓,看这三处
- 服务器访问日志:按目标 URL 的路径过滤,看有没有搜索引擎 UA 的请求记录,重点看第一次出现的时间点。
- 入口页自身的抓取记录:如果搜索蜘蛛来了入口页,却没请求目标 URL,说明这个链接大概率被跳过了,而不是没排上队。
- 站长平台:提交目标 URL 后,看抓取诊断、抓取频次,以及“已发现未抓取”这类状态的停留时长。
如果日志里入口页被抓了很多次,目标 URL 却一次都没出现,先排查的通常不是 nofollow,而是链接到底有没有以 a href 的形式写在 HTML 源码里。用 JavaScript 动态插入、放在 iframe 内、做成图片或按钮的链接,都可能让搜索蜘蛛拿不到这个 URL。
一个实用的排查顺序:能不能被抓(robots、防火墙、状态码)→ 链接是否出现在 HTML 源码里 → 是否带了 nofollow、noindex 之类的属性 → 最后才去看抓取配额和调度节奏。顺序颠倒,很容易把问题归错因。
什么时候该加,什么时候没必要加
- 目标页是正规内容页、希望被尽快发现:不加。入口页上的主要出口链接加 nofollow,只会增加不确定性。
- 页面里塞满了广告位、用户评论外链、明显的垃圾链接:加。避免入口页本身被贴上垃圾链接的标签。
- 链接只是辅助跳转、对抓取没有诉求:加不加影响不大,重点还是别让入口页整体变成低质页面。
两个容易被忽略的点
第一,nofollow 只是一个链接属性,它不会让入口页变得更被信任。入口页内容空、模板高度重复、同一 IP 下堆了大量同质页面,这些才是抓取频率下滑的主因,改属性解决不了。
第二,同一个页面里混用 nofollow 和普通链接,并不会让搜索蜘蛛“更聪明”,它只是给不同链接分配不同的权重信号而已。
最后提醒一句:任何属性都不能保证收录或抓取。能做的,是把可能挡住搜索蜘蛛的环节一个个排除掉,剩下的事情交给抓取调度和页面质量。与其反复纠结 nofollow,不如先把入口页的链接写清楚、状态码返回正常、日志能对得上,这些才是可验证的部分。