事情本身不复杂,线索都在日志里。站点日访问量三千左右,GSC 的核心网页指标报告一直显示数据不足,CrUX 面板里也查不到这个源。前端已经按建议压过图片、拆过脚本,但没有字段数据就不知道该优先修哪一项,团队只能靠实验室数据猜。

第一反应是「站点按 URL 分组过细 每个模板的样本量都被摊薄」,验证下来不成立。

把日志和配置对完,能解释这个现象的基本就这几处。CrUX 只收录达到样本量阈值的源 小站天然拿不到字段数据。也可能是统计脚本被拦截或未全量部署 真实用户数据没有回流。

另外,报告里的数据按 28 天滚动窗口聚合 新上线页面短期内不会出现。

动手时先用实验室数据跑一遍拿基线

npx lighthouse https://www.example.com --only-categories=performance --output=json --output-path=./lh.json

随后按页面模板抽样而不是全站平均

grep -c '<loc>' sitemap.xml

接着接入真实用户监控并按模板打点

new PerformanceObserver(l => l.getEntries().forEach(e => send('/rum', {name: e.name, value: e.value}))).observe({type:'largest-contentful-paint', buffered:true});

剩下的就是用同模板的其它站点数据做参照

curl -s 'https://www.example.com/api/crux?origin=https://www.example.com'

改完先别撤,确认这几项。按模板抽样后能定位到列表页是 LCP 的主要来源,改完图片尺寸和首屏渲染,实验室数据从 4.1 秒降到 2.2 秒,一个月后字段数据也开始出现。

没有字段数据不等于没法优化,按模板抽样加真实用户打点,比盯着一个查不到数据的报告更有用。同一份配置在测试环境跑通,不代表线上没事,两边的默认值经常不一样。

作者 9823189