Shopify 性能优化

Shopify GTM 容器标签太多导致 INP 变差

现象#

容器里 40 多个标签,首页 gtm.js 之后又拉 12 个请求,主线程最长任务 380ms,CrUX 的 INP 掉到 180ms。

原因#

  • 每个标签自带 JS,容器只做调度,标签数量直接决定请求数与主线程占用
  • 触发器写的是 All Pages 或 Window Loaded,本该只在 thank_you 跑的标签全站都执行
  • 自定义 HTML 标签里塞了整段第三方 SDK,等于把库内联进容器再执行一次
  • 未启用 Consent Mode,同意管理脚本在 GTM 之外又独立加载了一遍

处理步骤#

  1. 用 Tag Assistant 预览模式逐个停用标签,二分法找出耗时最高的两三个
  2. 结账类标签的触发条件改为 Page Path contains /thank_you 或自定义事件
  3. 自定义 HTML 标签换成 Custom Image,或迁到服务端 GTM 执行
  4. 给非关键标签加 Once per page 与触发优先级,避免重复触发
  5. 用 getEntriesByType('resource') 过滤 googletagmanager 域名核对请求数

验收标准#

首屏 GTM 相关请求降到 3 条以内,Performance 中由 GTM 触发的长任务低于 120ms。

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