分頁和無限滚動是收錄問题的高發区:要么第 2、3 頁長期停在“已發現但未抓取”,要么排序、篩選參數被大量收錄,反過来稀释了真正想進索引的頁面。動手處理之前,先把這些頁面按類型分清楚,再决定放行還是收敛。
一、先给分頁分類
- 内容序列頁:列表按時間或热度切成第 1、2、3 頁,每頁條目不同,用戶會真的往下翻。
- 導航切分:只是為了避免單頁過長而切分,第 2 頁之後没有獨立信息量。
- 參數型分頁:排序、视图、每頁條數、會话追踪等參數混在其中。
- 展示型滚動:前端無限滚動或“加载更多”,地址栏不變,或者地址變化不可控。
二、内容序列頁通常值得被收錄
這類頁面本身承载不同的條目集合,用戶搜尋某條内容时可能直接落在第 3 頁。放行的前提是把它当成獨立頁面来运营,而不是第一頁的附属品。
- 每頁给出差异化的标题與描述,不要所有頁碼共用同一套文案。
- canonical 自指,指向目前這一頁的地址。
- 不要把第 2 頁 canonical 到第 1 頁,那等于告诉引擎“這里没有獨立價值”。
- 不要用 noindex 一刀切,否則整條序列都會登出索引。
- 序列特別長时,可以只保留前若干頁作為可索引范围,後面的逐步收敛。
三、這几種分頁可以收敛
- 排序與视图參數,例如 sort、view、layout 之類。
- 會话 ID、来源追踪等對内容没有影响的參數。
- 每頁條數切換产生的重复组合。
- 纯導航切分、第 2 頁之後内容與第一頁高度重合的頁面。
收敛手段要分清楚:想让它不被抓取,用 robots;想让它被抓取但不進索引,用頁面上的 noindex;想让信号统一,用 canonical 或内鏈控制。三者混用往往出現“明明屏蔽了却還在索引里”的情况。
禁止抓取不等于禁止索引。一個被 robots 挡住的 URL 仍可能因為外鏈被收錄成一條没有摘要的结果。
四、無限滚動與“加载更多”
核心問题只有一個:這些内容有没有稳定、可被抓取的地址。如果所有條目只靠一次滚動加载,而 HTML 里只有首屏内容,那么首屏之外的部分很难被發現。
- 给分頁一個真實地址,例如 page=2,滚動或点击时同步更新地址栏。
- 在 sitemap 中列出重要的序列頁,给它們一條不依赖翻頁的發現路径。
- 首屏 HTML 里保留可点击的分頁連結作為兜底入口。
- 如果内容靠 JS 渲染,检查渲染完成後的 DOM 里是否真的存在這些連結和文本。
五、入口比數量更重要
分頁最常见的發現路径是“上一頁”連結,這會導致第 5 頁之後很久才被爬到一次。可以在分類頁提供頁碼跳轉或“查看全部”入口,也可以直接在 sitemap 中给出關键序列頁,把發現路径缩短。收錄效率的差別,很多时候不在頁面數量,而在入口深度。
六、怎么驗證處理是否有效
- 看抓取日誌里分頁 URL 的抓取频次與狀態碼,確認是否被大量重复抓取。
- 抽查渲染後的 canonical 與 meta robots,確認輸出的是你预期的值。
- 在索引狀態列表里核對被排除的原因:重复、已抓取未编入索引、被 noindex 分別對應不同處理。
- 比對 sitemap 與實际内鏈是否一致,避免一邊提交一邊被自己屏蔽。
最後提醒一句:让分頁被收錄不是目标,让用戶和搜尋引擎顺利抵達目錄深處的有效内容才是。分頁本身不产生價值,入口才产生價值。