站点运营

站点运营:URL 參數自查,別让跟踪參數制造重复地址

分享連結、广告跟踪和站内篩選常常给 URL 带上各種參數。對訪客只是地址栏長一点,對搜尋蜘蛛却可能意味着一個新頁面。本文梳理常见參數類型、自查步骤與處理方式,帮助站点减少重复 URL 對抓取和内容判断的干扰。

站点运营

站点运营:URL 參數自查,別让跟踪參數制造重复地址

做站点运营时,URL 參數常常被当成小事。分享按钮、广告投放、站内篩選、排序、打印頁、會话跟踪,都可能给同一個頁面加上不同參數。對訪客来说只是地址栏長一点,對搜尋蜘蛛来说,却可能是一個全新的 URL,需要重新抓取、重新判断内容。時間一長,抓取预算被分散,重复内容變多,重要頁面的發現和更新也會受影响。

先分清哪些參數會改變頁面内容

參數大致可以分成两類:真正影响内容的和只影响展示或統計的。前者比如商品篩選條件、文章分頁、不同語言版本;後者比如 utm 跟踪碼、来源标识、會话 ID、排序方式、打印參數。對第二類參數,頁面主体内容通常完全一样,只是 URL 不同。如果放任蜘蛛抓取,就容易出現同一内容多個地址的情况。

常见的高風險參數

  • utm 系列:utm_source、utm_medium、utm_campaign 等,通常用于广告和渠道統計,不應改變頁面内容。
  • 會话 ID 與用戶标识:部分系統會把 sessionid、userid 拼在 URL 上,蜘蛛每次訪問都可能拿到新地址。
  • 排序與视图參數:sort=price、view=list 等,只是展示顺序或样式變化,内容集合基本一致。
  • 打印、分享、来源參數:print=1、from=wechat 之類,往往只影响頁面局部。
  • 篩選參數:颜色、價格区間、品牌等多條件组合,容易生成大量排列组合頁面,其中不少没有獨立價值。

自查:蜘蛛到底抓了哪些带參數的 URL

先別急着寫規則。把資料拿出来看,才知道問题有多大。可以按下面几步做一次排查。

  1. 在服務器日誌或抓取統計中,筛出带問号的 URL,按參數名和訪問次數排序。
  2. 把參數分成“影响内容”和“不影响内容”两组,分別记錄典型例子。
  3. 抽查每個高频率參數頁面,確認返回狀態碼、頁面标题、正文是否與規范頁一致。
  4. 检查站内連結,尤其是導航、面包屑、文章推荐位,是否無意間带上了跟踪參數。
  5. 查看站点地图和 canonical 标簽,確認它們指向的是不带參數的規范地址。
  6. 检查 robots.txt 是否誤封了带參數的重要頁面,或者規則太宽把该抓的篩選頁也挡掉了。
處理參數的目标不是把带參數的 URL 全部消灭,而是让蜘蛛把主要精力放在有獨立價值的規范頁面上。

處理方式:從連結源头到服務端規則

最省力的做法是從源头减少參數传播。站内分享、推荐、广告落地頁,尽量使用規范 URL;需要統計时,把參數放在跳轉层或統計工具里,而不是直接寫進正文連結。對于已经存在的參數,可以按情况選擇以下方式。

  • 規范連結:在带參數的頁面上添加 canonical,指向不带參數的主版本。
  • 301 跳轉:對完全無内容差异的跟踪參數,服務端直接 301 到規范地址。
  • robots.txt 規則:對確認無價值的參數组合做屏蔽,但要注意不要誤伤分頁、篩選等可能有用的頁面。
  • 參數顺序统一:同一组參數尽量保持固定顺序,减少因顺序不同产生的重复 URL。
  • 站点地图只放規范地址:避免 sitemap 里同时出現带參數和不带參數的版本。

服務器與缓存层面的小细节

參數處理還會牵扯到服務器和缓存。有些缓存系統會把带參數的請求视為獨立资源,導致同一頁面被缓存多份,既占空間,也可能让不同版本返回不一致的内容。可以在缓存配置中忽略無意义的跟踪參數,只按路径和必要參數生成缓存键。同时留意參數頁面返回的 HTTP 狀態碼,不要出現带參數可訪問、不带參數反而 404 的情况。

不要一次性大改

參數規則調整後,蜘蛛和用戶的行為都需要時間适應。建议先處理訪問量最高、重复最明顯的几類參數,观察一段時間抓取日誌和收錄變化,再决定是否扩大范围。每次調整後,重新检查 robots.txt、canonical 和内部連結,避免出現規則冲突。

URL 參數本身不是错誤,問题在于让蜘蛛把重复地址当成新頁面反复抓取。定期抽查參數使用情况,保持規范地址清晰,站点运营會轻松不少。