问题出现得很突然,日志倒是留得挺全。PSI 上 LCP 显示 2.1 秒,CrUX 面板同期是 3.0 秒,两边差 0.9 秒。团队按 PSI 优化了两周,CrUX 几乎没动。
刚开始盯着「移动端与桌面端分开统计,看板把两端混在一起」,折腾了半个多小时,排掉了。
这类报错背后常见的原因有几处,逐个排除就行。PSI 是单次实验室数据,CrUX 是 28 天滚动窗口的真实用户数据。另一种情况是CrUX 只在样本量足够时出数,低频页面用的是整站聚合。
另外,优化上线后要等满 28 天,短期看不到变化。
动手时先确认两边的设备与时间范围
curl -s 'https://chromeuxreport.googleapis.com/v1/records:queryRecord?key=xxx' -d '{"origin":"https://www.example.com","formFactor":"PHONE"}'
再往下按页面分组看真实分布
python crux_report.py --origin https://www.example.com --metric lcp --group url
接着用真实用户监控补一份日粒度数据
curl -s https://www.example.com/rum/beacon -d '{"lcp":2100,"url":"/post/1024"}'
优化后按 28 天窗口对比
python crux_diff.py --before 2026-10-01 --after 2026-11-14
别只看报错消失,验证要多做一步。按同一设备与窗口对比后,两边的差值收敛到 0.2 秒以内,优化上线满四周后 CrUX 的 LCP 分位确实下降。
补一句。实验室数据只能验证改动有没有效果,能不能算达标要看 CrUX 的 28 天窗口,别拿单次跑分当结论。报错文案容易误导,真正的原因往往在相邻那一层的日志里。
