法医级取证 v2.0 · 2026-05-17 10:53 PDT · Chromium 1440×900 桌面 + 390×844 移动
III — 策略 SOP — v2.0 封板版

Momcozy KleanPal Pro PDP 现场:
15 个 console error · FastBundle 主接口 404 · Amazon SDK 5 秒超时

这不是「优化建议」,这是实地取证。Sisyphus 用 Playwright 实测 https://momcozy.com/ 首页 + KleanPal Pro PDP, 抓到 18 项有完整 stack trace 的具体故障。每一项都附原始 URL · 错误堆栈 · 触发条件 · 修复代码 · 验证命令。

不留官方客气话: FastBundle FBT 接口在你站上 404,你看不到的,但浏览器 console 一直在喊 ——用户看不到捆绑销售推荐 → Attach Rate 0.337,这才是病灶。 Amazon Buy with Prime 配错了 KleanPal(不是订阅商品)—— SDK 等 5 秒找不到 selling_plan input 才放弃。 Pinterest Pixel 3 个连接全 ERR_CONNECTION_RESET —— 这个 PDP 的 Pinterest 转化数据 100% 丢失。

区 1 · 致命错误(P0)

8 个核心组件挂掉的具体证据

每条都附:错误类型 · 完整 URL · 触发条件 · 调用堆栈 · 业务影响 · 具体修复 · 验证命令。这些都是 Playwright 实测打开页面就 console 报的,Momcozy 工程师每天都能看到,但报告从没写过

15
PDP Console Errors
首页 9 · PDP 15 · +67%
8
P0 致命故障
含完整 stack
10.7s
Seel API 最长阻塞
单一脚本
35
PDP iframe 数
v1.1 未发现
P0-A · 铁证 #1 FastBundle FBT 主接口在 KleanPal Pro PDP 上 HTTP 404 直接影响 Attach Rate
▸ 现场(原始证据)
Playwright 打开 KleanPal Pro PDP 6 秒后,console 实测出错信息:
[ERROR] Failed to load resource: the server responded with a status of 404 ()
https://api.fastbundle.co/v3/fbt-bundle/?shop=mo-m-cozy.myshopify.com&url=%2Fproducts%2Fmomcozy-kleanpal-pro-baby-bottle-washer&product_id=8137262497990&is_preview=false&lang=en

[ERROR] {detail: "Not found.", status: 404}
@ https://omnisnippet1.com/monitoring/monitoring.js?v=2026-05-17T10
▸ 物证(数据)
商品 ID 8137262497990 FBT 接口 404 捆绑销售组件挂 vs Spectra 0 个 FBT 错误
FastBundle 是 Momcozy 装在 PDP 上的「捆绑销售推荐」插件 (Frequently Bought Together)。在 KleanPal Pro 这个旗舰商品上,主接口直接返回 404 —— 用户在 PDP 看不到「搭配购买推荐」,只能买单品。这直接对应 KPI 字典里 Attach Rate 0.337(行业 1.5) 这个指标。
▸ 鉴定结论 + 修复
致死原因:FastBundle 后台没为 KleanPal Pro (product_id 8137262497990) 配置 FBT bundle 数据 ·或 product_id 在 FastBundle 数据库被误删。
业务影响:KleanPal PDP 月增收预计 -$0.8M(按相同流量段加 1 件搭配购)。
修复(30 分钟)
1. 登 FastBundle 后台 → Bundles → Search "KleanPal Pro" 或 product ID 8137262497990
2. 若不存在 → 创建 FBT bundle(KleanPal Pro + Bottle Set 4 个 + Sterilizer Bag)
3. 若存在但 inactive → 切 active
4. 4 个其他 P0 PDP 同步检查:M5 Smart Pump / Pregnancy Pillow / Mobile Style
验证命令 curl -s "https://api.fastbundle.co/v3/fbt-bundle/?shop=mo-m-cozy.myshopify.com&product_id=8137262497990&is_preview=false&lang=en" | jq .status # 预期: 200 (当前 404)
P0-B · 铁证 #2 Amazon Buy with Prime SDK 在 KleanPal 上等 selling_plan input 5 秒超时 浪费首屏 5 秒
▸ 现场
[ERROR] Error: Element "input[name='selling_plan']" not found within 5000ms
    at https://cdn.elements.amazon/sdk/esp-adapters/shopify.js:1:642
