分頁是很多站点 URL 數量膨胀的主要来源。栏目列表往後翻,每頁一個地址;一篇文章拆成三段,每段一個地址。這些地址會被爬虫顺着翻頁連結一路發現,于是收錄报告里就多出成百上千個同质頁面。
動手處理之前,先確認一件事:你面對的是列表分頁還是内容分頁。两者的目的不同,處理方式也不一样,混在一起讨论很容易做出互相矛盾的决定。
一、两種分頁,两種目的
列表分頁
栏目頁、标簽頁、聚合頁往後翻产生的地址。它的作用是让爬虫和用戶找到更早的内容,属于入口性质,單個頁面本身的信息增量很低。
内容分頁
一篇文章因為篇幅長被拆成 1/2/3 頁。每一頁都是正文的一部分,合起来才构成一個完整内容,属于内容性质。
二、翻頁地址常见的几個問题
- 所有翻頁都 canonical 指向第一頁,等于告诉搜尋引擎後面几頁是重复的,但同时又保留着可点击的翻頁連結,信号前後矛盾。
- 翻頁 URL 带上了會话、排序、来源追踪等參數,同一個第 2 頁出現多個地址。
- 最後一頁没有出口,或者下一頁按钮失效,形成断头路。
- 内容分頁被当成獨立文章收錄,每頁都偏薄,结果谁都没能進入索引。
三、列表分頁的核對顺序
- 先看有多少頁真正被訪問過。從日誌里拉出翻頁地址的訪問量,很多站点的第 5 頁之後几乎没有点击,這部分優先收口。
- 每個翻頁地址自引用 canonical。不要跨頁指向第一頁,那样會把發現路径和索引信号搅在一起,後續很难判断是哪一环出了問题。
- 统一參數。排序、篩選、来源标记這類參數不要在翻頁連結里层层传递,翻頁只保留頁碼一個變量。
- 给深翻頁一個邊界。如果业務上确實不需要第 50 頁,就在入口层面收掉,而不是先敞開再靠 robots 事後屏蔽。
- 保留一條向上的路径。每個翻頁頁面都要能回到栏目首頁,避免爬虫進得去出不来。
四、内容分頁的處理思路
内容分頁對用戶和爬虫都不算友好,最省事的办法是合並成一頁,用锚点或目錄代替拆分。如果因為加载性能必须拆分,那么至少要做到:
- 每頁仍然自引用 canonical,不要互相指向;
- 頁與頁之間有明确的上一頁、下一頁連結,顺序固定不變;
- 标题和摘要能区分目前處于第几頁,避免三頁标题完全一样;
- 如果提供了完整版地址,把它作為規范地址,並确保它自己能被抓取到。
五、什么时候该收口
判断标准其實很朴素:這個翻頁地址有没有獨立的搜尋需求,有没有獨立的信息增量。两個都没有,就倾向于让它可被抓取但不進入索引;只要有一個成立,就按正常頁面来處理。收口的操作顺序是:先改内鏈和入口,再調 canonical,最後才考虑用 robots 或 noindex 兜底。
分頁本身不是問题,問题是同一批内容用几十個地址反复出現。先把地址收敛到可控數量,再谈收錄。
六、可以照着做的一轮检查
- 從站点地图或日誌里拉出所有带頁碼參數的地址,按數量排序。
- 区分列表分頁和内容分頁,分別統計占比。
- 抽查十组翻頁,看 canonical、上一頁下一頁連結、參數是否干净。
- 把没有点击、没有獨立内容的翻頁列成收口清單,标注改動方式。
- 改完後观察一段時間,對比抓取量和索引量的變化,而不是立刻下结论。