在蜘蛛池入口頁里放連結,常见的两種操作是:给連結加 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 隐藏,那又回到隐藏連結的問题上。
更省事的做法
- 把目标 URL 放進普通可见的 a 标簽,锚文本和頁面主题相關,不要全是“点击這里”。
- 每個入口頁的連結數量控制住,几十條以内比上千條更容易被完整抓取。
- 确實不想传递權重的地方才用 nofollow,不要整頁預設都加。
- 不要用隐藏連結凑數量,收益低、風險高。
怎么驗證有没有被跟進
回到日誌:在服務器訪問日誌里看搜尋蜘蛛的 UA 是否訪問過目标 URL,訪問時間点是否跟入口頁被抓的時間接近。如果入口頁天天被抓,目标頁却從来没有對應的請求,那問题多半出在連結形態上(隐藏、nofollow 比例過高、JS 注入),而不是“入口頁没被發現”。
把連結還原成用戶可见的正常锚点,再观察一轮日誌,通常比反复調整隐藏样式更快看出差別。