网站收录

列表页的翻页与筛选参数:收录该收哪些、怎么收口

列表页往往是站内 URL 最多的地方:翻页、排序、筛选参数叠加之后,地址数量成倍增长。它们不算垃圾页面,但也没必要全部进入索引。本文按栏目页、翻页、筛选组合、站内搜索分类,说明每一类该收还是该挡,以及 robots.txt、noindex、canonical 三种手段各自适用的边界与收口顺序。

网站收录

列表页的翻页与筛选参数:收录该收哪些、怎么收口

电商、资讯、房产这类站点,列表页通常是 URL 数量最多的部分。一个栏目加上翻页、排序、筛选条件,可以轻松生成成千上万个地址。它们不是垃圾页面,但也不是每一页都值得占用索引和抓取资源。处理思路往往不是「全收」或「全挡」,而是按页面类型分档。

先按类型分档,再决定去留

把列表类 URL 拆开看,大致是四类:

  • 栏目首页:如 /news/、/category/phones/,是站内链接的主要入口,通常应保留在索引中。
  • 翻页:?page=2、/list_2.html 这类,承载的是同一批内容的后续排列。
  • 筛选与排序:?brand=x、?price=100-200、?sort=new,参数组合越多,URL 越碎。
  • 站内搜索与空结果页:用户输入产生的地址,一般不建议进入索引。

翻页:可以收,但不必刻意追

翻页页面上有真实内容,搜索引擎可以收录,也确实有用户会搜到第二页上的商品。但从抓取成本看,深度翻页的价值递减得很快。比较稳妥的做法是:

  • 前几页保持可抓取、可点击,链接用普通的锚点标签输出,不要只靠脚本里的「加载更多」按钮。
  • 无限滚动页面要提供分页地址或静态的翻页入口,让爬虫有路可走。
  • 不必为了让每一页都被收录而堆砌内链,把翻页链接铺满全站,反而会稀释重要页面分到的抓取。

筛选参数:重点在收敛,不在屏蔽

筛选页里有一小部分是有价值的,例如品牌、品类这种固定且有人搜索的维度,可以做成静态化的落地页。麻烦的是多维组合:颜色加尺寸加价格再加排序,组合数很快上百上千。

常见的处理方式有三种,各有边界:

  1. robots.txt 屏蔽参数路径:能阻止抓取,但被屏蔽的地址如果已经被外部链接指向,仍可能以「被屏蔽」的状态出现在索引里,用户看不到内容。
  2. canonical 指向无参数版本:这是提示性信号,搜索引擎会参考,但不是强制指令,参数页本身仍可能被抓取。
  3. 页面加 noindex:需要搜索引擎先抓到页面才能读到这个标签,所以屏蔽抓取和 noindex 不要同时用在同一个地址上。
顺序上建议先想清楚一件事:这个 URL 要不要被抓。要抓但不要进索引,用 noindex;不想被抓,用 robots.txt;只是重复,用 canonical。三个混着用,排查时很难判断到底哪一步在生效。

一个可执行的收口顺序

  1. 导出近 30 天日志里被频繁抓取的列表类 URL,按路径和参数归类。
  2. 标出其中带流量、带外链、有搜索需求的少数,保留它们,并在页面之间建立正常内链。
  3. 剩下的组合参数,先统一 canonical 到主版本,观察一段时间再决定是否需要进一步处理。
  4. 站内搜索结果页、排序方向相反(价格从低到高与从高到低)这类页面,优先从索引中排除。

几个容易踩的点

  • 筛选页的标题和描述由参数动态拼接,容易生成大量几乎相同的 TDK,反而放大重复内容问题。
  • 把分页页面全部 canonical 到第一页,等于告诉搜索引擎「这些是同一篇」,后续页的内容可能因此不被收录。
  • 空结果页返回 200 并渲染一个「没有找到」的模板,这类页面被大量抓取是纯消耗。
  • 参数顺序不同(?a=1&b=2 与 ?b=2&a=1)会生成两个 URL,服务端最好做一次归一化跳转。

列表页的收录问题,本质是资源分配问题。把有限的抓取留给有独立价值、能被用户搜到的页面,剩下的靠 canonical、noindex、robots 各司其职地收口,比追求「每一个 URL 都被收录」要现实得多。调整之后,用日志和覆盖率报告对照一段时间,看抓取是否集中到了你希望的那些页面上。