Shopify 性能优化

Shopify 商品页带 ?variant= 后 CDN 命中率低

现象#

同一商品 8 个变体各有一条 URL,响应头 x-cache 多为 MISS,TTFB 在 600~900ms 之间波动。

原因#

  • CDN 以完整 URL 作为缓存键,?variant= 不同就被当成不同对象各存一份
  • 列表页给每个变体链接都拼了 variant 参数,爬虫与广告落地页进一步放大 URL 总量
  • 变体选择器用整页跳转切换,每次点击都触发一次新的 HTML 渲染与回源
  • 登录态与地区返回不同 HTML,Vary 维度增加后边缘命中率进一步下降

处理步骤#

  1. 在响应头里看 x-cache、age、x-request-id,判断是否命中边缘
  2. 列表页链接去掉 ?variant=,改在元素上挂 data-variant-id 由前端切换
  3. 变体切换只更新 DOM 与 history.replaceState,不要重新请求整页
  4. 确需分享特定变体时保留参数,但不要在 sitemap 与内链中传播
  5. 用 curl -sI 连发两次同 URL,对比 age 是否递增

验收标准#

同一商品页连续两次请求 x-cache 为 HIT 且 age 增长,列表页内链不再带 variant 参数。

本文由 风格技术 技术团队整理,适用于 Shopify 标准版与 Plus 店铺。Shopify 平台能力迭代较快,具体操作路径与字段以官方文档和店铺后台实际版本为准。