站点运营

站点运营:分頁與列表頁自查,別让翻頁把蜘蛛带進無效循环

列表頁和翻頁地址是站点里數量最多、最容易被忽略的一類入口。本文從地址唯一性、翻頁實現方式、空列表狀態、日誌观察等角度,给出一份可执行的分頁自查清單,帮助把抓取资源留给真正值得收錄的地址。

站点运营

站点运营:分頁與列表頁自查,別让翻頁把蜘蛛带進無效循环

列表頁和分頁往往是站点里數量最多、也最容易被忽略的一類地址。一個栏目有几百篇文章,就會顺带产生几十個翻頁地址;這些頁面既是用戶浏览的路径,也是蜘蛛發現新内容的主要入口。翻頁逻辑一旦寫得不讲究,轻則浪費抓取资源,重則让蜘蛛在無穷序列里打轉。

先弄清楚你有哪些列表頁

動手調整之前,先把列表類地址數一遍:栏目首頁、标簽頁、作者頁、搜尋结果頁、按時間归档頁、按分類组合的篩選頁,都属于這一類。接着分個類,哪些是用戶真會用的,哪些只是系統顺带生成的。分完之後判断标准會清晰很多——给用戶用的頁面值得好好维護,系統顺带生成的頁面則要考虑是否该让蜘蛛訪問。

分頁常见的几種毛病

  • 無限翻頁:第 200 頁、第 500 頁都能打開,内容早已没有實际價值,蜘蛛一頁頁爬過去,真正的新文章反而没被及时抓到。
  • 翻頁地址不固定:同一個列表既能用 /list?page=2,也能用 /list/page/2,還有带排序參數的第三種寫法,同一批内容被反复消耗抓取预算。
  • “加载更多”只對用戶可见:按钮背後靠脚本拼接,地址栏不變,蜘蛛按不到下一頁,列表後半部分基本不會被發現。
  • 列表頁塞了太多摘要或全文:列表與詳情内容高度重复,蜘蛛要花更多時間判断谁才是主版本。
  • 翻到最後一頁仍有“下一頁”:用戶和蜘蛛都會点進一個空列表。

翻頁怎么實現,先做取舍

传统參數翻頁

结构清晰、可以直接被連結,是最省心的做法。要注意保持參數唯一,別让排序、每頁條數等參數组合出成百上千個變体。必要时可以在 robots.txt 中限制带排序參數的路径,或對這類地址做規范化處理。

“加载更多”與無限滚動

這類交互對用戶友好,但需要額外补一條抓取路径。常见做法是给每個翻頁狀態一個真實地址,或者保留一個“查看全部/下一頁”的普通連結,让不支持脚本的訪問者也能走到後面的内容。

一份可以照着做的自查清單

  1. 随机挑三個栏目,手動翻到第 5 頁,看地址有没有重复或跳變。
  2. 检查分頁連結是不是普通的 a 标簽,能否直接複製打開。
  3. 確認最後一頁之後不再輸出“下一頁”連結。
  4. 看列表頁摘要字數是否過多,尽量只保留标题、時間和一两行简介。
  5. 检查空列表頁(篩選後無结果)返回的狀態,不要用 200 硬撑。
  6. 在服務器日誌里看看蜘蛛是否長期停留在翻頁地址上,詳情頁抓取量是否被挤压。
  7. 评估标簽頁與归档頁的總量,過多的低價值列表考虑收敛。

几個容易被忽略的细节

分頁地址的頁碼最好從 1 開始,並且不要让 /list 和 /list?page=1 两種形式同时存在。列表頁的标题可以带上頁碼或類別,但不要简單複製栏目名,否則几十個頁面标题會完全一样。另外,如果站点會随时插入新内容,第 2 頁之後的内容會整体後移,保持長期稳定的抓取节奏,比一次性把所有頁碼提交出去更有意义。

把分頁当成站点结构的一部分来管理,而不是模板自動生成的副产品,抓取路径會清楚很多。

分頁自查的目标不是让每一頁都被抓取,而是让蜘蛛把有限的時間花在真正值得收錄的地址上。