技术 SEO · 第 12 篇

分页、筛选与参数 URL:列表页与电商筛选页收录控制

约 16 分钟阅读 更新于 2026-06-24 MagicSEO 编辑部 · 人工审核 抓取控制

列表页、分页、电商筛选是大型网站最容易"失控"的地方:一个分类页加上颜色、尺码、价格、排序等条件,能瞬间衍生出成千上万个近似重复的 URL,把抓取预算烧光、稀释规范信号。这篇文章讲清分页怎么处理、筛选导航如何控制、参数 URL 如何取舍,给你一套可落地的决策框架。

分页的正确处理#

分页(pagination)是把长列表拆成多页:文章列表第 1、2、3 页,或商品分类的多页。处理分页的核心原则,比很多人想象的简单:

  1. 每页 canonical 指向自身:第 2 页的 canonical 就是第 2 页,不要指向第 1 页——每页内容不同,指向第 1 页会导致后续页内容不被收录。
  2. 页面间有真实分页链接:用带 href<a> 标签连接相邻页,让爬虫能逐页发现(参见 JavaScript SEO)。
  3. 每个分页项有自己的入口:列表里的每个内容(文章/商品)都应有可抓取的链接。
rel=next/prev 已被弃用Google 在 2019 年宣布不再使用 rel=next/rel=prev 作为索引信号。你不必专门为 Google 添加它们(加了也无害)。现在处理分页就靠:每页自引用 canonical + 可抓取的分页链接。不要再依赖 rel=next/prev 来"声明分页关系"。
分页的正确写法
<!-- 第 2 页 /blog?page=2 的 canonical 指向自己 -->
<link rel="canonical" href="https://example.com/blog?page=2">

<!-- 可抓取的分页导航 -->
<nav aria-label="分页">
  <a href="/blog?page=1">上一页</a>
  <a href="/blog?page=3">下一页</a>
</nav>
不要用 "View All" canonical 替代分页如果有一个"查看全部"页面且加载性能可接受,可以让分页 canonical 指向它——但前提是 View All 页面体验良好、不会太慢。对大多数站点,保持每页自引用 canonical 更稳妥。无限滚动则必须配套可抓取的分页 URL,否则后续内容无法被发现。

筛选导航:URL 爆炸的根源#

筛选导航(faceted navigation,也叫分面导航)是电商的标配:让用户按颜色、尺码、品牌、价格区间、排序等维度筛选商品。问题在于,每一个筛选组合往往都生成一个独立 URL:

组合爆炸示意
/shoes
/shoes?color=red
/shoes?color=red&size=42
/shoes?color=red&size=42&brand=nike
/shoes?color=red&size=42&brand=nike&sort=price
/shoes?size=42&color=red          # 顺序不同,又一个 URL
...

# 5 个维度 × 各自多个取值 → 轻松上万个 URL

这些 URL 带来三重伤害:

  • 抓取预算浪费:爬虫把大量资源花在低价值的筛选组合上,重要页面反而抓得少。
  • 重复/薄内容:大量组合页内容高度相似甚至为空,拉低整站质量评价。
  • 信号稀释:外链和权重分散到无数变体 URL,无法集中到规范页。

筛选页的处理策略#

处理筛选导航的关键,是先做一个判断:这个筛选组合有没有独立的搜索需求和价值?然后区别对待。

筛选类型例子处理
有搜索价值的组合"红色连衣裙""耐克跑鞋"——有人会这样搜做成可收录的规范页(自引用 canonical,可进 sitemap)
排序类?sort=price?sort=newcanonical 指向无排序版本(内容相同,仅顺序不同)
多维叠加的长尾组合?color=red&size=42&brand=...noindex 或 robots 屏蔽,避免收录
跟踪/会话参数?utm=?sid=canonical 指向干净 URL,不进 sitemap

实务上还有几条配套手段:

  • 固定参数顺序:服务端统一参数排列(如总是 color 在 size 前),避免 ?a&b?b&a 产生两个 URL。
  • 控制内部链接:不要在站内给那些不想被收录的筛选组合大量加内链——爬虫主要顺着内链发现 URL,少给入口本身就是一种控制。
  • 对无价值筛选用可点击但不可抓取的控件:比如部分筛选用 JS 交互而非生成新 URL(但要确保有价值的组合仍有真实 URL)。

参数 URL 的控制工具#

控制参数 URL 收录有三件主要工具,各有边界,关键是别用错、别叠加冲突。它们的完整对比见 Canonical 规范标签robots.txt 配置

工具作用能否省抓取预算能否阻止收录
canonical声明规范版本,合并信号否(仍会被抓)间接(合并到规范页)
noindex阻止进入索引否(必须可抓才能读到)是(可靠)
robots.txt阻止抓取是(立刻省)否(外链仍可能被索引)
noindex 和 robots 不要叠加如果用 robots.txt 屏蔽了某个参数 URL,爬虫就读不到页面里的 noindex,noindex 形同虚设。想让 noindex 生效,必须允许抓取该页面。先想清楚目标:彻底不收录用 noindex(允许抓取),纯省抓取预算用 robots.txt(接受它可能因外链被索引)。Google 早已废弃旧的 URL 参数工具,现在靠这三件工具组合处理。

