列表頁、归档頁、标簽頁的分頁,是站点里很容易被忽略的一類入口。第一頁往往在導航里,後面的第2頁、第3頁却要靠翻頁連結一层层点進去。如果翻頁结构没交代清楚,蜘蛛很可能只抓到第一頁就停下,後續内容就變成了没有入口的孤岛。
先看翻頁連結是不是真的可抓
很多分頁用“加载更多”按钮或無限滚動實現,用戶往下滑,内容不断出現,但頁面源碼里只有一批初始資料,後面的内容靠JS請求追加。這種形式對用戶友好,對蜘蛛却不一定友好。蜘蛛看到的是一個没有後續連結的頁面,自然不會再往下走。
如果必须用“加载更多”,至少要保證有分頁URL可以單獨訪問,並且在源碼里给出可点击的連結。例如在列表底部保留“下一頁”的a标簽,指向第2頁的真實地址。不要只用button加事件监听。
分頁URL要干净,別带一堆無用參數
翻頁地址常见两種:路径型 /list/page/2/ 和參數型 /list?page=2。两種都可以,關键是保持一致,別同一批内容同时出現多種翻頁寫法。參數型如果還混着排序、篩選、時間范围,容易组合出大量地址。
建议:
- 翻頁參數只保留頁碼,如 page=2,不要加没必要的跟踪參數。
- 排序和篩選尽量用可選的路径或參數,並明确哪些组合需要收錄,哪些不需要。
- 避免把“上一頁/下一頁”連結寫成带session ID或随机值的地址。
canonical 與分頁:別把第2頁指回第1頁
有些站点為了集中權重,把分頁的 canonical 全部指向列表第一頁。這样做的問题是:第2頁上的内容條目會被当成重复内容,蜘蛛可能不再抓取後面的頁面。分頁本身不是重复内容,它只是内容的不同片段。正确的做法是让每一頁自己 canonical 自己,同时确保第1頁能通過翻頁連結到達後續頁。
如果确實希望第一頁作為規范入口,那也要保留後續頁面的可抓取性和獨立地址,而不是简單用 canonical 全部合並。
rel next / prev 現在怎么用
Google 已经明确不再把 rel next 和 rel prev 作為索引信号,但其他搜尋引擎和爬虫仍可能參考,而且它本身是描述頁面關系的语义标记。可以保留,但不要依赖它来解决抓取問题。真正有用的還是頁面里明明白白的翻頁連結。
無限滚動與“加载更多”的折中做法
如果前端体驗必须做無限滚動,建议采用渐進增强:預設輸出分頁連結,点击“加载更多”时再替換為動態加载。這样蜘蛛至少能顺着連結翻到下一批内容。另一種做法是分頁URL保留,JS只负责把下一頁内容拼到目前视图中,但地址栏和連結依然可訪問。
分頁深度與抓取预算
列表頁分頁越深,蜘蛛到達的成本越高。如果一個栏目有200頁,蜘蛛不太可能把每一頁都抓一遍。這时可以:
- 把重要内容同时放到更浅的入口,如首頁推荐、频道首頁、专题頁。
- 控制每頁條數,別让第一頁就列出几百條,導致後續頁面没有抓取必要。
- 對已经没有新内容的深层分頁,可以评估是否需要保留可抓取狀態,或做适当的 noindex 處理,但要谨慎。
自查清單
- 列表第一頁是否有清晰的“下一頁”連結,且是标准a标簽。
- 翻頁URL是否稳定,不带無關參數和随机值。
- 第2頁、第3頁的 canonical 是否指向自身,而不是第一頁。
- “加载更多”按钮是否有對應的可訪問URL备用。
- 分頁頁面是否在XML站点地图中有選擇地提交,而不是把所有翻頁都塞進去。
- 深层分頁是否消耗了過多抓取预算,重要内容是否有更浅的入口。
分頁不是大問题,但它常常是内容被發現的第一道门。把翻頁連結、URL和規范地址處理好,蜘蛛才能顺着列表把後面的内容一頁頁翻完。