Shopify 商品页带 ?variant= 后 CDN 命中率低
现象#
同一商品 8 个变体各有一条 URL,响应头 x-cache 多为 MISS,TTFB 在 600~900ms 之间波动。
原因#
- CDN 以完整 URL 作为缓存键,
?variant=不同就被当成不同对象各存一份 - 列表页给每个变体链接都拼了 variant 参数,爬虫与广告落地页进一步放大 URL 总量
- 变体选择器用整页跳转切换,每次点击都触发一次新的 HTML 渲染与回源
- 登录态与地区返回不同 HTML,Vary 维度增加后边缘命中率进一步下降
处理步骤#
- 在响应头里看
x-cache、age、x-request-id,判断是否命中边缘 - 列表页链接去掉
?variant=,改在元素上挂data-variant-id由前端切换 - 变体切换只更新 DOM 与
history.replaceState,不要重新请求整页 - 确需分享特定变体时保留参数,但不要在 sitemap 与内链中传播
- 用
curl -sI连发两次同 URL,对比age是否递增
验收标准#
同一商品页连续两次请求 x-cache 为 HIT 且 age 增长,列表页内链不再带 variant 参数。
本文由 风格技术 技术团队整理,适用于 Shopify 标准版与 Plus 店铺。Shopify 平台能力迭代较快,具体操作路径与字段以官方文档和店铺后台实际版本为准。