搭蜘蛛池入口页时,很多人会顺手给链接加上 rel="nofollow",理由通常是「不想把权重传出去」。但这个动作对「搜索蜘蛛能不能发现目标 URL」这件事的影响,和想象中不太一样。下面按几个常见误区拆开说。
先区分:nofollow 是「别传权重」,不是「别来抓」
rel="nofollow" 最早的含义是「这个链接我不背书」,后来各大搜索引擎陆续把它从硬性指令改成了提示(hint)。也就是说,看到 nofollow,搜索蜘蛛通常仍会抓取那个 URL,只是不太会把权重和信任度传过去。
所以如果入口页的目标只是「让搜索蜘蛛知道有这么个 URL」,加 nofollow 并不会直接把路堵死。但如果你的目标是让目标页拿到一些链接权重,那 nofollow 确实会让这部分效果打折。
链接级 nofollow 和页面级 nofollow 是两回事
- 链接级:写在 a 标签上的 rel="nofollow",只影响这一条链接。
- 页面级:写在 meta name="robots" content="nofollow" 或响应头 X-Robots-Tag 里的 nofollow,影响的是整个页面上的所有链接。
实际排查里最常见的事故,是把页面级 nofollow 误加在入口页模板上,结果整页链接都变成了「提示不跟随」。这种问题往往在模板复制时被带进去,很难第一眼发现。
搜索蜘蛛到底会不会抓 nofollow 链接
没有统一答案,取决于搜索引擎和当时的判断。可以这样理解:
- nofollow 是提示,不是禁令,抓取仍可能发生;
- 如果页面本身已经有大量可抓链接,蜘蛛对 nofollow 链接的兴趣通常更低;
- 如果入口页几乎没有别的出路,蜘蛛仍可能顺着 nofollow 链接走一趟。
把 nofollow 当成「降低优先级」,比当成「彻底屏蔽」更接近实际情况。
真正容易挡住 URL 发现的是这些
如果你关心的是目标 URL 能否被发现,比 nofollow 更值得先检查的是:
- 链接是否被 robots.txt 里的 Disallow 命中;
- a 标签的 href 是否是空值或 javascript: 伪协议;
- 链接是否由 JS 在点击后才生成,初始 HTML 里根本没有;
- 页面是否返回 noindex,或者被 X-Robots-Tag 覆盖。
还有一类是 rel="sponsored" 和 rel="ugc"。它们同样属于提示性属性,语义上分别对应广告合作和用户生成内容。如果只是随手从别处复制模板带进来的,也会让蜘蛛对这条链接的权重传递打折扣。
什么时候该加,什么时候不该加
入口页里指向自己目标 URL 的链接,一般不建议加 nofollow——你本来就是希望被发现的。真正适合加的场景,通常是明显的广告位、用户可自由提交的评论区链接,以及你不想背书的第三方站点。
如果确实想控制权重流向,更稳的做法是控制入口页上链接的数量和位置,而不是一刀切地全加 nofollow。
排查建议
发现目标 URL 迟迟没有抓取记录时,可以按这个顺序看:先确认入口页 HTML 源码里链接是否真实存在,再看链接有没有被链接级或页面级 nofollow 覆盖,然后检查 robots.txt 与 X-Robots-Tag,最后看服务端返回状态。多数「加了 nofollow 就完全没动静」的案例,真正原因其实在后面几个环节。