搜尋抓取

被 nofollow 的連結,蜘蛛還會不會走:URL 發現與權重传递不是一回事

站内给連結加上 nofollow,很多人以為蜘蛛就不會再走這個入口。實际上 nofollow 主要影响的是權重传递和引擎對連結的信任判断,URL 發現仍可能通過其他路径完成。本文梳理 nofollow 在抓取环节的實际作用、常见誤用,以及更合适的替代方案。

搜尋抓取

被 nofollow 的連結,蜘蛛還會不會走:URL 發現與權重传递不是一回事

站内連結上加一個 rel="nofollow",是不少运营和開發的习惯動作。加完之後,蜘蛛到底還會不會顺着這條連結走過去,答案往往和直觉不太一样。

nofollow 原本想解决什么問题

這個属性的原始用途,是标记“這個連結不是本站主動背书的”。典型场景是不可信的外部連結、广告位、联盟連結和用戶生成内容。它的核心语义偏向不要把它当作一次投票,而不是“不要訪問這個地址”。

把這句话记住,後面很多困惑就容易理解了:nofollow 管的是連結信号,不是服務器訪問權限。

蜘蛛遇到 nofollow 連結时的實际動作

  • 多數搜尋引擎會降低或忽略這條連結传递的權重信号。
  • 是否抓取目标 URL,各家引擎策略並不统一,有的仍會把该地址纳入發現队列。
  • 即便站内全部加了 nofollow,這個 URL 也可能通過 Sitemap、外部連結或其它内鏈被找到。

所以,看到一個 nofollow 連結對應的 URL 仍然出現在抓取日誌里,並不代表設定失效,而是它本来就属于另一個层面的問题。

URL 發現與權重传递是两件事

把流程拆開會更清楚:發現(蜘蛛知道這個地址存在)、抓取(服務器返回了内容)、索引(引擎判断是否入库)、排序(在结果中排到什么位置)。nofollow 主要作用于後两者之間的信号判断,對“服務器有没有被訪問”這件事影响有限。

站内用 nofollow 的几個常见誤区

把它当成 robots.txt 用

robots.txt 是抓取层面的規則,告诉蜘蛛哪些路径不必来請求;nofollow 是頁面内連結层面的提示。想阻断抓取,靠 nofollow 是放错了位置。

用它来“节省抓取预算”

效果通常有限。真正影响预算的是站点里存在多少低價值、重复、無法訪問的 URL,以及服務器响應是否稳定。與其逐個連結加标簽,不如先把無意义的參數頁、空列表頁收敛掉。

给重要栏目入口加 nofollow

站内導航、栏目入口這類連結,是蜘蛛建立抓取路径的骨架。给它們加 nofollow,可能让该栏目下的一批 URL 發現變慢,行走半径變窄,得不偿失。

更合适的替代做法

  1. 不希望被抓取:用 robots.txt 划定范围,注意規則寫清楚,避免誤伤。
  2. 可以抓取但不希望被索引:用 noindex。需要留意的是,noindex 頁面本身仍可能被請求。
  3. 同一内容多個地址:用 canonical 指明主版本,而不是靠 nofollow 硬压。
  4. 低價值參數頁或篩選頁:從内鏈结构上收敛,必要时再配合 robots.txt。
  5. 用戶生成内容、广告位:nofollow 或同類属性仍在合理使用范围内,同时配合审核机制。
几種机制各管一段:robots.txt 管抓取范围,nofollow 管連結信号,noindex 管是否入库,canonical 管重复归並。不要指望一個标簽解决全部問题。

怎么確認設定有没有起作用

比較實际的做法是看日誌:观察被标记連結對應的 URL,是否仍有蜘蛛請求。如果仍被訪問,通常是正常的;真正需要關注的是這些請求带来了什么结果,頁面是否返回 200、内容是否與预期一致、是否反复抓取同一批無變化地址。

如果發現某類 URL 被大量重复抓取,先排查内鏈是不是把它們放在了導航、列表等高频位置,再考虑是否需要調整结构,而不是急着加 nofollow。

總结一句:nofollow 是一個表達態度的属性,不是一道门禁。想控制蜘蛛走哪條路,最终還是要回到站点结构、服務器响應和 URL 本身的取舍上。