站点运营

站点运营:URL 參數自查,別让篩選參數生成一堆重复頁面

篩選、排序、跟踪參數會让同一批内容派生出大量地址,抓取预算被分散,真正需要更新的頁面反而排在後面。本文梳理内容參數與附加參數的区別,给出跟踪參數清理、篩選參數處理的三種做法,以及一份可逐條执行的 URL 參數自查清單。

站点运营

站点运营:URL 參數自查,別让篩選參數生成一堆重复頁面

做列表、篩選、排序的站点,URL 里往往挂着一串參數。對訪客来说只是多点一下,對搜尋引擎来说,同一批内容可能被拆成几十上百個地址。抓取预算是有限的,參數组合越多,蜘蛛越容易在低價值地址里兜圈子,真正需要更新的頁面反而排在後面。下面说的是怎么把參數地址收一收,做法不复杂,但規則要提前想清楚,別今天屏蔽明天放開。

先分清内容參數和附加參數

判断标准只有一條:把參數去掉之後,頁面主体内容是否發生變化。

  • 跟踪類:utm_source、utm_medium、ref、from、渠道标记等,去掉後内容完全一样。
  • 會话類:sessionid、sid、phpsessid,以及带時間戳的缓存參數,每次訪問可能都不同。
  • 篩選類:分類、價格区間、排序方式、關鍵詞查询,去掉後展示的内容确實不同。

前两類原則上不该出現在给搜尋引擎的連結里,第三類才需要認真判断是否值得让它們單獨存在。

跟踪參數最好從連結生成端解决

很多跟踪參數不是蜘蛛带進来的,而是站内連結自己带上的。检查模板文件、邮件推送、合作方投放連結,把站内互鏈里的跟踪參數去掉,比事後在服務端做拦截更省事。服務端如果還有一层兜底,可以按參數名做清理,但要注意別把篩選參數一起清掉。

篩選與排序頁:三種處理方式,選一種並保持一致

  1. 交给 robots.txt 屏蔽:能拦住抓取,但拦不住索引。如果別處有連結指向這個地址,它仍可能出現在结果里,只是没有摘要。适合组合數量极大、几乎没人搜尋的排序參數。
  2. 用 canonical 指向主版本:适合參數组合有實际搜尋需求、内容也還不错的篩選頁。注意 canonical 要指向真正對應的那一頁,不要把所有篩選頁都指向列表首頁,那样等于告诉搜尋引擎這些頁都不算數。
  3. 用 noindex 明确排除:适合确實没必要出現在索引里的排序、视图切換頁。noindex 需要頁面能被抓取到才會生效,所以不能同时用 robots.txt 屏蔽。

同一個參數不要三種方式混着用。蜘蛛判断規則时的耐心,比你想象中要少。

自查清單

  1. 列出最近一段時間抓取日誌里带參數的地址,按參數名归類,看哪些占了大量抓取次數却几乎没带来訪問。
  2. 检查這些參數地址是否被站内連結、分頁、面包屑带出来,能否從源头减少入口。
  3. 確認被保留的篩選頁有獨立标题、描述和稳定的内容,而不是換汤不換药。
  4. 检查 robots.txt 與 noindex 是否冲突,是否存在既屏蔽又指望它不收錄的情况。
  5. 检查 canonical 是否指向了错誤的地址,尤其是分頁第二頁之後是否誤指向第一頁。
  6. 確認參數顺序、大小寫、預設值參數是否做過归一,例如排序參數預設值和顯式寫法是否算同一頁。
  7. 留意空參數與無效參數,?color= 這類地址如果返回正常頁面,同样會被当成獨立地址。
調整參數策略後,建议连續观察两到三周的抓取日誌,看看被保留的頁面抓取频次有没有回升。如果改動後抓取總量反而下降,先回退最激進的那一條,再逐步排查。

几個容易忽略的细节

參數顺序不同會被当成两個地址,?a=1&b=2 和 ?b=2&a=1 需要统一。大小寫不一致同理,?Sort=price 和 ?sort=price 最好归為一個。列表預設頁通常不加參數,如果 ?page=1 能單獨打開,也要考虑它和列表首頁的關系。

最後提醒一句:參數治理不是一次性的活儿。新栏目上线、新篩選功能開發时,如果不顺手把參數規則定下来,過几個月又會堆出一批相似地址。把它寫進上线检查項里,比事後翻日誌省力得多。