很多人在搭建蜘蛛池入口頁时,會给指向目标 URL 的連結加上 rel="nofollow",想法很直接:让搜尋蜘蛛顺着入口頁爬,但不要把入口頁的連結權重分出去,或者干脆是想让蜘蛛別太快發現目标頁。结果日誌里入口頁天天有蜘蛛,目标 URL 却迟迟不见訪問。問题往往不在蜘蛛池本身,而在于對 nofollow 的理解有偏差。
nofollow 不是“禁止抓取”指令
rel="nofollow" 最早的定位是“不要把這個連結当作投票”,用来對付评论区里的垃圾外鏈。它從来不是一個“禁止爬虫訪問這個 URL”的開關。真正禁止抓取的是 robots.txt 的 Disallow;頁面級的 noindex 管的是“不要收錄這一頁”,同样不等于禁止抓取。
換句话说,一個带 nofollow 的連結,搜尋蜘蛛仍然可能去抓取它指向的 URL,尤其是在這個 URL 已经從別處被發現、或者入口頁本身被抓取频次很高的情况下。nofollow 更多是“降低優先級”和“不传递連結權重”,而不是“切断裂路径”。
不同搜尋引擎對 nofollow 的處理並不一致
Google 從 2019 年起把 nofollow 從“指令”改成“提示”,同时引入 rel="sponsored" 和 rel="ugc" 来区分广告連結和用戶生成内容。Bing 大体也按提示處理。但一些中小型搜尋引擎、以及部分自建爬虫,仍可能把 nofollow 当作硬性指令,直接跳過。
對蜘蛛池来说,這意味着同一套入口頁模板,在不同搜尋引擎上的抓取表現可能完全不同。你观察到的“加了 nofollow 還是有蜘蛛来”,很可能只是那一家引擎把它当提示;換一家引擎,结论就可能反過来。
几個常见誤区
誤区一:用 nofollow 隐藏指向目标 URL 的連結
有些做法是入口頁正常展示内容,但把跳轉連結寫成 nofollow,希望蜘蛛只抓入口頁、不抓目标頁。實际上,蜘蛛抓不抓目标 URL,主要取决于這個 URL 有没有被其他路径發現、以及目标站本身的可抓取狀態。入口頁加不加 nofollow,影响没有想象中那么大。
誤区二:nofollow 和 noindex 混着用
给連結加 nofollow,给頁面加 noindex,是两件事。前者管連結關系,後者管這一頁要不要出現在索引里。noindex 頁面里的普通連結,蜘蛛仍然可以顺着抓;而 nofollow 連結的锚文本,在部分引擎里對目标頁主题判断的贡献會被削弱。
誤区三:以為全站 nofollow 就一定安全
如果你把入口頁上所有出站連結都加上 nofollow,入口頁在蜘蛛看来就是一個“死胡同”,長期可能降低它對這一頁的抓取频次,反而拖慢目标 URL 的發現节奏。
怎么驗證 nofollow 到底有没有起作用
不要靠猜,用日誌做對照實驗:
- 准备两组入口頁,模板、内容量、上线時間尽量一致,一组連結加 nofollow,一组不加。
- 在服務器日誌里分別筛出两组入口頁的搜尋蜘蛛訪問记錄,統計每個入口頁被訪問的次數和時間間隔。
- 同步統計目标 URL 的抓取日誌,看两组入口頁對應的目标 URL 首次被抓的時間差,以及被抓的频次。
- 观察周期至少两三周,避免把正常的抓取波動誤判成 nofollow 的效果。
- 如果两组差异落在噪声范围内,說明在你面對的這個引擎上,nofollow 對發現阶段几乎没有影响。
更實用的處理思路
- 想控制蜘蛛的發現范围:用 robots.txt 或頁面 noindex,而不是靠 nofollow,這两者的语义更明确。
- 想避免给可疑外部連結導權:用 rel="nofollow sponsored" 或 rel="ugc",语义清晰,也符合主流引擎的建议。
- 想加快目标 URL 被發現:保證入口頁可訪問、响應稳定、連結在初始 HTML 里可解析,比纠结 nofollow 有效得多。
- 做好记錄:改動連結属性後,保留改動前後的日誌對比,否則很难判断是属性起了作用還是抓取策略本来就在變。
nofollow 只改變連結關系的表達方式,不保證蜘蛛不抓。把入口頁鏈路做稳、做快、做可解析,才是 URL 發現环节里更可控的部分。
最後提醒一点:搜尋蜘蛛的行為會随引擎更新不断變化,任何属性的實际效果都應以自己站点日誌的長期观察為准,而不是某一條固定的“規則”。