栏目規划做得再清楚,站点也可能在另一條路上不断膨胀:參數化地址。站内搜尋结果、篩選條件、排序方式、渠道跟踪參數,都能拼出成千上萬個能正常打開的頁面。它們對用戶有用,但對抓取来说未必值得逐個走訪。參數頁不做区分,站内可抓取地址會迅速失控,真正需要更新的栏目頁反而排在队伍後面。
按用途把參數頁分成三類
處理方式取决于這個頁面服務的是谁。先分類,再决定放行、收敛還是屏蔽。
站内搜尋结果頁
由用戶輸入的词拼出的结果頁,内容随輸入變化,理论上没有上限。這類頁面重复度高,正文多是列表摘要,一般不主動邀請抓取。要注意屏蔽方式的差別:如果通過 robots.txt 禁止抓取,頁面自身的 noindex 也就無從生效,因為抓取被拦在门外,指令根本讀不到。两種手段選其一即可,不要同时用,又指望另一個照样起作用。
篩選與排序頁
颜色、價格区間、地区、品牌這類篩選參數,背後可能确實對應真實需求。單维度、有稳定搜尋量的篩選頁可以保留,並让它的規范地址指向自身;多维度自由组合出来的頁面,通常只需要保證用戶能正常使用,不必全部交给蜘蛛。排序參數一般不改變内容集合,只是顺序不同,更适合做規范化處理,而不是單獨保留一個地址。
跟踪與渠道參數
utm_source、from、ref、spm 這類參數不改變頁面内容,只用于統計。它們既不该出現在站内連結里,也不该出現在站点地图中。放任不管的话,同一篇内容會因為渠道不同出現多個地址,每次分享都可能新增一個可抓取入口。
一份可执行的自查清單
- 從服務器訪問记錄里筛出带問号的請求,按參數名归類,找出出現次數最多的前十几個參數。
- 逐個確認:這個參數會改變頁面主体内容吗?會改變标题吗?如果答案都是否,它大概率不该被單獨抓取。
- 检查站内連結和導航,是否直接指向了带跟踪參數的地址。
- 检查站点地图,確認没有把參數頁成批提交上去。
- 检查篩選頁的規范地址,看看是不是每個组合都指向了自己,而不是统统指向主分類頁。
- 確認規則之間没有冲突:robots.txt、noindex、規范地址三種手段不要互相打架。
處理手段有先後顺序
- 先收内鏈:站内所有入口都指向干净地址,這是成本最低的一步,也最容易被忽略。
- 再定規范地址:同一批内容的多個地址,指定一個作為代表,其余向它靠拢。
- 然後决定是否屏蔽抓取:對确實没有獨立價值的參數组合,可以在抓取层面收口。
- 最後才是頁面級的 noindex:适用于仍需要被訪問、但不希望出現在搜尋结果里的頁面。
顺序反了容易出問题。比如先给頁面加了 noindex,同时又在抓取层面把它拦掉,那個 noindex 永遠不會被讀到,頁面可能長期悬在结果里。
改動之後怎么驗證
調整完成後,用一段時間的訪問记錄做前後對比:參數類地址在總請求里的占比是不是下降了,主栏目和内容頁的抓取次數是不是上来了。同时看一眼站点地图和站内搜尋框、篩選组件的連結輸出,確認没有新的參數入口被顺手生成。這類工作不是一次性的,模板改版、篩選组件升級、渠道投放變化,都可能重新引入新的參數组合。
判断标准可以简化成一句:這個地址如果被別人分享出去,用戶看到的内容和主頁面是不是明顯不同?如果区別只在顺序或来源标记,它就不该有獨立身份。
參數治理听起来琐碎,但它直接影响抓取资源花在哪里。把入口管干净,比事後在日誌里一個個找問题要省力得多。