站点运营

站点运营:分頁與篩選參數自查,別让列表頁耗尽抓取预算

列表頁的分頁和篩選參數一旦组合過多,很容易把有限的抓取額度消耗在重复内容上。本文從分頁連結、參數组合、robots 與 canonical 的配合、日誌观察几個方面,给出一套可落地的自查思路,帮助你把抓取注意力留给真正有價值的頁面。

站点运营

站点运营:分頁與篩選參數自查,別让列表頁耗尽抓取预算

很多站点内容本身不算多,但搜尋蜘蛛每天訪問的 URL 數量却很夸張。排查下来,問题往往出在列表頁:一個栏目頁加上排序、篩選、分頁之後,可以组合出成百上千個地址,而其中大部分内容高度重复。蜘蛛把時間花在這些地址上,真正需要更新的詳情頁反而等不到抓取。

先弄清抓取预算被谁吃掉了

抓取预算並不是一個官方公布的固定數值,可以粗略理解為:在服務器响應速度、站点規模、頁面重要程度等條件不變时,搜尋蜘蛛愿意並且能够在你的站点上訪問的頁面數量上限。它是相對的,不是绝對的額度。

当站内存在大量低價值或重复的地址时,蜘蛛仍需要逐個請求、下载、解析,這些動作會占用時間。结果就是新發布的頁面收錄變慢,或者老頁面更新很久才被重新抓取。

分頁自查:連結是否可抓、是否唯一

分頁本身不是問题,問题在于分頁的處理方式是否清晰。

  • 分頁連結是否使用可点击的 a 标簽,而不是依赖 JS 点击後才生成。
  • 每一頁是否有獨立且稳定的地址,例如 /list/page/2/ 這類固定形式,而不是带随机參數的地址。
  • 第 1 頁是否存在两個地址(栏目根地址和 page/1),如果存在,建议只保留根地址,另一個做跳轉或規范。
  • 分頁地址的标题、描述是否做了区分,避免几十頁共用同一個标题。

如果分頁内容只是列表摘要,且詳情頁已经能被正常抓取,可以让分頁繼續開放;如果分頁頁面上並没有獨立内容,只是重复排列,就需要考虑是否值得让蜘蛛逐頁深入。

篩選參數自查:控制组合數量

篩選是參數膨胀的主要来源。常见的诱因包括:排序參數、價格区間、标簽篩選、會话參數、推廣跟踪參數。

  1. 把排序、视图切換這類只改變展示顺序的參數,统一指向預設视图的規范地址。
  2. 會话 ID、来源跟踪等對内容没有影响的參數,尽量用 robots.txt 的 Disallow 規則拦截,或在服務器层面直接忽略。
  3. 篩選组合如果确實有搜尋需求,可以為少數几個高频组合保留獨立頁面,其余组合不做索引。
  4. 避免篩選结果頁之間互相連結成網,形成蜘蛛难以走出的循环。
判断标准很简單:這個參數地址,用戶會不會主動搜尋並希望看到它?如果答案是否定的,那它大概率不值得占用抓取资源。

canonical 與 robots 的配合

拦截參數有两種常见做法,各有取舍。使用 robots.txt 拦截,蜘蛛不會抓取该地址,但也不會看到頁面上的 canonical 提示;使用 canonical 指向規范地址,蜘蛛會抓取頁面,但能讀到你的合並意图。一般来说:

  • 完全無價值、纯技術性的參數,适合用 robots.txt 拦截。
  • 有一定價值但内容重复的篩選頁,更适合保留抓取並用 canonical 归並。

两者混合使用时要注意,不要让被拦截的地址又出現在站内連結或 sitemap 中,否則信息會互相矛盾。

用日誌驗證效果

調整之後不要凭感觉判断。可以定期查看服務器日誌,統計蜘蛛對列表頁和參數頁的訪問次數占比,观察調整前後是否下降,同时看詳情頁的抓取频次有没有變化。日誌需要保留足够長的時間,否則對比没有依據。

調整通常不會立刻见效,蜘蛛重新学习站内结构需要一定周期。建议一次只改一類問题,改完观察一段時間再動下一項,這样才分得清是哪一步起了作用。