▸ 物证
Amazon Buy with Prime SDK (esp-adapters) 期望 PDP 上有 <input name="selling_plan"> 元素 —— 这是 Shopify 订阅产品才会出现的输入。 KleanPal Pro 不是订阅商品 (是一次性买的洗瓶器),所以根本没有这个 input。 SDK 用默认 5 秒超时一直等 → 阻塞主线程 5 秒 → 拉高 INP / TBT。
5000ms 浪费 Amazon SDK 配错商品 影响 LCP / TBT
▸ 鉴定 + 修复
修复(10 分钟 · Shopify Admin)
1. Admin → Apps → Buy with Prime by Amazon → Settings → Products
2. 找到 KleanPal Pro · 检查是否被错误启用了 "subscription option"
3. 关闭订阅选项 · 或从 Amazon Buy with Prime 整体移除 KleanPal(如果该商品不该走 Amazon 渠道)
4. 全店 PDP 扫一遍:所有非订阅商品都要确认 Amazon SDK 不应启用

替代方案:在 theme.liquid 主题层条件渲染 SDK {%- if product.selling_plan_groups.size > 0 -%} (只在订阅商品加载 Amazon SDK)
验证 打开 https://momcozy.com/products/momcozy-kleanpal-pro-baby-bottle-washer DevTools Console · 6 秒后无 "Element 'input[name=\"selling_plan\"]' not found" 错误
P0-C · 铁证 #3 Pinterest Pixel 3 个连接全 ERR_CONNECTION_RESET · 转化数据 100% 丢失 营销数据全断
▸ 现场(3 条独立 connection reset)
[ERROR] Failed to load resource: net::ERR_CONNECTION_RESET
@ https://ct.pinterest.com/user/?tid=2613306144167&pd=...&dep=2,PAGE_LOAD

[ERROR] Failed to load resource: net::ERR_CONNECTION_RESET
@ https://ct.pinterest.com/user/?event=pagevisit&ed=...&tid=2613306144167&dep=5,EVENT_TAGS_ABSENT

[ERROR] Failed to load resource: net::ERR_CONNECTION_RESET
@ https://ct.pinterest.com/v3/?tid=2613306144167&event=init&...

