搜尋抓取

nofollow、sponsored、ugc:三個連結属性怎样改變蜘蛛的走向

nofollow、sponsored、ugc 常被当成抓取開關,實际只是連結級別的提示。本文說明三個属性各自的含义、它們對蜘蛛發現新 URL 與抓取顺序的影响,以及站内導航滥用 nofollow、用属性代替 URL 規范化的常见問题,並给出一份可执行的自查步骤。

搜尋抓取

nofollow、sponsored、ugc:三個連結属性怎样改變蜘蛛的走向

排查抓取路径时,多數人先看 robots.txt 和内鏈结构。但在這两者之間還有一层常被忽略的東西:連結上的 rel 属性。它不像 robots.txt 那样直接拦下一整段路径,也不是内鏈布局那種大范围調整,而是针對單獨一條連結给出的提示。用對了,能让蜘蛛把時間花在更值得抓的頁面上;用错了,可能让原本走得通的入口變得没那么受重视。

三個属性各自在说什么

常见的三個值分別是 nofollow、sponsored、ugc,它們都寫在 a 标簽的 rel 里,位置一样,含义有分工:

  • nofollow:表示這條連結不是編輯推荐,站点也不為其背书。传统理解是“別顺着這條連結走”。
  • sponsored:用于付費連結、广告位、联盟推廣位,明确告知這是商业合作。
  • ugc:用于用戶生成内容里的連結,比如评论区、论坛帖、用戶资料頁。

需要先纠正一個過时印象:主流搜尋引擎早已把 nofollow 從“指令”降級為“提示”。這意味着加了属性,蜘蛛不一定就不抓,只是這條連結在 URL 發現與信号传递上的分量會被重新评估。把它当成抓取開關来用,往往會落空。

它真正改變的是什么

回到抓取层面,rel 属性大致影响两件事。一是連結的發現價值:蜘蛛仍可能顺着連結走到目标頁,但這條連結對“這個頁面值不值得抓”的判断贡献變小。二是處理顺序:站内連結很多时,被标注的連結通常更靠後處理,或者干脆不被当作新 URL 的来源。對于本身入口就少的頁面,這一来一回差別不小。

站内最常见的两種誤用

把整站導航都加上 nofollow

有些站点為了“把權重留在首頁”,给頁脚、侧栏甚至主導航统一加 nofollow。结果是蜘蛛每次抓首頁,看到的推荐路径都被打了折扣,深层頁面只能靠 Sitemap 找。Sitemap 能补位,但它不描述頁面之間的重要性關系,蜘蛛對深层内容的理解會更薄。導航連結本来就是站点结构的骨架,不该被這样處理。

用 nofollow 代替規范化

篩選參數、排序參數、會话 ID 這類 URL,正确做法是 canonical 指向規范版本,或者在 robots.txt 里對參數路径做限制。有人图省事给這些連結统一加 nofollow,但頁面本身仍然存在、仍然可被抓取,只是入口變弱。结果是重复 URL 没消失,抓取预算照样被消耗。rel 属性解决不了 URL 重复的問题。

什么时候用才算合适

  • 付費位、广告位、推廣連結:用 sponsored,把商业關系说清楚,對双方都省事。
  • 评论区、论坛、用戶资料里的外鏈:用 ugc,能减少垃圾連結带来的麻烦。
  • 确實不想為之背书的第三方内容連結:可以用 nofollow,但要有選擇地加,而不是整块加。
  • 站内導航、面包屑、分頁、相關推荐:一般不加,让蜘蛛顺着走。
判断标准很简單:這條連結是你希望蜘蛛走的路径之一吗?如果是,就不要给它加阻力;如果不是,先想清楚是 URL 本身该被處理,還是只是不想传递信号。

一次可执行的自查

  1. 抓取首頁與几個主要栏目頁的 HTML,統計 rel="nofollow" 出現的次數與位置,看是否集中在導航区。
  2. 對照抓取日誌,观察加了 nofollow 的路径是否仍在被訪問。如果仍在被抓,說明它並没有起到“關閉入口”的作用。
  3. 检查带參數的列表頁,確認規范連結是否正确指向無參數版本。
  4. 看看用戶内容区的連結属性是否统一,避免同一站点内标准不一致。
  5. 調整之後观察一到两周的抓取日誌,重点看深层頁面的首次抓取時間有没有變化。

小结

rel 属性是連結級別的提示,不是抓取總闸。它對抓取路径的影响是渐進的:标注得越多,蜘蛛在站内可參考的路径就越少。與其全站铺满 nofollow,不如把 URL 規范化、内鏈结构和 Sitemap 這三件事做扎實,再對少數确實需要标注的連結單獨處理。