搜尋抓取

分頁列表里的抓取路径:蜘蛛要翻到第几頁才會發現新 URL

列表頁分頁是许多站点發現新 URL 的主干道。本文對比數字分頁、加载更多、無限滚動三種形式對蜘蛛的友好度差异,說明翻頁深度怎样影响抓取顺序,並给出分頁與 Sitemap 配合的實操建议,让新内容更快進入抓取队列。

搜尋抓取

分頁列表里的抓取路径:蜘蛛要翻到第几頁才會發現新 URL

很多站点的新内容並不靠首頁直接曝光,而是躺在列表頁的第 N 頁里。蜘蛛能不能發現它們,取决于分頁這條通路修得好不好。分頁做得好,新 URL 在發布後不久就會進入抓取队列;做得不好,内容會長期卡在“從未被發現”的狀態。

分頁是 URL 發現的主干道

對大多數内容型站点来说,蜘蛛進入站点的第一站往往是首頁,第二站就是列表頁。首頁给的是几個重点推荐,列表頁给的才是全部。如果列表頁只展示最近十條,並且没有任何通向更早内容的連結,剩下的 URL 就只能靠 Sitemap 或外鏈被發現,效率會差很多。

三種常见分頁形式的抓取友好度

數字分頁(?page=2 或 /list/2)

連結直接寫在 HTML 里,蜘蛛顺着点就能一层层往深處走,是最容易被抓的形式。需要留意的是每個分頁 URL 要能獨立訪問,不要依赖 Cookie 或 POST 請求切換。

“加载更多”按钮

按钮本身通常是 JS 事件,HTML 里没有對應的 href,蜘蛛点不動。常见补救方式是在按钮下方保留一组可点击的頁碼連結,或者在 noscript 里给出静態連結。

無限滚動

滚動加载的列表對新 URL 的發現帮助有限,因為蜘蛛的訪問不會触發滚動。可以為滚動内容配一套静態分頁入口,让同一批 URL 多一條到達路径。

翻頁深度與抓取顺序

蜘蛛的抓取顺序大致沿着連結层級展開,越靠前的頁面越容易被優先訪問。列表頁越深,被排到的机會越小。可以留意几点:

  • 第一頁到第三頁通常抓得比較勤,第五頁之後明顯變少;
  • 分頁連結如果只放在頁面底部、又被大量無關模块包围,蜘蛛仍可能点到,但優先級會降低;
  • 每頁列出的條目數量太少,URL 會被稀释到更多层分頁里;
  • 分頁參數若叠加排序、篩選组合,會产生大量近似 URL,反而分散抓取。

把分頁通路理顺的几件事

  1. 分頁 URL 结构保持稳定,不要今天用 /page/2、明天改成 ?p=2。
  2. 列表頁里的條目連結使用真實 href,不用 onclick 跳轉。
  3. 篩選、排序參數尽量用 robots.txt 或 canonical 收敛,避免生成成千上萬個空列表。
  4. 在 Sitemap 里單獨保留列表頁 URL,让它們有獨立入口。
  5. 内容量大的站点,可以做分類索引頁或专题頁,把深度摊薄。

分頁與 Sitemap 的分工

Sitemap 解决的是“有哪些 URL”,分頁解决的是“從這里能走到”。两者並不冲突:Sitemap 负责把新 URL 报备,分頁负责让它拥有一條可反复经過的内鏈路径。只报备不给通路,蜘蛛抓到一次之後可能很久不再回来;只有通路没有报备,新 URL 的首次發現就要等蜘蛛自然巡到。

分頁通路的價值不在于多抓几個頁面,而在于让新内容在發布後就有机會被排進队列。

最後,分頁抓取也會受服務器响應和抓取预算影响。列表頁如果本身很重、响應很慢,蜘蛛翻到第三頁时可能就收手了。把列表頁做得轻一点,比反复提交 Sitemap 更實在。