搜尋抓取

分頁 URL 的發現鏈:第 2 頁之後靠什么被搜尋蜘蛛看到

分頁 URL 大多不靠 Sitemap 或首頁直達,而是靠頁碼連結一层层被带出来。本文梳理第 2 頁之後的發現路径、page=1 與首頁的重复處理、加载更多與無限滚動的 URL 問题,以及排序篩選组合带来的抓取稀释,並给出用日誌核對分頁鏈的步骤。

搜尋抓取

分頁 URL 的發現鏈:第 2 頁之後靠什么被搜尋蜘蛛看到

列表頁做分頁是很常见的做法,但分頁 URL 的發現逻辑和普通頁面不太一样。它們通常不靠 Sitemap 或首頁直達,而是靠“下一頁”“第 N 頁”這類連結一层层被带出来。鏈路上任何一處断掉,後面的頁碼就可能長期停在“已發現未抓取”,甚至完全没被看到。

分頁 URL 的發現靠的是一條鏈

内容頁可以從首頁、分類頁、Sitemap 等多個入口被發現,冗余度很高。分頁頁面則往往只有一條路径:第 1 頁 → 第 2 頁 → 第 3 頁。這意味着它對中間环节特別敏感,一旦某一頁的頁碼導航缺失或被 JS 完全接管,後續頁碼就失去了入口。

page=1 與首頁内容重复怎么處理

带參數的首頁和不带參數的首頁通常渲染同样的内容。建议让首頁自引用 canonical,把 page=1 指向首頁,或用 301 直接合並到一個地址。這样做的價值不是“多一個 URL 被收錄”,而是让抓取配額集中在真正需要被發現的第 2 頁及之後。

第 2 頁到底怎么被看到

關键在第 1 頁返回的 HTML 里有没有指向第 2 頁的可解析連結。如果列表只輸出前若干條,頁碼條由脚本在滚動後才插入,搜尋蜘蛛在渲染前後看到的结构可能不同。更稳妥的方式是服務端直接輸出頁碼導航,至少在首屏 HTML 中就包含“下一頁”和末頁連結。

  • 頁碼導航使用真實的 a 标簽與 href,而不是 onclick 或表單提交
  • “下一頁”按钮指向具体的第 2 頁 URL
  • 末頁可以直達,避免只能一頁一頁往後翻
  • 頁碼連結不要包裹在需要点击才展開的折叠层里

rel=next/prev 還能指望吗

主流搜尋引擎已经明确不再把 rel=next/prev 当作索引或抓取的信号,所以不要把發現路径押在它上面。它可以作為站内语义的补充,但真正让第 2 頁被看到的,仍然是頁面里可点击、可解析的普通連結。

末頁與“下一頁”的断点

有些站点在第 8 頁之後只顯示“上一頁”,後面的頁碼就失去了繼續深入的入口。可以考虑在頁碼條中保留首尾頁碼,让最末几頁也有稳定路径;或者在末頁明确标注這是最後一頁,避免抓取反复试探不存在的第 N+1 頁。

加载更多與無限滚動

這两種交互的本质是把内容在客戶端追加。如果 URL 不發生變化,第 2 屏的内容和第 1 屏共享同一個地址,搜尋蜘蛛只能看到一個 URL。想让後續内容具备被發現的條件,應尽量為每一段内容提供獨立地址,並保證该地址在服務端可直接訪問,而不是必须依赖滚動和点击才會出現。

排序、篩選與分頁的组合膨胀

带排序和篩選參數的分頁會成倍放大 URL 數量,而且大量组合的内容高度相似。比較務實的做法是只保留少量真正有價值的排序作為可抓取連結,其余组合不輸出為 a 标簽,避免把抓取配額消耗在近似頁面上,從而挤占内容頁的抓取机會。

用抓取日誌核對分頁鏈

  1. 在抓取日誌中筛出分頁 URL,確認第 1 頁、第 2 頁、末頁是否都出現過請求
  2. 看請求的時間顺序,判断是否形成逐頁推進,而不是只抓了第 1 頁
  3. 核對 Search Console 中“已發現未抓取”的列表里,分頁 URL 占比多少
  4. 检查這些 URL 的返回碼和响應時間,排除因超时或错誤導致的推進中断
分頁 URL 的發現是一條鏈,鏈上連結的形態(是否在 HTML 中、是否真實可点)比連結數量更重要。断了一頁,後面就都看不见。

另外要注意服務器层面的影响。分頁頁面的抓取優先級通常低于内容頁,当站点响應變慢时,這類 URL 往往是最先被延後的一批,表現就是頁碼推進停在中途。因此排查分頁發現問题时,連結结构和响應時間需要一起看。