决策框架#

面对任何一个列表/筛选/参数 URL,按这个顺序问自己:

  1. 它有独立搜索价值吗?有人会专门搜它、它内容独特 → 做成规范页(自引用 canonical,进 sitemap,给内链)。
  2. 它只是同一内容的不同视图吗?(排序、跟踪参数、视图切换)→ canonical 指向规范版本。
  3. 它是无价值但需要存在的组合吗?用户要用、但不该收录 → 允许抓取 + noindex,或减少内链入口。
  4. 它是纯粹浪费抓取的垃圾 URL 吗?大量低质组合、爬虫陷阱 → robots.txt 屏蔽,节省抓取预算。
decision.md
有独立搜索价值?      → 是 → 规范页(canonical 自引用 + sitemap + 内链)
   │
   否
   ↓
同内容不同视图/排序?  → 是 → canonical 指向规范版本
   │
   否
   ↓
用户需要但不该收录?  → 是 → 可抓取 + noindex
   │
   否
   ↓
纯浪费抓取的组合?    → 是 → robots.txt 屏蔽

常见错误#

错误后果修正
分页全部 canonical 到第 1 页后续页内容不被收录每页 canonical 指向自身
无限滚动无分页 URL首屏外内容无法被发现配套可抓取分页链接
放任筛选组合全部可抓取可收录抓取预算耗尽、薄内容泛滥按价值分类处理
robots 屏蔽 + 页面内 noindex 并用noindex 读不到,失效二选一,不叠加
参数顺序不固定同组合产生多个 URL服务端统一参数顺序
给无价值筛选页大量内链主动制造抓取陷阱控制内链入口

本站的列表与分页#

本站示范MagicSEO 是内容型网站,没有电商筛选导航,也没有参数化的排序/筛选 URL——这从源头上避免了 URL 爆炸问题。栏目列表页(如技术 SEO 栏目)用静态卡片直接列出每篇文章的真实链接,全部 <a href> 可抓取,无需分页或无限滚动。每个页面 canonical 都指向自身。这正是"用简单的信息架构从根本上规避复杂收录问题"的示范。

处理清单#

分页

  • 每个分页 canonical 指向自身,不指向第 1 页
  • 页面间有带 href 的真实分页链接
  • 每个列表项有可抓取的入口链接
  • 无限滚动配套可抓取分页 URL

筛选 / 参数

  • 区分有搜索价值与无价值的筛选组合
  • 有价值组合做成规范页(canonical 自引用 + sitemap)
  • 排序/跟踪参数 canonical 指向规范版本
  • 无价值组合用 noindex 或 robots 屏蔽(不叠加)
  • 服务端固定参数顺序
  • 控制无价值筛选页的内链入口
  • 用 GSC 检查"已抓取未收录""重复"等异常

常见问题#

分页页面应该把 canonical 指向第一页吗?

不应该。每个分页(第 2 页、第 3 页……)的内容不同,应该让每一页的 canonical 指向它自己。把所有分页 canonical 到第一页是常见错误,会导致第一页之外的列表项和它们的链接不被发现、不被收录。Google 也已不再支持 rel=next/prev 作为分页指令,正确做法就是每页自引用 canonical,并保证页面间有真实的分页链接。

rel=next 和 rel=prev 还有用吗?

Google 已经在 2019 年宣布不再使用 rel=next/prev 作为索引信号,会忽略它们。你不需要为 Google 专门添加,但加上也无害,部分其他工具或浏览器仍可能利用。现在处理分页的关键是:每页 canonical 指向自身、页面间有可抓取的 a 标签分页链接、确保所有分页内容可被发现。

电商的筛选页(faceted navigation)会有什么 SEO 问题?

筛选导航会产生 URL 组合爆炸:颜色、尺码、价格、品牌、排序等条件叠加,可能生成成千上万个近似重复的 URL。这会严重浪费抓取预算、稀释规范信号、产生大量低价值薄内容页。解决思路是区分"有搜索价值的筛选组合"和"无价值的组合":前者做成可收录的规范页,后者通过 canonical、noindex 或 robots 屏蔽来控制。

用 robots.txt 屏蔽参数 URL 好还是用 noindex 好?

取决于目标。robots.txt 阻止抓取,能立刻节省抓取预算,但被屏蔽的页面 Google 读不到其中的 noindex 或 canonical,且这些 URL 仍可能因外链被索引(无摘要)。noindex 能可靠地阻止收录,但页面必须允许抓取才能被读到,无法节省抓取预算。一般原则:想彻底不收录用 noindex,想节省抓取预算用 robots.txt,两者不要对同一 URL 叠加。