搜尋抓取

蜘蛛會翻到第几頁才停:分頁列表上的抓取路径與連結寫法

分頁列表是蜘蛛進站後的重要通道,但第二頁之後的内容常被忽略。本文梳理分頁連結的几種常见寫法、蜘蛛翻頁时受到哪些因素影响,以及在分頁導航、Sitemap 和日誌观察上可以做的調整,让列表深處的 URL 更容易被蜘蛛發現。

搜尋抓取

蜘蛛會翻到第几頁才停:分頁列表上的抓取路径與連結寫法

做内容站的人经常盯着首頁和詳情頁,却容易忽略一類頁面:分頁列表。分類、标簽、文章归档、搜尋结果,几乎每個列表都會分頁。對蜘蛛来说,這些分頁是一层层往下的通道,第一頁好抓,第二頁、第五頁、第二十頁就没那么确定了。分頁深度和分頁連結的寫法,直接决定了列表深處的内容還能不能被 URL 發現。

分頁連結的几種寫法,蜘蛛的處理方式不一样

同样是“下一頁”,實現方式不同,對抓取路径的影响也不同。

  • 普通 a 連結带頁碼參數:最常见,比如 /list?page=3。每頁都是獨立的 URL,蜘蛛可以顺着連結逐頁往後走,但頁碼越深,被重新抓到的概率越低。
  • rel="next" 與 rel="prev":用来标注頁面之間的顺序關系。現在主流搜尋引擎對它的依赖已经弱化,但作為辅助信号保留下来没有坏處。
  • 纯 JavaScript 加载更多:点击按钮才追加内容,URL 不變。如果按钮背後没有可被發現的連結,那么第一頁之後的内容對蜘蛛基本是隐形的。
  • 分頁 URL 固定但内容滚動:用戶往下滚,頁面自動加载下一批,地址栏始终是第一頁的地址。這種寫法對用戶流畅,對 URL 發現不友好。

蜘蛛翻頁时會碰到哪些情况

假设一個分類下有两百篇文章,每頁二十篇,就是十個分頁。蜘蛛從第一頁進入後,通常會顺着下一頁或數字頁碼往後点,但它不會無限翻。几個因素會影响它走多深。

翻頁路径是否连續

如果分頁只提供“下一頁”,蜘蛛想找第十頁就得一頁頁走過去;如果同时给出數字頁碼列表,它可以從第一頁直接跳到第八頁。路径越短,深處的頁面越容易被發現。常见的做法是保留下一頁按钮,同时在列表底部铺一排頁碼。

分頁本身是否消耗抓取配額

分頁頁面對用戶有價值,但内容與列表頁高度重复。当分頁數量很大时,它們會占掉一部分抓取時間。可以观察日誌里分頁 URL 的抓取频次,如果分頁被抓的次數明顯超過詳情頁,說明抓取预算花在了通道上,而不是目的地上。

新内容出現在哪一頁

按時間倒序的列表,新文章永遠在第一頁,蜘蛛抓第一頁就能拿到最新連結,這是比較理想的狀態。如果排序按热度、随机或人工推荐,新内容可能沉在後面的分頁里,需要額外用 Sitemap 或站内推荐位补一條通路。

几個可以落地的調整

  1. 确保分頁連結是真正的 a 标簽,能被静態 HTML 解析出来,而不是依赖点击事件才生成 URL。
  2. 给分頁保留稳定的 URL 结构,頁碼參數不要每次渲染都換一種拼接方式,否則同一頁會被当成多個地址。
  3. 在 Sitemap 里可以考虑收錄有價值的列表頁,但不必把每一個分頁都塞進去,那只是重复提交同一批内容。
  4. 列表底部加明确的分頁導航,让用戶和蜘蛛都知道目前在第几頁、大概有多少頁。
  5. 定期看日誌,找出哪些分頁被抓得很少,再判断是路径太深,還是連結根本没輸出。
分頁不是要全部抓完,而是要保證有價值的内容不會因為藏在第十頁而没人找到。通道够用就行,不必把每個通道都铺满。

把分頁当成抓取路径的一部分来看,思路會清楚很多:用戶和蜘蛛都需要一條能走到底的路,但這不代表每個轉角都要设一個入口。先保證連結能被發現,再谈抓取效率,顺序反了容易白費力气。