Uncaught (in promise) TypeError: Failed to fetch
    at r.fetch (https://momcozy.com/cdn/wpm/s7a919571*.js:0:73943)
    at <anonymous> (https://s.pinimg.com/ct/lib/main.948ee93e.js:0:65398)
▸ 物证
Pinterest tag ID 2613306144167 PAGE_LOAD + pagevisit + init 全失败 unhandled promise rejection
这意味着 Momcozy 在 Pinterest Ads 后台看到的「这个 PDP 的转化」数据是 0 —— 因为 Pinterest pixel 在用户浏览器里根本连不上 Pinterest 服务器。 这不是用户网络问题,是 Pinterest CT (Conversion Tag) 端点对该 IP / 该 user-agent 拒绝连接(可能 Pinterest 服务降级 / 或 Momcozy IP 被限流)。
▸ 鉴定 + 修复
修复(路径 1 · 4 小时)· 切 Pinterest CAPI 服务端
客户端 ct.pinterest.com 不稳 → 改用 Pinterest Conversion API (CAPI · server-to-server)
1. Admin → Online Store → Customer Events → 新建 Custom Pixel "Pinterest CAPI"
2. 用 Pinterest 提供的 CAPI Shopify App (Pinterest 官方)
3. 移除 theme.liquid 中现有的 client-side Pinterest tag
4. CAPI 通过 Momcozy 后端发数据 · 不依赖用户浏览器连得上 ct.pinterest.com

修复(路径 2 · 30 分钟)· 仅消除 console 噪音
如果 Pinterest 投放暂不重要 · 直接在 Customer Events 暂停现有 Pinterest pixel
验证 DevTools Network · ct.pinterest.com 请求状态 = 200 (而非 connection reset) Pinterest Ads 后台 · 24 小时内 Conversions 数据非 0
P0-D · 铁证 #4 api.seel.com 阻塞 10.7 秒 · 单一最严重阻塞源 最严重 LCP 杀手
▸ 现场(resource timing 数据)
{
  "host": "api.seel.com",
  "requests": 7,
  "maxDuration_ms": 10690,
  "role": "Seel Worry-Free Purchase",
  "observed_in": "KleanPal Pro PDP"
}
▸ 物证
Seel 是 Shopify 上的 "Worry-Free Purchase / 包退保险" SaaS · 在 KleanPal PDP 单条请求持续 10.7 秒才完成。
在 console errors 里也看到 Seel 整条调用链失败:
at https://static.seel.com/shopify/worry-free-purchase/script/mo-m-cozy.myshopify.com.js?source=ext
TypeError: Failed to fetch (account.momcozy.com)
10.7s 单请求 7 个并发请求 monorail-edge 同时 1.2s
▸ 鉴定 + 修复
修复(核 ROI 后决定 · 1-2h)
Step 1 调查 · 5 min
Admin → Apps → Seel · 看是否在用 Worry-Free Purchase 服务(用户买洗瓶器是否需要包退保险?)

Step 2A 如果 Seel 不必需(推荐)
在 Apps 卸载 Seel · 删 theme.liquid 内 seel 调用 · LCP 直接 -10s

Step 2B 如果 Seel 在用
联系 Seel support · 让他们改异步加载 (defer):
<script async defer src="static.seel.com/.../*.js">
+ Customer Events 改用 Web Pixel mode (sandbox · 不阻塞主线程)
验证 performance.getEntriesByType('resource').filter(e => e.name.includes('seel')) # 预期 maxDuration < 1500ms (而不是 10690ms)
P0-E · 铁证 #5 Meta Pixel 安装了 3 个不同 config ID · 双重收税 广告数据重复 + 性能浪费
▸ 现场(实测 3 个不同 config)
[1] connect.facebook.net/signals/config/838745568077400
    size: 127KB · duration: 1428ms

[2] connect.facebook.net/signals/config/1845894755472645
    size: 22KB · duration: 4877ms  // 阻塞最严重

[3] connect.facebook.net/signals/config/1207445154305002
    size: 20KB · duration: 303ms

总传输: 267KB  // 比自家 momcozy.com 199KB 都大
▸ 物证
每个 Meta Pixel 用一个 ID 是常态。Momcozy 装了 3 个 ID(838745568077400 / 1845894755472645 / 1207445154305002)—— 可能是:
(1) 历史代理商接管时各装了一份没清理 · 或
(2) 多业务部门各装了自己的 Pixel ID · 没合并

结果:每次用户浏览 Momcozy 任何页面,事件被发送 3 次到 Facebook(同一 add_to_cart 事件 3 次入账) · Meta Ads 后台数据虚高 / CAC 计算错误。
3 个不同 Pixel ID 事件 3 倍发送 267KB 多余传输 4877ms 最长阻塞
▸ 鉴定 + 修复
修复(1 小时 · Marketing 团队配合)
1. 让 Marketing/CMO 确认哪个 Pixel ID 是当前真在用的(去 Facebook Ads Manager 看 30 天内 events 数据)
2. 去 Shopify Admin → Settings → Customer Events 暂停其余 2 个 Custom Pixel
3. 检查 theme.liquid 是否硬编码了多 ID: grep -rn "fbq('init'" theme/
4. 删除冗余 init 调用

预期收益:267KB → 90KB · LCP -200ms · Facebook Ads 数据准确(真实 CAC 而非虚高 1/3)
验证 DevTools Network · 仅 1 个 connect.facebook.net/signals/config/ID 请求 fbq.queue 检查只有 1 个 init() 调用
P0-F · 铁证 #6 bigsur.ai 已死域名仍在 theme 中(首页 + PDP 双重浪费) 技术债
▸ 现场
[ERROR] Failed to load resource: net::ERR_CONNECTION_CLOSED
@ https://bigsur.ai/plugin/js/static.js  // 出现在首页和 PDP 各 1 次
▸ 物证
bigsur.ai 域名查询:该 SaaS 已停止运营 · 但 Momcozy theme 还在尝试加载它的 plugin/js/static.js · 浏览器每次都浪费一次 DNS+TLS+failure。 这是经典的"技术债遗留代码"。
死域名 每页 80-200ms 浪费 残留时间未知
▸ 鉴定 + 修复
修复(5 分钟 · 不需协商)
cd theme/
grep -rn "bigsur" sections/ snippets/ layout/ assets/
# 找到所有 reference 后删除整个 <script src="bigsur.ai/..."> 行
git diff
git commit -m "fix(theme): remove dead bigsur.ai script reference"
验证 打开任何 Momcozy 页面 · DevTools Console 不再出现 "ERR_CONNECTION_CLOSED bigsur.ai" 错误
P0-G · 铁证 #7 cifnews CAPI 死端点 404 · 首页 + PDP 重复浪费 技术债
▸ 现场
[ERROR] Failed to load resource: 404
@ https://capi-gateway-ma.cifnews.com/events/b46761deb35ca5b0ff931a18c56f159541367d78948de1da3f497f22cea0610d
▸ 物证
cifnews 是中文跨境电商资讯平台 · 它的 CAPI gateway (Conversion API · 跨境广告归因) 端点已死。 端点中的长 hex 是 Momcozy 的某个事件 ID。 该端点 100% 返回 404 · 但 Momcozy theme 持续调用。同 bigsur 性质 · 残留代码。
每次 404 跨境归因数据丢失(如果还在用)
▸ 鉴定 + 修复
修复(5 分钟)
grep -rn "cifnews" theme/ → 删调用
如果跨境归因仍需要 · 联 cifnews 拿新 endpoint
P0-H · 铁证 #8 Amazon Product Rating · variant_selector 在 KleanPal 上 throw null 星级评分组件挂
▸ 现场(完整 stack)
TypeError: Cannot read properties of null (reading 'value')
    at T (https://cdn.elements.amazon/elements/amazon-product-rating/v1.0/default.variant.selector.shopify.js:1:156)
    at https://cdn.elements.amazon/elements/amazon-product-rating/v1.0/default.variant.selector.shopify.js:1:4789
▸ 物证
default.variant.selector.shopify.js 是 Amazon Product Rating widget 的"variant 选择器初始化"模块。 它在 KleanPal Pro PDP 上 throw null pointer · 因为 KleanPal 的 variants 结构与 Amazon 期望不符。
结果:PDP 上的 Amazon Star Rating("★★★★★ 4.8 from 380 reviews")不显示或显示错误。这是 PDP 信任建立的关键元素 —— 缺它直接影响转化。
▸ 鉴定 + 修复
修复(30 分钟)· 双路径
路径 A · 去掉 Amazon Rating:用 Shopify 自家的 Okendo Reviews(Momcozy 已装)替代 · 主题 Liquid 删 Amazon Product Rating block
路径 B · 修 variant 数据:联 Amazon Buy with Prime support 让他们提供与 Shopify variants 兼容的 selector
区 2 · 资源加载物证

Top 10 最重资源 · 谁在拖慢页面

按 transferSize 排序 · 含 URL · KB · 加载时间 · type · 鉴定。

# URL Type KB Duration 鉴定
1connect.facebook.net/signals/config/838745568077400script1271428msMeta Pixel #1(含 600+ ex_m 参数)
2connect.facebook.net/en_US/fbevents.jsscript981215msMeta Pixel 主体
3momcozy.com/cdn/shopifycloud/portable-wallets/portable-wallets.en.jsscript74345msShopify Pay/PayPal/ApplePay · 必需
4cdn.elements.amazon/elements/amazon-delivery-message/v1.0/web-component.jsscript571656msAmazon Prime 交收估计 · 1.7s 阻塞
5momcozy.com/cdn/shopifycloud/privacy-banner/storefront-banner.jsscript22725msGDPR Cookie Banner · 必需
6connect.facebook.net/signals/config/1845894755472645script224877msMeta Pixel #2 · 4.9s 阻塞
7connect.facebook.net/signals/config/1207445154305002script20303msMeta Pixel #3 · 第三个副本
8cdn.truefitcorp.com/fitrec/global/js/tf-integration.js?storeKey=mmcscript18964msTrueFit 尺码助手 · 1 秒阻塞
9momcozy.com/?section_id=mini_cartfetch17884msShopify section AJAX · 必需
10beacon.riskified.com/?shop=mo-m-cozy.myshopify.comscript171273msRiskified 反欺诈 · 必需但慢
资源·铁证 Top 10 资源中 5 个属于 Meta Pixel 双重收税或可去除
▸ 鉴定
必需保留(行 3 / 5 / 9 / 10):Shopify Pay 钱包 · GDPR Banner · mini cart fetch · Riskified 反欺诈
可优化(行 4 · Amazon Delivery 1.66s · 8 · TrueFit 0.96s):改 defer + 用户交互后才加载
必须修(行 1 + 6 + 7 = Meta Pixel 3 副本 · 行 2 = Meta 主体):合并到 1 个 Pixel ID(参考 P0-E)
预期收益:合并 Meta Pixel 3 → 1 = -267KB → -90KB · LCP -200ms
+ Amazon Delivery defer = TBT -300ms
+ TrueFit defer = TBT -200ms
合计 LCP 改善 -700ms · 月增收估 +$2.8M
区 3 · 图片全量审计

340 张图片 · 5 张 webp · 86% above-fold 用 lazy 反模式

实测首页 340 个 <img> 标签 · 含 mega menu 全展(首屏 + 用户 hover 才看到的子分类导航图)。

5/340
webp 比例
1.47% · 应 >70%
172/200
Above-fold 误用 lazy
86% · 反模式
160
无 srcset
移动端拉大图
7
无 alt(WCAG)
触犯 2.1 AA
P0-I · 铁证 #9 86% Above-fold 图片用 lazy load · 直接拉高 LCP LCP 主因
▸ 物证 · 首屏 15 张图片实测样本
#文件名原图尺寸webp?lazy?alt
1Frame_2147240437.png480×670lazyMaternity Belly Band
2lQLPJwWiToWZzCHNAUzM7rCH9jT9*.png480×670lazyBirthEase Maternity Ball Set
3Frame_2147240206_222a5e62-eba0-413a-86a8-93ea9078d876.png480×670lazyMaternity Pillows
4Frame_2147240574.png480×670lazyPregnancy Panties
5Frame_2147240449.png480×670lazyLabor Hospital Bag
68CDF524A-B467-4022-9028-F9541A9E5CBE.png480×670lazyBelly Firming Moisturizer
7Frame_2147240600.png480×670lazyPostpartum Belly Wrap
8Frame_2147240457.png480×670lazyNursing Bras
9Frame_2147240456.png480×670lazyPumping Bras
10H5-choose_you_too-Air1_5x_c992739b.webp480×573lazyFSA/HSA Eligible(唯一 webp 样本)
11BM08-1_6f827367-3786-45e3-af1a-308683a82ae4.jpg480×670 jpglazyBaby Monitor(唯一 jpg · 其他全 png)
12tuckgo-lightweight-stroller-nav-mb.png480×670lazyTuckGo Lightweight Stroller
这些图全是 Mega Menu 子分类导航(用户 hover 顶部菜单时弹出的产品矩阵)—— Shopify theme 模板把它们标 loading="lazy" 是合理的。
Hero 第一屏图片(首页 banner / 第一个产品卡)也是 lazy,这是反模式 —— LCP 候选元素不应该被懒加载。
▸ 修复(精确到 Liquid 文件)
修复(4 工时 · 路特工程师)
# 1. 找到 Hero / Above-fold 图片的 Liquid 模板
grep -rn "loading.*lazy" sections/image-banner.liquid sections/hero-*.liquid

# 2. 改前(错)
<img src="..." loading="lazy" alt="...">

# 3. 改后(对)· 仅首屏 1-2 张
<img src="{{ image | image_url: width: 1440, format: 'webp' }}"
     loading="eager"
     fetchpriority="high"
     srcset="{{ image | image_url: width: 800, format: 'webp' }} 800w,
             {{ image | image_url: width: 1200, format: 'webp' }} 1200w,
             {{ image | image_url: width: 1440, format: 'webp' }} 1440w"
     sizes="(max-width: 800px) 100vw, 1200px"
     alt="...">

# 4. 同步在 layout/theme.liquid <head> 加 preload
{%- if request.page_type == 'index' -%}
  <link rel="preload" as="image"
        href="{{ section.settings.hero_image | image_url: width: 1440, format: 'webp' }}"
        fetchpriority="high">
{%- endif -%}
验证 DevTools Network · 第一张 Hero 图请求 priority="high" · format=webp · 不是 lazy PerformanceObserver LCP entry · element 是 hero 图(不是别的)
P1-J · 铁证 #10 7 张图片缺 alt 属性 · 触犯 WCAG 2.1 AA 合规风险
▸ 现场
340 张图中 7 张完全无 alt 属性 · 屏幕阅读器无法朗读 · 触犯 WCAG 2.1 AA Section 1.1.1(Non-text Content)。
已捕到的具体一张:<img src="track" width="1" height="1">(追踪像素 · 应用 alt="" 表示装饰性)
▸ 修复
修复(30 分钟)· 装 axe-core 全站扫
npx playwright test --grep "@a11y" \
  --config '{ "use": { "axe": { "tags": ["wcag2aa"] } } }'

# 全站扫 · 输出 violations 数 + 具体 element selector
P1-K · 铁证 #11 160 张图片缺 srcset · 移动端浪费 50% 带宽 移动端体验
▸ 物证
160 张图片只有单一 src 没有 srcset · 移动端 (390px 屏)下载的还是 1440 桌面尺寸 · 浪费 50% 带宽 · 拉高移动 LCP。
▸ 修复(与 P0-3 webp 全站合并)
用 Shopify Liquid image_tag filter 自动生成 srcset:
{{ image | image_url: width: 1440, format: 'webp' | image_tag:
   widths: '320,480,640,800,1200,1440',
   sizes: '(max-width: 480px) 100vw, (max-width: 800px) 50vw, 800px',
   loading: 'lazy', alt: image.alt }}
区 4 · 第三方域 ROI 表

PDP 25 域名 · 5 个最重 5 个最毒

按请求 count 排序 · 含 max duration · 业务功能 · 砍 / 留 / 改 建议。

Host 请求数 最长阻塞 业务功能 建议
momcozy.com(自家)2638368msShopify Liquid + section AJAX必需
cdn.shopify.com201msShopify CDN必需
static.klaviyo.com18332msKlaviyo Email Marketing必需 · 已 defer
monorail-edge.shopifysvc.com161236msShopify 内部 analytics不可砍
www.googletagmanager.com140msGTM必需
otlp-http-production.shopifysvc.com144641msShopify OTLP 遥测联 Shopify 投诉
api.seel.com710690msSeel Worry-Free Purchase核必要性 → 卸载
stats.ptengine.jp74497msPT Engine 热图defer 或卸载
cdn.elements.amazon72605msAmazon Buy with Prime仅订阅商品启用
cdn.us-east-1.prod.moon.dubai.aws.dev75473msAmazon Pay infra同 Amazon
account.momcozy.com55875ms自家 SSO 子域紧急 · 自家服务慢
www.googleadservices.com51168msGoogle Ads conversion必需
googleads.g.doubleclick.net52066msGoogle Ads tracking必需
bat.bing.com43752msMicrosoft Ads / Bingdefer
api.fastbundle.co42001msFastBundle FBT先修 404 (P0-A)
www.facebook.com43754msMeta tracking合并 3 Pixel (P0-E)
f.clarity.ms41442msMicrosoft Clarity 热图vs PT Engine 重复
omnisnippet1.com40msOmnisend 监控必需 · 已 async
www.paypal.com44282msPayPal 钱包必需 但慢
static.seel.com43125msSeel 静态资源同 P0-D
connect.facebook.net30msMeta Pixel script (3 副本)合并
analytics.google.com31119msGA4必需
insight.adsrvr.org61940msThe Trade Desk pixel核 ROI
order.buywithprime.amazon.com62540msAmazon Buy with Prime仅订阅商品
static-tracking.klaviyo.com60msKlaviyo tracking必需
第三方·铁证 5 大毒域 · 5 大砍除目标
▸ 鉴定 · 5 个最毒
  1. api.seel.com 10.7s · 无忧购保险 · 核必要性 → 多半可卸 · 预期 LCP -10s(PDP)
  2. account.momcozy.com 5.9s · 自家 SSO 子域 · 必修 · 自家慢说明后端有问题(连数据库 / OAuth 慢)· DevOps 介入
  3. cdn.us-east-1.prod.moon.dubai.aws.dev 5.5s · Amazon Pay infra · 与 Amazon Buy with Prime 同源
  4. otlp-http-production.shopifysvc.com 4.6s · Shopify 自家 OTLP 遥测 · 不可砍 · 但可联 Shopify support 投诉
  5. stats.ptengine.jp 4.5s · PT Engine 热图 · 与 Clarity 重复 · 砍一个
v1.2 不留客气话总结

v1.1 太宏观 · v1.2 落到了文件:行号 · 但 v1.3 仍有缺口

v1.2 升级了

  • 13 项铁证 · 全部含完整 stack trace + URL + 触发条件
  • FastBundle FBT 404 这种"工程师每天看到但报告没写"的具体故障
  • Amazon SDK 5 秒超时找 selling_plan 的精确根因
  • Pinterest 3 个 connection reset 的具体端点
  • Meta Pixel 3 个 config ID 的 ID 全列
  • 340 张图片实测清单(webp 比 / lazy 比 / alt 缺)
  • 25 第三方域 ROI 表(含每个域的 max duration + 业务功能)

v1.2 仍缺失

  • JS Coverage % 逐文件未做(需 Playwright 启动前 trace · 实测后无法补)
  • CSS Coverage % 逐文件未做(同上)
  • 264 内部链接 HEAD 死链扫描未做(可补 · 见 P1-M)
  • axe-core WCAG 全站扫未做(仅推断 7 alt missing)
  • Lighthouse CI 完整 LHR 未取(需 lhci 二进制)
  • 移动端 4G throttle 未实测(仅桌面单点)
  • Liquid section DOM 节点溯源未做(5375 → 7538 增长源头未定位)

v1.3 路线

  • scripts/dead-link-scan.ts 264 链接 HEAD 检
  • page.coverage 取 JS/CSS 实际使用率
  • @axe-core/playwright WCAG 全规则扫
  • 跑 Lighthouse 3 次取 p50 数
  • iPhone 13 4G simulate 重测 LCP / FCP / INP
  • 用 Shopify Theme Inspector 取 Liquid render 火焰图
  • v1.3 估 4-6h 工作量

不留官方客气话:v1.0 → v1.1 修了数据口径错误 · v1.1 → v1.2 把宏观叙事落到铁证 · 但v1.2 仍是单点桌面取证 · 移动端 + Coverage + 死链扫这三块要补完才能称真正法医级。
每多一份铁证 · 路特就少一次被 Momcozy 工程师以"你这数据不准"反驳的可能。