常见問题

入口頁連結带了一串無用參數,搜尋蜘蛛抓的到底是哪個 URL

入口頁给目标 URL 挂上来源标记、會话 ID、排序參數,看着只是多几個字符,實际會让搜尋蜘蛛把一個頁面当成多個地址。本文說明哪些參數容易被合並、哪些會被当成獨立 URL,以及在蜘蛛池入口頁里寫連結、收敛地址的具体做法與自查思路。

常见問题

入口頁連結带了一串無用參數,搜尋蜘蛛抓的到底是哪個 URL

给蜘蛛池入口頁寫連結时,很多人會顺手在目标 URL 後面挂一串參數:来源标记、栏目 ID、排序方式、時間戳、會话 ID。寫的时候只是多敲了几個字符,等到翻抓取日誌才發現,同一批目标地址被拆成了几十個變体,蜘蛛在门口来回打轉,真正想被發現的頁面反而没進几個。下面把這件事拆開说清楚。

為什么參數會让 URL 發現變复杂

從字符串角度看,/article?id=12 和 /article?id=12&from=list 是两個不同的地址。搜尋蜘蛛在調度抓取前必须先判断:這是两個需要單獨抓取的頁面,還是同一個頁面的不同寫法。判断一旦偏向某一邊,结果都不理想——要么把同一份内容抓了很多遍,浪費抓取预算;要么把本该被發現的地址当成重复項長期搁置。參數越多、组合越随机,這種判断就越依赖算法自身的归一化能力,而這部分並不在你手里。

搜尋蜘蛛通常怎么處理带參數的 URL

比較容易被合並的參數

  • 會话類:sessionid、sid、PHPSESSID,每次訪問都可能變化,頁面内容没有實质差异。
  • 来源追踪類:utm_source、from、ref、spm 等标记,服務端一般不會用它渲染内容。
  • 展示類:sort=、view=list、display=grid,区別只在排序或展示形式。

這類參數被合並是常见结果,但不同搜尋引擎的力度並不一致,也没有對外公開的清單。

容易被当成獨立地址的參數

  • 分頁類:page=2、p=3,内容确實不同,通常會被当作單獨的 URL。
  • 篩選類:category=、price=、lang=,篩選结果頁往往有自己的地址身份。
  • 内容标识類:id=、aid=、article_id=,這通常就是頁面本身的身份。

入口頁里怎么寫更稳妥

  1. 目标 URL 優先用静態或伪静態路径,參數只留给真正影响内容的维度。
  2. 不要嵌套參數,例如 ?url=/a?b=1 這種寫法需要编碼,解析出错时連結會直接失效。
  3. 同一個目标在入口頁只出現一次,不要用带參數和不带參數各寫一遍,那等于主動制造重复項。
  4. 必须带參數时,保持參數顺序和大小寫一致:a=1&b=2 與 b=2&a=1 在部分系統里會被视為两個地址。
  5. 用服務端 301 把带追踪參數的地址收敛到規范地址,比让蜘蛛自己判断更直接,也更容易在日誌里核對。

自查时可以看這几個点

  • 抓取日誌里带問号的 URL 占比有多高,是否明顯超過目标頁面的實际數量。
  • 同一目标是否出現了多種參數组合,並且都被记錄成獨立的抓取。
  • 入口頁里是否存在跳轉後才落到目标地址的連結,跳轉前和跳轉後是否都被当成獨立頁面。
  • 站内是否有多個入口指向同一目标,且寫法不统一。
參數本身不是問题,問题是让參數參與了定义地址的身份。目标 URL 的身份越單一,URL 發現和後續的抓取調度就越省事。

需要提醒的是,以上都是降低干扰、提高發現效率的常規做法,具体结果取决于搜尋引擎的調度策略、站点质量以及可用的抓取预算,没有哪一步能保證被收錄。把入口頁寫干净、把地址收敛好,是你能控制的那部分。