搜尋抓取

nofollow 連結與蜘蛛抓取:不传递權重,不等于不抓取

nofollow 常被誤当成阻止蜘蛛抓取的工具,其實它主要表達連結關系,不传递權重,但連結仍可能被蜘蛛發現和訪問。本文說明 nofollow 與 robots.txt、noindex 的区別,哪些场景适合使用,以及内鏈结构里怎样避免誤伤 URL 發現和抓取路径。

搜尋抓取

nofollow 連結與蜘蛛抓取:不传递權重,不等于不抓取

站内给連結加 nofollow 是很常见的操作,但围绕它的誤解也很多。有人把它当成“禁止蜘蛛抓取”的開關,给一批連結加上 nofollow 後就等着蜘蛛不再訪問;也有人担心加了 nofollow 會让整條抓取路径断掉。實际執行中,nofollow 的作用比這两個极端都要窄。

nofollow 到底在表達什么

nofollow 寫在 a 标簽的 rel 属性里,例如 rel="nofollow"。它最初的含义是告诉搜尋引擎:這個連結不是站点的背书,不要把它当作投票或權重传递的依據。後来主流的處理方式有所變化,nofollow 更多被当作一種提示,而不是硬性指令。

它解决的是“權重和信任”的問题,不是“抓取和發現”的問题。換句话说,nofollow 並不等于 robots.txt 里的 Disallow,也不等于頁面上的 noindex。

蜘蛛看到 nofollow 連結时,通常怎么做

連結仍然出現在 HTML 里,蜘蛛解析頁面时能看到這個 URL。是否繼續訪問,取决于它自己的判断:連結在頁面中的位置、頁面重要性、同一 URL 是否從別處也能到達、抓取队列的压力等。

  • 從内鏈和 Sitemap 都能到達的 URL,即使某處加了 nofollow,蜘蛛也可能照样抓取。
  • 只在一個 nofollow 連結里出現、別處没有入口的 URL,被發現和抓取的概率會降低,但不等于零。
  • 已经抓取過的 URL,後續复查不受某一條 nofollow 的绝對限制。
把 nofollow 当成“阻止抓取”的工具,通常會得到相反的结果:你以為蜘蛛不會走,日誌里却仍能看到訪問记錄。

哪些地方适合用 nofollow

  • 用戶评论、论坛帖子里的外鏈,你無法审核目标頁面质量。
  • 广告位、赞助内容、付費連結,需要明确标注關系。
  • 登入、註冊、购物车、後台入口等没有索引價值、也不希望被搜尋用戶直接進入的連結。
  • 站内一些临时活動頁、跟踪連結,确實不需要蜘蛛把抓取预算花在這里。

但要注意,nofollow 的站点侧效果是“建议不传递權重”,不是“從抓取路径里刪除”。如果這些 URL 同时還有別的入口,蜘蛛仍然可能走到。

真正想控制抓取,该用什么

如果目标是“不让蜘蛛訪問”,應该看 robots.txt 的 Disallow;如果目标是“可以抓但不要收錄”,用頁面級的 noindex;如果目标是“必须登入才能看”,让未登入請求返回合适的 401/403 或跳轉登入頁。三種手段解决的是不同問题,混用容易出错。

還有一個常见错誤:给需要被收錄的頁面加了 nofollow,同时又指望它通過内鏈被蜘蛛發現。内鏈的發現價值和 nofollow 的權重提示是两碼事,重要頁面不必用 nofollow 来“节约權重”。

内鏈结构里,nofollow 要谨慎使用

主導航、面包屑、分類列表、分頁、文章正文里的相關推荐,這些連結承担着 URL 發現和抓取路径的作用。如果大面积加 nofollow,蜘蛛從首頁出發能走的层級會變少,新頁面被發現的速度可能變慢。尤其是新站或内容更新频繁的站点,抓取路径本来就不宽裕,更不该把内鏈入口砍掉。

用日誌驗證,而不是靠猜

想知道蜘蛛有没有走 nofollow 連結,最直接的方式是看服務器日誌。篩選带 rel="nofollow" 的連結對應 URL,观察是否有蜘蛛 User-Agent 訪問,以及訪問频率是否低于同頁面的普通連結。连續观察一段時間,再决定是保留、移除還是換成 robots.txt 規則。

nofollow 是一個關于連結關系的标注,不是抓取開關。站点运营中更稳妥的做法是:把 nofollow 用在确實需要标注關系的地方,把抓取路径和 URL 發現交给清晰的内鏈、Sitemap 和合理的 robots.txt 規則来管理。