站点运营

站点运营:篩選參數與排序 URL 自查,別让抓取预算耗在组合頁上

列表頁的篩選和排序對用戶很方便,但如果每種參數组合都能被蜘蛛抓到並返回 200,站内就會凭空多出大量相似地址。本文從參數梳理、组合判断、放行與收敛的取舍几個方面,给出一份可以落地的自查清單。

站点运营

站点运营:篩選參數與排序 URL 自查,別让抓取预算耗在组合頁上

很多站点的列表頁都带篩選和排序:按品牌、按價格区間、按上架時間、按销量,再叠加翻頁。對用戶来说這很方便;對蜘蛛来说,這些參數如果都能被抓、抓到後都返回 200,就等于凭空多出成百上千個内容高度相似的地址。抓取预算被摊薄之後,真正需要更新的内容反而排不上队。

组合 URL 為什么會失控

假设一個分類有 5 個篩選维度,每個维度 4 個取值,再叠加 10 頁分頁,理论组合數量可以轻松到几十萬級。蜘蛛通常不會穷举,但只要入口連結足够多,它會顺着能点到的地方不断扩散。判断的關键不是“站内有多少個 URL”,而是“有多少 URL 會被連結触達,並且返回了實质不同的内容”。

自查清單

1. 看參數是否真的進入抓取

  • 在抓取记錄或服務器日誌里篩選带問号的請求,統計參數名、參數组合和請求量,看看哪些组合被反复抓取。
  • 随机挑几個篩選结果頁直接訪問,確認返回狀態碼和正文内容,判断它和主列表頁到底差多少。

2. 区分“有内容差异”和“只是換了顺序”

排序參數最典型:按價格排、按销量排、按時間排,内容一致,只是顺序不同。這類地址對用戶有时有用,但作為獨立收錄頁面價值很低。篩選參數則要看差异幅度——單一维度的篩選可能确實切出了不同集合,多维叠加後往往只是交集越来越小、重复度越来越高。

3. 决定放行、合並還是挡住

  • 放行:有獨立搜尋需求的篩選组合,内容确實不同,可以保留,並给它一個稳定的入口。
  • 合並:相似度高的组合,用 canonical 指回主版本,頁面保留给用戶使用。
  • 挡住:纯排序、纯會话、纯追踪參數,可以在連結层面加 nofollow,或在 robots.txt 里用參數規則排除抓取。

需要注意的是,robots.txt 挡的是抓取而不是索引,被挡的地址仍可能出現在结果里;而且規則寫得過宽,會把連結發現的路一起切断。所以挡住之前,先確認這些 URL 不是重要頁面的唯一入口。

4. 控制入口數量

站点地图里只放真正需要收錄的列表頁和詳情頁,篩選结果頁不要進地图。導航和面包屑尽量指向不带參數的干净地址,让蜘蛛先看到主干,再看枝叶。

5. 检查分頁與篩選的叠加

篩選之後再翻頁,是最容易产生長尾组合的地方。可以限制篩選结果的翻頁深度,或者让深頁碼通過用戶点击加载,而不是在頁面里铺開大量可抓連結。

一次简單的检查流程

  1. 列出站内所有會出現在 URL 里的參數名,标出哪些是业務必需、哪些是統計或临时用。
  2. 用抓取记錄確認這些參數的實际抓取量,找出被反复抓取的组合。
  3. 對每個组合訪問一次,對比正文主体、标题、内容數量是否真的不同。
  4. 按放行、合並、挡住三類给出處理方式,並寫進模板或配置里,而不是逐個頁面手工改。
  5. 處理完成後观察一段時間,看主干頁面的抓取量有没有回升。

容易踩的坑

把所有带參數的 URL 一刀切屏蔽,看起来干净,實际可能把站内搜尋、語言切換、必要的分頁入口一起關掉,结果是蜘蛛找不到该抓的内容。

另一種情况是反過来:担心屏蔽影响收錄,于是全部放行,结果蜘蛛大部分時間都花在组合頁上,新發布的文章要等很久才被抓一次。

小结

篩選與排序參數本身没有問题,問题在于它們是否被当作獨立内容頁面參與抓取。定期做一次參數梳理,把無效组合收敛掉,把有效组合的入口固定下来,抓取资源才有机會流向真正需要更新的頁面。這件事不用一次做完,可以先從抓取量最大的那几個參數開始。