做电商、房产、招聘這類列表型站点,列表頁几乎都會带篩選、排序、分頁參數。用戶点着方便,但同一批内容往往會對應几十個可訪問地址。如果長期没人管,抓取预算就被這些地址一点点吃掉,真正重要的頁面反而排不上队。
參數為什么容易制造重复地址
問题出在组合數量上。假设一個列表頁有颜色、尺寸、價格区間、排序方式四個维度,每個维度取三到五個值,排列组合就能轻松過百。再加上分頁參數,同一個商品可能出現在几百個地址里,而頁面正文其實高度相似。
更麻烦的是參數只增不减。运营每加一個篩選條件,地址空間就翻一倍,但很少有人回头检查舊參數是否還在被連結引用。
先分清三類參數
- 内容型參數:篩選结果确實是一批不同的内容,例如“只看有货”“只看某城市”。這類地址可能有獨立價值,但也需要判断是否值得被索引。
- 视图型參數:只改變展示方式,比如排序方式、每頁條數、列表或卡片视图。内容没變,地址却多了一份。
- 追踪型參數:utm_*、来源标识、會话 ID、渠道编号等。這類參數與内容完全無關,却最容易被内部複製粘贴扩散到各處。
可执行的自查清單
- 從服務器日誌或抓取統計里導出近一個月的 URL,按參數名归组,看看哪個參數贡献了最多的請求量。
- 在站内随机点開十個列表頁,记錄每個入口連結實际带了哪些參數,注意有没有預設值也被寫進 URL 的情况。
- 检查不带參數的干净地址是否還有入口。如果只有带參數的版本能被点到,干净版本就形同虚设。
- 逐個查看參數頁的 canonical,確認是指向規范版本,而不是無脑自引用。
- 检查 robots.txt 里有没有為了省事直接封掉整個目錄,结果把正常頁面一起挡在外面。
- 用站内搜尋或在後台統計里對比參數頁與内容頁的收錄占比,观察近几個月的變化趋势。
特別留意預設狀態
很多站点的預設排序、預設篩選其實是“综合排序”“全部地区”,這时候 URL 里不该出現對應參數。如果預設狀態也輸出參數,等于人為制造了一份重复地址,而且用戶每次点進来看到的都是它。
常见處理方式
- 让列表頁的預設連結指向干净 URL,篩選结果的入口尽量不輸出可抓取連結,改用前端交互加载。
- 對内容無影响的视图型參數,统一 canonical 指向主版本,並在頁面内避免大量導出這類連結。
- 追踪型參數在服務器端剥离或 301 跳到干净地址,同时把带追踪參數的連結從站内導航、頁脚、相關推荐里清掉。
- 确實想保留的篩選组合,保證标题、描述和正文有實质差异,並给它一個稳定的唯一入口,不要让它只靠參數拼接存在。
- 分頁參數只保留一種寫法,避免同时存在 page/2 與 p=2 两套規則。
別走极端
有些团队一看到問号就全部封禁,结果把真正能带来長尾訪問的篩選组合也一起挡掉了。判断标准不是“有没有參數”,而是“這個地址是否提供了獨立、對用戶有價值的内容”。有實质内容的篩選頁可以留下,纯排序、纯追踪的地址則應该收敛。
參數本身不是問题,同一份内容對應多個可訪問地址才是問题。先把地址收敛,再回头看哪些组合值得單獨保留。
把規則固定下来
與其每次出問题再补救,不如把參數規范寫進開發和运营流程:新增篩選條件时,先確認 URL 形式、預設狀態是否輸出參數、是否會产生可抓連結;上线後每月抽查一次參數頁占比,出現異常增長就回溯最近的迭代。
這件事不需要一次做完,但需要有人定期看一眼。參數頁占比缓慢上升,通常就是站内结构開始變乱的早期信号。