網站收錄

URL 參數與收錄:追踪、篩選、會话三類參數该怎么處理

带參數的 URL 在站内很常见,追踪、篩選、會话三類參數對收錄的影响並不相同。本文說明如何区分它們,並给出内鏈清理、canonical、noindex 與 robots.txt 的使用顺序,减少同一份内容被拆成多個可抓取地址。

網站收錄

URL 參數與收錄:追踪、篩選、會话三類參數该怎么處理

做站内运营时,很容易在連結後面顺手加一串參數:投放渠道带 utm_source,分享按钮带 share_token,後台报表带 ref,列表頁带排序和篩選條件。對用戶来说這些地址打開的是同一篇文章,但在搜尋引擎眼里,它們是不同的 URL。如果不做区分,同一份内容可能被拆成很多版本參與抓取和收錄。

先把參數分成三類

1. 追踪參數

常见的有 utm_source、utm_medium、utm_campaign、gclid、fbclid、ref、from、spm 等。它們只记錄来源,不改變頁面内容,是重复 URL 的主要来源。

2. 篩選與排序參數

例如 ?color=red、?price=100-200、?sort=new。這類參數通常會改變頁面上展示的结果,可能對應真實的搜尋需求,不能一概当成垃圾處理。

3. 會话與分頁參數

PHPSESSID、sid 這類會话标识會為每個訪客生成一個新的 URL,属于需要優先清理的類型;page=2 這類分頁參數則是正常内容的一部分,一般保留。

參數 URL 多了會怎样

  • 同一内容出現多個地址,搜尋引擎需要自己挑一個作為代表版本;
  • 收錄量看起来變大,實际有效頁面没有增加,反而稀释了頁面信号;
  • 抓取量被大量重复地址占用,新内容和真正需要更新的頁面排队更久;
  • 篩選條件可以自由组合时,可能生成成百上千個近似空结果的地址。

處理顺序建议

  1. 内鏈和站点地图只寫干净 URL。追踪參數放在外部渠道、广告落地頁和邮件里,不要寫進站内導航、正文連結和 sitemap。
  2. 會话 ID 改到 Cookie。让 URL 不随訪客變化,這是最省事的做法。
  3. 内容相同的带參地址,用 canonical 指向無參版本。canonical 要寫绝對地址,並且目标頁面本身能正常訪問、返回 200。
  4. 篩選頁按质量取舍。有真實搜尋量、结果内容充實的篩選组合,可以保留並让它們自指 canonical;只是把參數随便拼出来的组合頁,可以設定 noindex,或者干脆不生成可抓取的連結。
  5. 谨慎使用 robots.txt 屏蔽带參地址。屏蔽抓取可以省下抓取预算,但被屏蔽的 URL 上寫的 canonical 和 noindex 也不會被讀到,容易让舊地址長期停留在索引里。
判断一個參數要不要處理,最简單的标准是:它會不會真的改變用戶在頁面上看到的主要内容?不會,就收敛到一個地址;會,就当成獨立頁面来判断质量。

怎么確認問题存在

在服務器日誌里按 URL 統計,看带參數地址的抓取占比;在收錄结果里搜尋 utm_source、ref 之類的關鍵詞,看是否有带參地址被收錄;再看後台的抓取統計,確認重复抓取是否在挤占正常頁面的空間。三步做完,基本能判断問题出在追踪參數、篩選參數還是會话參數上。

几個容易踩的坑

  • 把所有带參數的地址一律 301 到無參版本,连带把有真實需求的篩選頁也砍掉;
  • canonical 寫成相對路径,或者指向一個本身带參數的地址,等于没寫;
  • 只改了 robots.txt,站内連結和 sitemap 里的带參地址没有同步清理;
  • 以為加了 canonical 就一定會被采纳,忽略了頁面本身的内容质量和内鏈是否一致。

參數本身没有對错,問题在于同一份内容是否被拆成了多個可抓取的地址。先分類、再收敛,通常比一刀切屏蔽更稳妥。