網站收錄

參數、會话 ID 與追踪碼:同一個頁面被拆成多個地址後的收錄處理

同一個頁面因為追踪碼、會话 ID、排序篩選參數被拆成好几條地址,是收錄环节里很常见的一類麻烦。本文讲清這些地址是怎么产生的、蜘蛛大致會怎么處理,以及用 canonical、跳轉與 noindex 把它們收敛回一條規范地址时,哪些做法容易踩坑。

網站收錄

參數、會话 ID 與追踪碼:同一個頁面被拆成多個地址後的收錄處理

同一份内容,為什么會出現好几個地址

一個頁面在理想情况下只對應一條地址,但下面這些寫法會让它一變多:

  • 分享和推廣連結自带的追踪碼,例如 utm_source、from、spm 之類;
  • 把會话标识寫進地址,例如 sid、PHPSESSID、sessionid;
  • 列表頁的排序、篩選、视图參數,例如 order=price、color=red、view=list;
  • 打印頁、移動頁、AMP 頁各占一條地址;
  • 大小寫、结尾斜杠、空參數(如 ?a=1&)這類细节不一致。

對用戶来说,這些地址打開的几乎是同一屏内容;但對蜘蛛来说,它們是各自獨立的 URL,會分別進入抓取队列,分別判断,分別决定要不要收錄。

蜘蛛大致會怎么處理

各家搜尋引擎的策略並不完全公開,但结果通常落在三種情况里:

  • 只保留一條,其余被当作重复版本折叠掉;
  • 收錄多條,但每條能分到的内容價值被摊薄;
  • 判断這些地址没有單獨價值,抓一次之後不再反复来訪。

真正麻烦的不是“會不會被收錄”,而是抓取量被一堆無意义地址消耗掉,同时後台顯示的收錄數量和索引狀態也變得难以解讀。

先做三件事,把問题看清楚

  1. 查規范标簽:直接打開带參數的地址,看返回的 canonical 指向哪里,是否和预期一致。
  2. 看日誌:統計蜘蛛抓取的 URL 中带參數的比例有多高,是否存在大量同一路径、不同參數的记錄。
  3. 抽样搜尋:用 site: 加上參數特征,看有多少參數頁真的進了索引。

能收敛的收敛,收敛不了的明确表態

追踪碼與會话 ID

會话 ID 尽量不要再放進地址,改用 cookie 承载。追踪碼很难完全避免,別人分享时就會带上,可行的做法是:頁面正常返回,canonical 始终指向不带追踪碼的規范地址;同时内鏈和站点地图里只使用干净地址,避免自己再制造新的變体。

排序、篩選與分頁

並不是所有參數组合都值得被索引。可以按下面的顺序判断:

  1. 本身有獨立搜尋需求的篩選组合(例如“城市 + 品類”),可以保留,並给它一條可抓取的内鏈入口;
  2. 只是換個排列顺序的(價格升序、销量排序),canonical 指向預設视图就够了;
  3. 组合爆炸、内容稀薄的,可以考虑 noindex。這里不建议简單用 robots.txt 屏蔽——屏蔽之後蜘蛛看不到頁面上的 noindex,反而更容易留下狀態模糊的记錄。

移動頁、打印頁與 AMP 頁

這些通常是同一内容的另一種呈現。確認是等價版本,就用 canonical 指向主版本;如果已经不再使用,返回 301 指向主版本,而不是繼續留着可訪問。

几個容易踩的坑

  • canonical 指向的地址本身返回 404 或带 noindex,等于把信号指進了死路。
  • canonical 形成鏈條:A 指 B,B 又指 C,蜘蛛需要多跳判断,容易放弃。
  • 一批參數頁用 robots.txt 屏蔽,另一批用 noindex,規則互相打架。
  • 只改了站内模板,没管歷史連結,站外推廣連結依舊带着舊參數在传播。
參數問题的本质不是“地址太多了”,而是没有告诉蜘蛛哪一條才算數。

收尾时的一句话

先把規范地址定下来,再让 canonical、内鏈、站点地图、跳轉這几處保持一致,剩下的交给時間。一次改完所有參數並不現實,分批次观察抓取日誌的變化,比一次性大動更稳妥。