常见问题

入口页链接写了 nofollow 或藏在隐藏区域:搜索蜘蛛还会不会跟进

入口页里的链接加了 nofollow,或者藏在 display:none 这类用户看不到的位置,搜索蜘蛛还会不会抓?本文区分抓取提示与作弊特征,讲清 nofollow、ugc、sponsored 的实际作用,说明隐藏链接为什么容易被识别,并给出更稳妥的链接摆放方式和日志验证思路。

常见问题

入口页链接写了 nofollow 或藏在隐藏区域:搜索蜘蛛还会不会跟进

在蜘蛛池入口页里放链接,常见的两种操作是:给链接加 rel="nofollow",或者把链接藏在用户看不到的位置。前者有人觉得能避免权重外流,后者有人觉得能多塞几条 URL 又不影响页面外观。这两种做法的实际差别很大,值得分开说。

nofollow 拦的是权重,不是抓取

rel="nofollow" 最早的语义是“不背书这个链接”,后来被明确为一种抓取提示。也就是说,搜索蜘蛛看到 nofollow 之后,是否抓取由它自己决定,很多情况下它仍然会去访问这个 URL——只是不一定通过这个链接传递权重,也不一定把它当作推荐信号。

所以,如果你的目的是让搜索蜘蛛发现入口页里的目标 URL,加 nofollow 通常不会成为决定性阻碍;但如果你的目的是让目标页从入口页拿到权重,那 nofollow 基本等于白放。

实际观察中,nofollow 链接的抓取比例往往低于普通链接,尤其是入口页本身权重不高、链接数量又很大时。也就是说 nofollow 会降低被抓的概率,而不是把概率清零。

ugc 和 sponsored 是另一回事

  • rel="ugc":用在用户生成内容里,同样表示不背书,效果和 nofollow 接近。
  • rel="sponsored":用于付费或广告性质的链接,是明确的声明。
  • 从抓取角度看,这两个和 nofollow 没有本质区别;从站点整体信誉角度看,用错了反而容易被标记成“链接交易”。蜘蛛池入口页里混用这几个属性,通常没有收益。

真正麻烦的是隐藏链接

把链接藏起来(用户看不见,但 HTML 里有)和 nofollow 是完全不同的性质。常见做法包括:

  • 用 display:none 或 visibility:hidden 包一层
  • 用 font-size:0、文字颜色和背景同色、text-indent 负值把文字挪出屏幕
  • 容器高度设为 0 并 overflow:hidden
  • 用绝对定位把链接放到视口之外
  • 把链接塞进极小的透明图片热区

这类做法在搜索引擎的链接质量评估里属于比较典型的作弊特征。搜索引擎不一定能识别每一种写法,但常见的几种识别成本很低。

被发现之后可能发生什么?各家规则不完全公开,但常见的处理方向是:链接被忽略(等于白放),或者入口页整体信任度下降,连带正常链接也被打折。两种情况都不划算。

判断标准其实很简单:用户能不能正常看到并点击这个链接。看不到,就不要指望搜索蜘蛛把它算作有效链接。

noscript 和图片链接呢

noscript 里的链接,在默认不执行 JS 的抓取环境下通常能被解析,属于可以用的位置,但不少爬虫也会执行 JS,前后内容重复反而显得刻意。纯图片热区链接(没有文字锚点)可以被抓取,但缺少锚文本,对目标页的帮助有限;如果图片本身还被 CSS 隐藏,那又回到隐藏链接的问题上。

更省事的做法

  1. 把目标 URL 放进普通可见的 a 标签,锚文本和页面主题相关,不要全是“点击这里”。
  2. 每个入口页的链接数量控制住,几十条以内比上千条更容易被完整抓取。
  3. 确实不想传递权重的地方才用 nofollow,不要整页默认都加。
  4. 不要用隐藏链接凑数量,收益低、风险高。

怎么验证有没有被跟进

回到日志:在服务器访问日志里看搜索蜘蛛的 UA 是否访问过目标 URL,访问时间点是否跟入口页被抓的时间接近。如果入口页天天被抓,目标页却从来没有对应的请求,那问题多半出在链接形态上(隐藏、nofollow 比例过高、JS 注入),而不是“入口页没被发现”。

把链接还原成用户可见的正常锚点,再观察一轮日志,通常比反复调整隐藏样式更快看出差别。