先看现象。CWV 报告里 URL 分组只有六个,每个分组代表一个页面模板,改完列表页模板后报告等了 28 天还是旧数据,同事一直问分数为什么没动。
把日志和配置对完,能解释这个现象的基本就这几处。CrUX 按 28 天滚动窗口统计,采集周期本身有延迟。还有一种是报告按 URL 分组取样,单个模板只抽到少量真实访问。
另外,改动只上了部分节点,用户拿到的还是旧资源。
少数情况下是字段数据只统计访问量足够的页面,长尾页不在报告里。
第一件事是确认改动是否全量生效
curl -s https://www.example.com/list | grep -o 'main\.[a-z0-9]*\.js'
随后查报告里该分组的数据日期
curl -s 'https://crux.example.com/api?origin=https://www.example.com&collection=phone'
然后用实验室数据先做回归
curl -s 'https://pagespeed.example.com/api?url=https://www.example.com/list&strategy=mobile'
等前面都确认过,再核对 CDN 上的资源版本
curl -sI https://cdn.example.com/main.js | grep -i etag
改完先别撤,确认这几项。分组数据在下一个 28 天窗口后更新,实验室指标先达标,真实用户指标随后跟上。
字段数据天生滞后,优化上线后先用实验室数据验证,别盯着 CrUX 的旧窗口下结论。监控比日志更早给出信号,事后回看经常能提前半小时发现异常。
