站点运营

站点运营:分頁導航自查,別让第二頁之後變成抓取黑洞

列表頁翻頁看起来是小事,却常常决定内容能不能被爬虫看见。本文從翻頁入口、URL 形態、标题規范化、頁碼上限和日誌观察几個方面,给出可落地的自查步骤,帮你把分頁從抓取死角變成一條正常通路。

站点运营

站点运营:分頁導航自查,別让第二頁之後變成抓取黑洞

翻頁入口:先確認它是可点击、可抓取的連結

列表頁、标簽頁、归档頁往往都有翻頁。問题在于,很多模板把“下一頁”做成了按钮:点击後由脚本拼接參數、追加内容,源碼里只有一個 div 或 span。人看得见,抓取程序看不见。爬虫不會去点按钮,它只會沿着 a 标簽的 href 走。如果翻頁入口不是連結,第二頁之後的内容基本等于對搜尋侧關閉。

自查时可以直接禁用 JavaScript 看渲染前的源碼,或者用查看源代碼的方式確認翻頁控件里到底有没有 href。

  • “下一頁”“上一頁”“末頁”是否為带 href 的 a 标簽。
  • href 是否指向真實可訪問的地址,而不是 javascript:void(0) 或 #。
  • 分頁連結是否被 rel="nofollow"、onclick 或事件拦截。
  • 翻頁控件是否只在滚動到底部时才由脚本動態生成。

分頁 URL 要收敛,別让參數無限膨胀

分頁地址常见两種形態:路径式 /list/page/2/ 和參數式 /list?page=2。两種都能用,關键是同一個頁面只對應一個地址。

  • 不要同时存在 ?page=2、?p=2、?pageno=2 這類多套參數寫法。
  • 排序、篩選、每頁條數等參數不要和頁碼混在一起,生成大量组合地址。
  • 大小寫、结尾斜杠在全站保持一致。
  • 分頁地址不要带會话 ID、追踪參數之類的临时字段。

頁碼上限與超范围頁面的處理

有的站点允许翻到几百頁甚至上千頁,越往後内容越舊、價值越低,抓取预算却被大量消耗。更常见的問题是:超過實际頁數後仍返回 200 和空列表,等于人為制造一批空頁面。

建议给分頁设一個合理上限,超出范围的請求返回 404 或 410。如果确實要保留舊内容,就把深分頁收敛成归档入口,而不是让爬虫一頁一頁往下翻。

判断标准很简單:如果某個頁碼對應的列表,用戶几乎不會看、站内也没有其他入口指向它,那它大概率不值得被單獨收錄。

分頁頁的标题、描述與 canonical

标题不要全站共用一句

所有分頁共用同一個 title,會让搜尋侧难以区分哪一頁對應哪批内容。至少把頁碼或区間带進去,例如“某某列表 第 3 頁”,让每個分頁頁有一個自洽的身份。

canonical 要指向分頁自身

常见誤区是把所有分頁的 canonical 都指向第一頁,希望“集中權重”。這样做的直接後果是,後續頁面的内容不容易被当作獨立入口。除非你有明确的合並意图,否則分頁頁的 canonical 指向自己更稳妥。

無限滚動要有可抓取的分頁兜底

無限滚動對用戶体驗友好,對抓取不友好:内容按需加载,連結不在初始 HTML 里。可行的做法是保留一套传统的分頁連結作為兜底,滚動只是视觉增强,底层结构仍然是 a 标簽串联。也可以给每次加载生成獨立 URL,但要注意別把同一批内容拆成過多地址。

用抓取日誌驗證分頁覆盖率

改完之後別只盯着頁面看,去日誌里核對。

  1. 筛出分頁 URL 的抓取记錄,看爬虫是否真的訪問到第二頁、第三頁。
  2. 观察返回狀態碼,確認没有大量 200 空頁或 5xx。
  3. 對比分頁抓取量與列表頁實际頁數,估算覆盖比例。
  4. 检查被抓取的分頁是否集中在第一頁,後續頁几乎没有记錄。

一份可执行的自查清單

  1. 翻頁控件是可点击的 a 标簽,href 指向真實地址。
  2. 同一頁只有一個規范地址,參數不重复、不混杂。
  3. 分頁设有上限,超范围返回 404 或 410。
  4. 分頁頁标题包含頁碼或区間,便于区分。
  5. canonical 預設指向自身,除非有明确的合並策略。
  6. 無限滚動场景下保留传统分頁兜底入口。
  7. 日誌中能看到深层分頁被抓取,而不是只有第一頁。

分頁是内容站最容易被忽略的基础设施。它不需要复杂的技術改造,多數时候只是把按钮換成連結、把參數理一理、把上限定下来。做完這些,再去日誌里確認一遍,比反复猜测“内容為什么没被發現”要實在得多。