分頁是站点里最容易被忽略的一類 URL:數量多、结构相似、内容重复度高,既承担着把蜘蛛带到深层詳情頁的任務,又常常被当成“没有價值”的頁面直接砍掉。這两種身份混在一起判断,很容易做出前後矛盾的操作。
先想清楚:分頁頁面對用戶有没有用
判断一個分頁 URL 该不该進索引,起点不是“它重复不重复”,而是“用戶能不能把它当成一個入口”。同样是 /list?page=3,两種情况差別很大:
- 有獨立检索價值的列表:分類頁、栏目頁、按時間归档的文章列表。用戶會直接搜尋某個分類下的内容,這類分頁被收錄是有意义的。
- 纯導航型的分頁:站内搜尋结果頁、按價格或销量临时排序的列表、标簽组合頁。用戶几乎不會把這些地址当作入口,它們的主要作用是让蜘蛛繼續往下爬。
三種常见處理方式,各自的代價
保持可抓取,頁面自引用 canonical
這是最省事的做法:第 1 頁指向自己,第 2 頁也指向自己,不做跨頁 canonical。好處是連結關系完整,蜘蛛可以通過分頁導航繼續深入;代價是索引里會多出一批相似頁面,需要接受這種冗余。
给分頁加 noindex
noindex 能阻止分頁進索引,但它不阻止抓取,頁面里指向詳情頁的連結依然可以被跟随。真正的風險在于:如果分頁是詳情頁唯一的内鏈入口,長期看會削弱這部分内容的發現效率。做法上,先確認詳情頁還有其它入口(分類頁、相關推荐、sitemap),再考虑對深层分頁做收敛。
用 robots.txt 或參數屏蔽
直接屏蔽分頁地址,通常比 noindex 更激進:蜘蛛连頁面都讀不到,也就看不到里面的連結。除非這些分頁确實不携带任何新 URL,否則不建议把它当成預設選項。
分頁頁的價值往往不在它自己,而在它指向的下一頁和詳情頁。動手之前先確認:拿掉它之後,蜘蛛還有没有別的路走進来。
“加载更多”和無限滚動要額外處理
用按钮加载或無限滚動的列表,用戶滚動时看到的内容,蜘蛛不一定看得到。常见的补救方式有两種:一是按钮本身用真實的 a 标簽指向下一頁地址,而不是纯 JS 事件;二是保留一套可抓取的分頁地址作為备份,滚動只是前端的呈現方式。如果頁面完全依赖 JS 渲染出後續内容,就要確認渲染後的 HTML 里确實出現了對應的連結。
和詳情頁的内鏈一起考虑
- 詳情頁之間、詳情頁到分類頁的回鏈,能降低整站對分頁鏈路的依赖。
- sitemap 里放詳情頁地址,可以让發現路径不完全依赖列表翻頁。
- 分頁數量很多时,優先保證前几頁可抓取,深层分頁可以收敛。
自查顺序
- 列出所有带分頁參數的 URL 形態,確認是否有多種寫法指向同一頁。
- 看這些頁面是否有站内或外部入口,還是只靠“下一頁”串联。
- 確認詳情頁除了分頁還有哪些入口,判断分頁是否不可替代。
- 检查按钮和滚動加载是否輸出了真實連結。
- 决定哪些分頁保留、哪些加 noindex、哪些干脆不生成。
- 改完之後观察一段時間,看詳情頁的發現和收錄有没有變化。
分頁處理没有统一答案,關键是把“给用戶用的入口”和“给蜘蛛用的通道”分開评估,再决定它要不要出現在索引里。