跳至正文
精选文章 · Google SEO

Shopify一排序就丢筛选?按URL状态排查主题交互

// / / 光算科技

Shopify集合页选好颜色后,一切换价格排序,颜色条件就消失,通常应该先排查主题怎样读写URL参数。筛选和排序各自能用,不代表组合起来仍然正确。把“选条件、排序、移除单项、返回上一页”连起来测试,才会暴露状态被覆盖的位置。

先区分过滤商品和改变顺序

Shopify storefront filtering文档说明,筛选状态通过集合页或搜索页的URL参数反映;不同筛选条件之间使用AND逻辑,单个筛选内的值使用OR逻辑。比如颜色选蓝或黑,再叠加某个尺寸,含义不是同时要求商品既蓝又黑。

排序则改变结果的排列顺序。collection模板文档使用sort_by参数选择排序方式,默认值还与集合本身的设置有关。一个筛选后的集合应在同样的条件下重新排序,而不是突然恢复全部商品。

假设主题在排序时直接拼接“集合基础地址加sort_by”,此前的颜色、价格范围等参数就可能丢失。反过来,筛选脚本如果只保留自己的表单字段,也可能把排序选择清空。地址栏是排查入口,商品集合和控件选中态才是最终结果。

本地教学店面演示截图:蓝色商品筛选后按价格排列,显示当前条件与商品卡片

本地运行的原创教学演示:筛选与排序共同保留的页面状态。商品图为原创示意,非Shopify后台、客户商店或销量证据。

用固定的一组操作复现,不靠反复乱点

  1. 从未带参数的集合页开始,记下默认商品顺序,选择一个确实有结果的筛选条件。
  2. 记录选择后的完整地址及当前商品,切换一种明显改变顺序的排序方式,再核对筛选条件仍在、结果范围未扩大。
  3. 再添加第二个条件,移除第一个条件。确认只移除了目标条件,保留了另一个条件和排序。
  4. 复制当前URL到一个新窗口。页面应能恢复地址表达的状态,而不依赖上一个窗口留下的内存变量。
  5. 用浏览器后退和前进,检查地址、选中态、商品结果是否同步。再做一次手机筛选抽屉中的相同操作。

每一步都记录预期商品和实际商品,不需要伪造测试分数。若URL正确但商品没更新,检查请求返回的片段是否正确替换;若商品正确而勾选框错误,检查控件如何从参数恢复状态。只有其中一个维度正确,不能判定交互通过。

主题修改应保留无关参数,但不能盲目保留所有参数

开发人员可以用URL解析工具修改指定参数,避免手工拆问号和拼接字符串。对排序而言,通常只更新sort_by;对清除单项而言,按筛选对象与平台生成的链接处理,不全量清空查询字符串。遇到中文、空格、多值或特殊字符,交给正确的编码方法,别用显示标签直接拼地址。

不过,“保留参数”也需要理解参数的职责。用户改变筛选后,原来所在的后续分页可能已经不存在,应按当前主题的分页实现回到合理起点;不能保留一个失效页码然后显示空结果。跟踪参数与商品筛选参数也不同,复制分享链接前应明确哪些属于页面状态,哪些只是归因信息。

Shopify文档还说明,针对变体的筛选可能使产品对象的媒体和URL指向第一个匹配变体。因此要检查的不只是商品数量:蓝色结果卡片应显示合适的媒体,点击进入后也应保留对应选项。不能为了统一短链接而无条件删掉变体信息。

搜索抓取问题,不靠破坏用户筛选来解决

筛选交互正常与筛选网址是否作为独立搜索入口,是两个任务。修复排序丢条件时,不应顺手把所有筛选链接改成没有href的点击事件,也不应把每种状态都提交到站点地图。先让链接和页面状态正确,再根据内容与现有索引策略判断哪些网址需要被推荐。

若商品卡片里还出现集合上下文路径,可继续检查within生成的产品链接;不要把集合路径差异误认为筛选条件丢失。需要同时梳理模板链接与可抓取入口时,光算的SEO技术优化可按具体主题和应用组合确定工作范围,不承诺改一个排序参数就获得排名增长。

零结果、加载失败与快速切换不能混成一类

合法的筛选组合可能没有商品,此时页面应保留已选条件并提供清除方式,让用户知道为什么为空。接口请求失败却显示“没有商品”,则会误导用户调整本来正确的条件。测试时分别准备已知有结果、已知无结果和模拟网络失败的场景,最后一种只在获准测试环境进行。

快速连续改变颜色和排序时,还要看旧请求是否覆盖新结果。例如先请求蓝色,随后改黑色,最后返回的旧蓝色响应不应让页面重新显示蓝色商品而勾选框仍停在黑色。修复方法取决于主题如何管理请求,但验收可以直接描述用户最后一次选择应对应哪组结果。这个样本比单次点击通过更能说明状态处理是否可靠。

验收要覆盖原生控件与应用接管两种情况

有的店铺由主题渲染筛选,有的由搜索应用接管结果。故障发生在哪一层,要看实际请求和替换范围,不能只因后台启用了某个应用就认定责任。给维护方提供主题版本、应用名称、集合样本、逐步复现记录和期望状态;完成修复后再跑同一组操作。本文的画面仅说明应保留的状态,不代表已经测试过读者的真实店铺。