搜尋抓取

给内鏈加上 nofollow 之後,蜘蛛還會顺着走吗

nofollow 常被誤当成“禁止蜘蛛抓取”的開關,實际上它管的是連結關系而非抓取行為。本文說明 nofollow 與 robots.txt 的区別,拆解導航、分頁、面包屑誤加 nofollow 的代價,並给出 ugc、sponsored 與頁面級 nofollow 的正确用法和排查顺序。

搜尋抓取

给内鏈加上 nofollow 之後,蜘蛛還會顺着走吗

做站内優化时,nofollow 是個容易被随手加、也容易被誤解的属性。有人以為加上它連結就不會被蜘蛛發現,有人以為它能省下抓取量,结果把本该被發現的頁面挡在了路径之外。這篇文章只聊一個問题:加了 nofollow 的連結,蜘蛛到底還走不走。

nofollow 管的是“投票”,不是“走路”

從属性设計上说,rel="nofollow" 表達的是一種態度:我不為這個連結背书。搜尋引擎對它的處理是“不传递權重信号”,而不是“禁止跟踪這個 URL”。連結本身依然是 HTML 里的一條可解析地址,蜘蛛在抓取目前頁面时通常仍然能看到它。

把這一点记住,很多困惑就解開了:

  • nofollow 不阻止蜘蛛抓取目标頁面,只是不把目前頁的推荐關系算進去;
  • 目标頁面能否被收錄,取决于它自己是否可抓取、内容是否有價值,而不是取决于入口带不带 nofollow;
  • 加 nofollow 也不等于节省抓取量,真正减少無效抓取的是让蜘蛛在路径上少遇到没有價值的 URL;
  • 不同搜尋引擎對 nofollow 的處理细节有差异,具体以各家官方文档為准。

nofollow 與 robots.txt:一個拦投票,一個拦抓取

這两者经常被混着用,其實方向相反。robots.txt 的 Disallow 是不让蜘蛛請求這個 URL,頁面内容抓不到;nofollow 則是允许蜘蛛正常抓取,只是不承認這條連結的推荐意义。

所以如果要阻止某個頁面被抓取,用 robots.txt 或 noindex;如果只是不認可連結關系,比如用戶评论、广告位、付費合作,用 nofollow 系列属性。用错了,往往是该挡的没挡住,该被發現的没被發現。

站内導航和分頁加 nofollow,代價是什么

這是實际站点里最常见的誤用。把栏目導航、分頁、面包屑、底部連結统统加上 nofollow,本意多半是集中權重,结果是把蜘蛛的行走路径削掉了一大截。

  • 主導航加 nofollow:蜘蛛進站後能顺着走的路變少,深层頁面更难被定期訪問;
  • 分頁加 nofollow:列表頁到詳情頁的通道被削弱,新内容上线後被發現的速度可能變慢;
  • 面包屑加 nofollow:层級關系和回鏈路径變模糊,對梳理抓取路径没有帮助;
  • 為了防權重流失给内鏈加 nofollow:站内連結本身不涉及外部權重概念,這種做法通常得不偿失。

換句话说,站内連結是 URL 發現的主要通道,除非有明确理由,一般不需要對它做 nofollow 處理。

ugc 與 sponsored:该用的时候別省

rel="ugc" 用于用戶生成内容里的連結,rel="sponsored" 用于广告、赞助、付費合作連結。這两個属性的意义是向搜尋引擎說明連結的来源性质,用對了不會有副作用。

  • 评论区、论坛帖、用戶资料里的外鏈,用 ugc 比較合适;
  • 软文、投放位、返佣連結,用 sponsored;
  • 没有明顯商业關系的外鏈,保持普通連結即可,不必一律加上 nofollow;
  • 這些属性同样不改變蜘蛛能否看到連結,改變的是連結關系如何被解讀。

整頁級別的 nofollow:meta 與响應头

除了寫在單個 a 标簽上,還可以通過 meta name="robots" content="nofollow" 或 X-Robots-Tag 响應头,让頁面里所有連結都带上 nofollow 语义。這個范围比單條連結大得多,用之前要確認頁面确實不承担導流职责。

一個常见组合是 noindex, nofollow 用在後台頁、搜尋结果頁、測試頁上。但如果把首頁或栏目頁誤设成整頁 nofollow,等于把站内最重要的几條主干道全部标记為“不推荐”,之後的抓取路径會明顯變窄。

落地时的一個检查顺序

  1. 先拉一份站内連結清單,标出带 nofollow、ugc、sponsored 的連結;
  2. 区分這些連結属于哪一類:導航、列表、正文、评论還是广告;
  3. 導航、列表、正文内鏈若被加上 nofollow,逐個確認是否有必要,多數可以直接去掉;
  4. 检查是否有頁面級 nofollow 被誤配到重要入口;
  5. 再看 Sitemap 與主動推送是否覆盖了這些連結指向的 URL,让發現通道不止一條;
  6. 改完之後對照抓取日誌,观察相關目錄的訪問频次和抓取深度是否恢复。

最後提醒一句:nofollow 是個语义属性,不是抓取開關。想控制蜘蛛走不走,先分清你想控制的是抓取本身還是連結關系判断,再選對應的工具,才能避免既没省下抓取,又堵住了 URL 發現的路径。