常见问题

入口页里的链接加了 rel=nofollow,搜索蜘蛛还会发现并抓取吗?

nofollow 常被当成“隐藏链接”的手段,但它对搜索蜘蛛的实际影响常被高估。本文说明 nofollow 的提示属性、不同搜索引擎的处理差异,以及在蜘蛛池入口页里加 nofollow 后 URL 发现、抓取优先级会怎么变化,并给出更可靠的控制抓取与排查思路。

常见问题

入口页里的链接加了 rel=nofollow,搜索蜘蛛还会发现并抓取吗?

在蜘蛛池入口页里给链接加上 rel=nofollow,很多人是出于两个目的:一是控制权重流向,二是希望搜索蜘蛛“别抓这些 URL”。第一个目的通常能达到,第二个目的往往达不到。要判断它到底有没有用,得先分清“发现 URL”“抓取 URL”“收录 URL”是三个不同的环节。

先说结论

nofollow 现在更像一个提示,而不是硬性指令。入口页 HTML 里的 href 依然会被解析,URL 依然可能进入抓取队列;nofollow 影响的主要是这条链接能传递多少信任与权重,以及抓取调度时的优先级。它不等于“禁止抓取”。

nofollow 本来是干什么的

这个属性最早是给论坛、评论区、用户投稿这类 UGC 场景用的:页面作者无法为每条外链背书,于是标记为 nofollow,告诉搜索引擎不要因为这条链接而传递权重。后来它被扩展出 rel=ugc、rel=sponsored 等更细的标记,用途基本围绕“这条链接我不背书”。

也就是说,它的设计初衷是信任与权重问题,不是访问权限问题。

不同搜索方的处理并不一致

  • 主流商业搜索引擎:大多已把 nofollow 描述为“提示”。遇到需要被发现的 URL,仍可能跟随抓取,只是处理权重时会打折扣。
  • 不同引擎之间:权重折算方式、是否跟随,各有各的实现,很难用一句话概括。
  • 各类站内爬虫与第三方工具:很多只看链接结构,根本不解析 nofollow,照样会访问。
  • 同一引擎的不同阶段:发现阶段和排序阶段的处理也可能不一样。

所以,把 nofollow 当成一把“谁都不许进”的锁,前提就不成立。

入口页加 nofollow 后,实际会发生什么

  1. URL 仍可能被发现。只要链接写在 HTML 的 href 里,解析阶段就能拿到这个地址,进入待抓列表的机会依然存在。
  2. 抓取优先级可能下降。在抓取预算有限的站点上,nofollow 链接被排到后面的概率会更高,原本一天抓完的,可能变成几天。
  3. 想彻底藏住链接,基本做不到。真正阻断抓取要靠 robots.txt、访问权限或验证机制,而不是一个链接属性。
  4. 对目标站的影响不对称。入口页的 nofollow 主要削弱这条链接的权重信号,但并不阻止目标 URL 被访问和评估。

哪些情况下反而适合加

  • 入口页里有用户提交、无法审核的内容链接。
  • 页面是资源聚合页,指向的第三方地址与站点定位无关。
  • 链接指向临时页、测试页、已下线的地址。
  • 你明确不希望把权重分配到某个方向,但又不介意它被访问。

想控制抓取,比 nofollow 更靠谱的手段

  1. robots.txt 的 Disallow:从抓取层面拦截。注意 URL 若被别处链接指向,仍可能进入待抓队列,只是抓不到内容。
  2. meta robots 或 X-Robots-Tag 的 noindex:管的是“能不能收录”,一般不影响发现与抓取。
  3. 登录、验证码、白名单:从访问权限上直接挡住,蜘蛛也一样进不来。
  4. 日志校验:结合 UA、IP 反查,判断来访的是不是真实搜索蜘蛛,再决定策略。

一句话区分:nofollow 管的是信任与权重,robots.txt 管的是能不能抓,noindex 管的是能不能收录。三者经常被混用,效果自然也常常对不上预期。

排查时看什么,而不是看什么

如果你在入口页加了 nofollow,想确认“目标 URL 到底有没有被访问”,最直接的办法是看目标站或入口页的访问日志:有没有对应蜘蛛的抓取记录、抓取时间分布、返回状态码是什么。只看页面代码里有没有写 nofollow,是得不到结论的。

另外也要注意,入口页的价值主要在于让 URL 被看见。如果为了控制权重而把链接全部标成 nofollow,同时又指望它们承担发现任务,这两件事本身就有冲突,需要按实际目标取舍。