在蜘蛛池和入口頁的搭建中,rel="nofollow" 是一個经常被用到的属性。有人用它来控制入口頁的權重流向,有人用它降低被判定為連結操纵的風險。随之而来的問题是:加了 nofollow 之後,搜尋蜘蛛還會不會跟着這個連結去抓目标 URL?如果根本不會,那入口頁存在的意义就要重新评估。
nofollow 是提示,不是绝對禁令
從公開說明看,主流搜尋引擎把 nofollow 当作一種提示,而不是硬性的阻断指令。也就是说,對于加了 nofollow 的連結,搜尋引擎可以完全不跟進,也可以選擇跟進。是否跟進,往往取决于它自己的判断,比如入口頁的质量、目标 URL 是否已经在索引里、目前抓取预算是否充裕等。
這带来两個结论:一是不能假定加了 nofollow 就绝對不抓,二是也不能反過来假定蜘蛛一定會抓。两種极端理解都會让排查方向跑偏。
不同引擎的處理存在差异
- Google 明确把 nofollow 视為提示,並且在很多场景下仍會把它当作發現 URL 的线索;
- Bing 等引擎的表述不完全一致,但通常也不把它当成强制阻断手段;
- 國内搜尋引擎没有公開且稳定的規則,實测结果差异較大,不宜照搬。
如果你的流程依赖 nofollow 来精确控制抓取,本身就带着不确定性。
想被蜘蛛發現,就不该指望 nofollow
蜘蛛池里常见的矛盾是:既希望目标 URL 被發現和抓取,又担心入口頁連結太直白带来風險,于是加上 nofollow。這其實把两件事混在了一起。nofollow 主要影响的是權重和信任传递,而不是一個可靠的抓取開關。用它来“既隐藏、又触發”,期待本身是互相冲突的。
nofollow 和几個容易混淆的手段
- robots.txt 的 disallow:阻止蜘蛛抓取指定路径,但 URL 仍可能因為外鏈而被记錄;
- meta robots 的 noindex:允许抓取,但不让頁面進入索引;
- rel="nofollow":只作用于單個連結,属于提示性质,确定性和作用范围都更弱。
想控制抓取范围用 robots.txt,想控制收錄用 noindex,想控制權重传递才用 nofollow,三者目标不同,不能互相替代。
怎么確認蜘蛛有没有跟過去
- 查看目标 URL 所在服務器的訪問日誌,筛出搜尋蜘蛛的 user-agent,確認是否有訪問记錄;
- 看這些记錄里的 Referer 是否指向入口頁,判断實际的流量路径;
- 對比加 nofollow 前後一段時間内目标 URL 的被抓次數,而不是只看某一天的快照;
- 同时確認入口頁自身是否被抓取,入口頁不被抓,後面的鏈路就無從谈起。
單次日誌样本容易被抓取周期干扰,建议至少观察一到两周再下结论。
nofollow 不是抓取開關。以被發現為主要目的时,用可正常抓取的連結、sitemap 和 URL 提交接口组合更稳妥;只有在需要控制權重和風險时,再單獨考虑 nofollow。
實践中的几点建议
- 入口頁的目标連結如果需要被發現,優先使用普通 a 标簽,並保證入口頁本身可以被抓取和訪問;
- 想降低風險,可以從控制入口頁數量、提升内容质量、让連結分布更自然入手,而不是只加一個属性;
- 改動之後一律用日誌驗證,不要用“應该會抓”来推断结果;
- 把“被發現的概率”和“權重是否传递”当成两個獨立問题来分別设計,思路會清楚很多。