搜尋抓取

分類頁翻頁連結怎么摆:蜘蛛能顺着分頁走到第几頁

分頁是列表頁里最容易被忽略的 URL 出口。本文從翻頁連結的三種形態、上一頁與下一頁的寫法、深翻頁的取舍,到分頁頁面的去重處理,說明蜘蛛顺着列表逐頁往下走时會遇到什么,以及這些連結该怎么摆才不白費。

搜尋抓取

分類頁翻頁連結怎么摆:蜘蛛能顺着分頁走到第几頁

分頁連結是列表頁里最密集的 URL 出口

一個商品列表頁,正文里可能只有二十個商品連結,但頁碼條或頁脚上還排着一串翻頁連結。對蜘蛛来说,這些同样是能顺着走的入口。不少站点把注意力放在詳情頁和栏目導航上,却很少检查翻頁連結寫成什么样、能不能点、点過去是不是同一個頁面。结果往往是:列表第一頁被反复抓,第二頁往後几乎没人走。

三種常见的翻頁形態

1. 静態化路径,例如 /list/2/

地址结构清晰,每頁都有獨立 URL,蜘蛛按顺序走下去没有障碍。代價是頁碼多时會产生大量需要维護的地址,翻頁内容更新之後,舊頁仍會被訪問到。

2. 參數式,例如 /list/?page=2

實現简單,但要注意參數寫法统一。不要一頁用 ?page=2,另一頁寫成 ?p=2&from=nav,同一份内容對應多個地址,後續去重會更麻烦。

3. 按钮或“加载更多”

如果翻頁完全靠 JS 拉取資料、頁面初始 HTML 里没有可点的 a 标簽,蜘蛛就看不到下一頁地址。可行的做法是给每個分頁保留一個真實連結地址,按钮只是加载方式上的补充。

上一頁、下一頁和首尾頁怎么寫

rel="next" 與 rel="prev" 現在更多是提示性的,真正决定蜘蛛能不能繼續走的,還是頁面上有没有可抓取的 a 标簽。所以:

  • 上一頁、下一頁用普通 a 标簽,href 指向真實分頁地址;
  • 第一頁和最後一頁的連結可以保留,但不必在每一頁都重复輸出一大串頁碼;
  • 頁碼條上不要用 javascript:void(0) 或 href="#" 占位;
  • 分頁地址是參數形式时,尽量保持參數名和顺序一致。

深翻頁要不要让蜘蛛繼續走

不是所有翻頁都值得被發現。越往後的頁碼,内容重复度越高,對用戶和蜘蛛的價值都有限。常见的處理是设一個翻頁上限,比如只保證前 10 到 20 頁可以正常訪問,更深的頁面仍然存在,但不主動在頁碼條里暴露出来。

判断标准可以简單一点:這一頁上還有没有用戶會点進去的内容,或者還有没有值得單獨被訪問的信息。

分頁頁面的去重與規范化

分頁頁之間内容高度相似,容易造成收錄上的分散。可以做几件事:分頁頁自身的 canonical 指向自己,不要统一指向第一頁;第一頁只保留一個規范地址,避免 /list/ 和 /list/?page=1 同时存在;排序參數(如 ?sort=price)與翻頁參數混在一起时,考虑收敛掉一部分组合。

顺手检查的几項

  1. 列表第一頁里能否找到第二頁的真實連結;
  2. 第二頁里能否繼續找到第三頁,逐頁递進是否成立;
  3. 翻頁連結是否出現在初始 HTML 中,而不只是渲染後才出現;
  4. 分頁地址是否稳定,有没有因篩選條件不断生成新的组合;
  5. Sitemap 里是否只提交了主要分頁,而不是全部頁碼。

分頁本身不复杂,但它常常是列表型站点里 URL 發現的主干道之一。把翻頁連結寫清楚、控制好深度和组合數量,比反复提交 Sitemap 更直接。