分頁為什么值得單獨拿出来讲
很多站点首頁和栏目頁做得不错,但内容其實藏在第二頁、第三頁之後。蜘蛛顺着連結走到列表頁,只看到十條連結,再往下就断了,後面的内容等于没有被發現的机會。入口頁把蜘蛛請進来是一回事,能不能让它繼續往深處走是另一回事。
蜘蛛池的作用是提供更多入口和連結路径,但如果入口頁後面是一堵墙,再多入口也只是把蜘蛛带到同一堵墙前面。分頁属于离内容最近的一层结构,這一层做通了,收益往往比多加几個入口更直接。
三種常见的分頁形態
1. 传统 URL 分頁
形如 /list/2.html 或 /list?page=2。這是對蜘蛛最友好的一種:每頁都有獨立 URL,連結寫在 HTML 里,蜘蛛可以顺着 a 标簽一路点下去。要注意的是參數寫法统一,別一部分用 ?page=,一部分用 ?p=,一部分用 /page/2/,同一份内容被拆成好几套 URL,反而增加归一负担。
2. 加载更多 / 無限滚動
点一下按钮或者滚到底部才加载下一批,内容靠 JS 請求接口取回。對用戶流畅,對蜘蛛就不一定了:如果按钮只是個 div,第二頁的資料也不在初始 HTML 里,蜘蛛看到的就永遠是第一頁。
3. 上一頁 / 下一頁連結缺失或不可点
有的分頁控件完全由 JS 渲染,有的把翻頁做成了 button,還有的只在鼠标悬停时才出現。這些在浏览器里都正常,但對抓取来说约等于没有連結。連結是不是真實存在,比連結好不好看重要得多。
無限滚動想被翻到,通常有几種折中做法
- 首屏之外补一组静態連結:在列表頁底部或侧栏,把後續几頁的 URL 用 a 标簽列出来,即使用戶主要靠滚動。
- 分頁 URL 可獨立訪問:让 /list?page=3 直接能打開完整 HTML,而不是必须点按钮才存在的狀態。
- 滚動到底时同步改地址:用 history API 把目前批次寫進 URL,至少让不同批次的内容各自有可訪問地址。
- 列表頁保留一條清晰的上級入口:從栏目頁、频道頁能直接点到分頁,不要只能靠首頁一路滚下去。
几個容易被忽略的细节
- 分頁連結不要全部指向第一頁,或者用 JS 统一跳轉,那等于告诉蜘蛛這里只有一頁。
- 每頁放多少條没有标准答案,連結太多會稀释權重,太少則层級過深,按内容量調整即可。
- 翻到最後一頁要有明确收尾,返回空列表或者重复第一頁内容都不太合适。
- 篩選、排序參數容易生成大量近似 URL,建议對這些组合加 canonical 或直接屏蔽,別让抓取预算耗在重复頁上。
- 分頁 URL 的生命周期要管住,栏目調整後老的分頁地址尽量保留跳轉,不要直接留個 404。
一個简單的判断方式:把浏览器 JS 關掉,打開列表頁,看看還能不能顺着連結点到第二頁、第三頁。如果点不到,蜘蛛大概率也点不到。
落地时的检查顺序
先看列表頁初始 HTML 里有没有翻頁連結,再看這些連結是不是真實的 a 标簽、href 是否可直接訪問,最後看翻頁後的内容是不是真的換了。三步都過了,分頁這條路径才算通。至于這些頁面最终會不會被收錄、多久被收錄,取决于内容本身和整体站点质量,分頁只解决“能不能被走到”這一段。