做站内優化时,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,等于把站内最重要的几條主干道全部标记為“不推荐”,之後的抓取路径會明顯變窄。
落地时的一個检查顺序
- 先拉一份站内連結清單,标出带 nofollow、ugc、sponsored 的連結;
- 区分這些連結属于哪一類:導航、列表、正文、评论還是广告;
- 導航、列表、正文内鏈若被加上 nofollow,逐個確認是否有必要,多數可以直接去掉;
- 检查是否有頁面級 nofollow 被誤配到重要入口;
- 再看 Sitemap 與主動推送是否覆盖了這些連結指向的 URL,让發現通道不止一條;
- 改完之後對照抓取日誌,观察相關目錄的訪問频次和抓取深度是否恢复。
最後提醒一句:nofollow 是個语义属性,不是抓取開關。想控制蜘蛛走不走,先分清你想控制的是抓取本身還是連結關系判断,再選對應的工具,才能避免既没省下抓取,又堵住了 URL 發現的路径。