列表页翻页是收录问题里比较容易被忽略的一块。首页和栏目第一页通常会被认真对待,但翻到第 5 页、第 20 页的地址,往往在上线时顺手放开,之后就很少再看。结果是要么索引里堆了一批内容高度相似的页面,要么把翻页全部屏蔽,反而让一部分只在深层列表里出现的内容更难被蜘蛛发现。
翻页 URL 的几种常见形态
同样是翻页,地址形态不一样,处理方式也会不同。常见的有参数式,例如 ?page=2;路径式,例如 /list/page/2/;还有把筛选、排序和翻页叠在一起的形式,例如同时带 ?category=、?sort= 和 ?page=。前两种相对可控,第三种容易组合出大量 URL,是收录膨胀的主要来源。
这些地址指向的内容,往往只是同一批条目的不同排列顺序。对用户来说翻页是浏览动作,对搜索引擎来说却是另一个可抓取的 URL。是否值得让它们进入索引,取决于这些页面上有没有独立的、可被搜索的价值。
全放开、部分放开与收敛
全放开
内容总量不大、翻页深度有限、每页条目有明确区分的栏目,可以保持放开。典型情况是列表本身就有检索价值,比如按时间排列的上新页,翻到后面仍然是不同内容。
只放开前几页
更常见的做法是前几页正常放开,更深的翻页做收敛。深度阈值没有固定数字,可以结合实际抓取情况和页面价值来定。判断依据是:蜘蛛在翻页上花掉的时间,是否明显影响了真正重要的页面被重新抓取。
用 noindex 还是 robots.txt
这里是分页处理中最容易出错的地方。robots.txt 拦截后,蜘蛛看不到页面上的 noindex 指令,如果页面已经被索引,拦截本身并不能让它退出索引,只是不再抓取。相对稳妥的顺序通常是:先让页面返回 noindex,等索引里的地址逐渐减少,再考虑是否需要进一步限制抓取。反过来先加 robots.txt,往往会卡在半路。
筛选与排序参数要分开对待
分页参数、排序参数和跟踪参数性质不同。排序和筛选会改变页面内容组合,可能形成独立的落地页;跟踪参数不改变内容,更适合用 canonical 指向主地址来收敛。把这些参数统一当成一类处理,容易出现该保留的被屏蔽、该收敛的被放开。
一个可执行的自查顺序
- 先从日志里看翻页 URL 被抓取的次数和频次,确认它占了多少抓取份额。
- 再查索引里已经存在哪些翻页地址,统计它们分布在哪些栏目、深度大概到第几页。
- 逐个栏目判断:这些翻页页面有没有独立搜索价值,还是只是同一批内容的重复排列。
- 根据判断结果选择手段:保留放开、canonical 收敛、noindex 退出索引,或调整站内链接不再指向深层翻页。
- 改动之后再观察一段时间,重点看目标页面的抓取和索引是否往预期方向变化,而不是盯着单日数字。
几个容易忽略的细节
- 翻页页面之间的标题和描述如果完全一样,即便内容排列不同,辨识度也很低。
- 分页链接不要全部用 JS 渲染后才出现,否则蜘蛛可能连翻页入口都看不到。
- 列表页第一页和翻页之间尽量保持链接连通,避免出现只能靠参数拼接才能到达的孤岛地址。
- 站点规模变大后,翻页的抓取开销会放大,早期定好规则比后期清理省事。
分页收录没有通用答案。同样是第 10 页,在不同类型的站点里意义可能完全不同。与其套用某个模板规则,不如先把日志和索引里的实际情况看清楚,再决定哪些翻页值得留下。
处理分页收录,先看现状再定手段:日志里翻页占了多少抓取、索引里已经存在哪些地址,比直接套用某个模板更有参考价值。