站内篩選、排序、分頁這些功能做起来不复杂,但它們在 URL 上留下的痕迹,往往比真正的内容頁多得多。同一個列表頁,加上颜色、價格区間、排序方式、頁碼,随手点几下就能拼出几十種组合;如果這些地址還能被站内連結、外部分享或者統計代碼带出来,蜘蛛顺着爬一遍,地址總量很快就會超過站点實际内容量。
參數頁失控时,通常有這几個信号
- 服務器日誌里带 ? 的請求占比很高,而且大量地址只出現過一两次。
- 站長平台顯示的已收錄地址數,明顯多于你實际寫的頁面數。
- 站内搜尋頁、篩選结果頁被單獨收錄,标题寫的是“某某篩選结果”。
- 同一批文章或商品,在多個參數地址下重复出現,互相争抢同一個词的展現。
出現這些信号,不代表參數功能做错了,而是說明你没有给參數地址划定邊界。接下来要做的不是關掉功能,而是把參數分類,再决定每一類怎么處理。
先把參數分類,再决定處理方式
追踪類參數
utm_source、ref、from、spm 這類參數只服務于統計,不影响頁面内容。麻烦在于,如果站内連結也带上了它們,蜘蛛每点一次就多记一個地址。處理方式很直接:站内連結、面包屑、分頁按钮一律使用不带追踪參數的干净地址;頁面用 canonical 指向干净版本;外部投放連結尽量走跳轉頁,別让它在站内出現。
排序與视图類參數
sort=price、view=list 這類參數,頁面主体内容相同,只是排列顺序變了。可以保留一條預設地址作為正主,其余地址自引用預設版本,或者加上 noindex,follow。這里不建议用 robots.txt 一刀切屏蔽:被屏蔽的地址索引里可能還留着舊记錄,同时頁面之間的連結信号也被切断了。
篩選類參數
篩選是组合最多、最容易爆炸的一類。比較稳妥的做法是限制可被抓取的维度:只让主维度(比如品類、品牌)的篩選頁進入連結和抓取,次要维度叠加出来的组合不生成站内可爬連結。如果某几個篩選组合确實有稳定的搜尋需求,就把它們做成静態路径,例如用目錄形式代替带多個問号的地址。
分頁與會话參數
分頁地址建议保持可抓取,並让每頁自引用自身,不要把第二頁之後的 canonical 都指向第一頁,那样後面的内容很难被單獨收錄。至于 sessionid、sid、時間戳這類會随机變化的參數,則要從生成逻辑上掐掉,不要让它們出現在 URL 里。
落地时容易踩的几個坑
- 只靠 robots.txt 屏蔽參數,以為萬事大吉,结果索引里的舊地址迟迟不掉。
- canonical 指向一個已经 404 或需要跳轉的地址,等于把信号送進了空處。
- 站内分頁連結直接带上目前篩選參數,訪客点一次翻頁就又多出一個组合。
- 篩選结果頁的标题和正文與主列表完全一样,就算被收錄也只是重复内容。
- 規則改完就不再看資料。參數處理是長期维護,不是一次性配置。
一份可以照着做的检查清單
- 從最近一周的日誌里筛出带參數的 URL,按參數名分组,統計數量與出現频次。
- 拿這批數量和站点實际内容數對比,看參數地址是否已经明顯超出。
- 把參數归入追踪、排序、篩選、分頁四類,逐類寫下處理策略。
- 检查站内鏈、分頁、分享按钮、广告落地頁生成的地址是否干净。
- 確認 canonical 和 noindex 規則只作用在该作用的頁面上,別誤伤内容頁。
- 改動後隔一到两周再看一次日誌,观察參數地址請求量是否下降、内容頁被抓取次數是否上升。
參數本身不是問题,失控的參數组合才是。判断标准很简單:這個地址是否對應一份獨立、對訪客有價值的内容?如果不是,就没必要让蜘蛛把它当成一個獨立頁面来對待。