跳至正文
WordPress 与 WooCommerce · Google SEO

WooCommerce 筛选参数产生的 URL 怎么处理

// / / 光算科技

筛选参数产生的 URL,官方是单独当成一类来管的,不当成"分页"的延伸。Google 关于分页与增量加载的说明在同一篇里给了一个小节,标题就是"避免索引带筛选条件或备选排序的 URL",做法是用 noindex 阻止这些变体被索引,或用 robots.txt 劝阻爬取特定 URL 模式。官方举的例子很直白:一个商品列表页支持 ?order=price 来按价格重排,返回的还是同一份列表——这类地址就是被针对的对象。同一类不应进入索引的交易流程页,可以接着看购物车和结账页为什么要排除。

判断点示意:同一份商品列表被参数切出的多个地址,标出应被排除的那些
原创示意:图中为筛选与排序参数产生的重复地址分布示意,不是真实后台截图或数据。

参数写法本身就有规矩

在决定排除哪些地址之前,先把能留下的地址写规范。Google 的电商 URL 结构设计指南给了一组查询参数建议,每一条都会直接影响筛选地址的规模:

  • 用 ?key=value,不要用光秃秃的 ?value。官方给的例子是 /t-shirt?color=green 优于 /t-shirt?green,理由是带键名的参数让 Search 更容易理解站点结构。
  • 不要重复使用同名参数。官方写明 Googlebot 可能会忽略其中一个值,所以 ?type=candy&type=sweet 这种写法不要用,应合并成 ?type=candy,sweet。
  • 不要把临时性的值放进地址。会话标识、追踪码、相对位置的值(location=nearby)、当前时间,都属于这一类,官方建议改用长期稳定的地址,并给了 ?location=UK 与 ?location=nearby 的对照。
  • 尽量减少返回同样内容的替代地址数量。官方说明 Google 可能要等两个地址都抓完,才知道它们返回同一页。

同一篇还有一条容易被忽略的收尾:如果某个属性只是用来切换视图、并不改变商品集合,官方给的参照是用不带该属性的那个 URL 作为规范地址。这比一律排除更省事——如果某个参数被判定为纯视图参数,指一个 canonical 就能解决,不必再加 noindex。

什么时候用 noindex,什么时候用 robots.txt

Google 关于 robots meta 标签的说明把 noindex 的定义写为"不在搜索结果里显示这个页面、媒体或资源",并附一条关键前提:这些设置只有在爬虫被允许访问该页面时才能被读到。这一条决定了两种手段不能叠加使用:

做法官方口径实际效果适合什么情况
noindex不把该页面放进搜索结果地址仍可被抓取,但不在结果里出现希望这些参数页从结果中消失,但其余内容照常被抓
robots.txt 禁止模式劝阻爬取特定 URL 模式不再抓取;已在索引里的旧地址可能继续存在参数组合数量极大、无法逐个维护标记
指向基础地址的 canonical声明哪个地址是代表版本把信号集中到基础地址纯视图参数,内容与基础地址一致

而Google 关于规范 URL 的说明给了一条明确的取舍:不要用 robots.txt 来做规范合并,因为被它挡住的地址仍可能被收录,只是看不到内容;同页也别在站点地图和 rel="canonical" 里指定两个不同的地址。这条同样适用于筛选地址——如果你打算用 robots.txt 挡,就别同时指望 canonical 起作用。

官方没说过阈值,这里最容易编错

需要特别点出来:Google 从未公布"参数超过几个就怎样"或"参数组合达到多少就必须处理"这类阈值。任何写着"三个以上参数就该 noindex"的说法,在官方文档里都找不到依据。真正能拿来判断的是这几条可核对的信号:

  • 这个参数组合是否返回与基础地址同一份商品集合(只是顺序或视图不同)。是的话,它属于官方点名要避免索引的那一类。
  • 这个参数组合是否有独立的商品集合(例如按厂家筛出一个子集)。有的话,它是内容实体,官方口径下应当作为独立页面处理,并且需要自己的 canonical 与内链支撑,站内电商分类页怎么拿外链那篇讲的就是这类页面的外部信号怎么积累。
  • 这个参数是否随访问者而变或会过期(时间、位置、会话)。官方明确劝阻把这类值写进地址。

从高价值参数开始落地

不要一次性铺满全部组合,按收益排序往下做:

  1. 先统计现有地址里哪几个参数带来的重复最多——后台与访问日志里都能看,主题切换筛选时留下的记录通常最全。
  2. 对只改顺序不改集合的参数(order=price、sort=date)统一输出指向基础地址的 canonical。
  3. 对会改变集合的参数,逐个决定它该是独立页面还是被排除的视图,判据用上面那三条。
  4. 对纯视图参数,在返回内容里加 noindex;注意别让 robots.txt 同时把这些地址挡掉,否则标记读不到。
  5. 把内链与站点地图统一到基础地址。站内搜索页这类同源问题可以对照WordPress 站内搜索页被收录那篇,URL 变体的计数口径看一条链接算一条还是多条。

筛选地址处理完怎么核对

分两路。一路是抽地址实测:随便挑三五个带参数的地址打开,看返回内容里的 canonical 指向和 noindex 是否符合预期,同时确认 robots.txt 里没有把这些路径挡住。另一路是看长期数据:Search Console 的覆盖情况报告能看出哪些地址被排除及原因,性能报告里按页面筛出这些参数地址,能看出它们是否还在持续消耗曝光却几乎没有点击。判断有效的标准是这些地址不再出现在结果里、且把抓取资源让给了该被抓的页面——官方从未把"处理了筛选地址"与任何排名结果绑定,所以不要用排名起伏来验证这件事。