商品页首屏是一个自动播放的 iframe 视频,LCP 稳定在 4.1 秒。按常规压图片、加预加载都没效果,因为 LCP 元素根本不是 img,改的方向一开始就错了。

一开始怀疑是「iframe 占满首屏且立即加载」,查了一圈,方向不对。

这类报错背后常见的原因有几处,逐个排除就行。iframe 里的视频首帧要等播放器脚本加载完才绘制。也可能是视频封面没有用 poster 提前渲染。

少数情况下是播放器脚本阻塞了主线程。

第一件事是确认 LCP 到底是哪个元素

npx lighthouse https://www.example.com/p/1 --only-audits=largest-contentful-paint --output=json

接着看 iframe 的加载属性

curl -s https://www.example.com/p/1 | grep -o '<iframe[^>]*>'

然后改

成

复

测

同事提醒我看一下最近一次发布,时间点确实对得上。

命令输出我都留了记录,免得改完记不清原来的值。

恢复的判定其实很直接。换成封面图后 LCP 从 4.1 秒降到 2.2 秒,视频点击率没变,首屏的布局位移也一起消失。

补一句。LCP 的候选元素可能是 iframe 或背景图,先确认元素再谈优化,否则改的都是无关的图片。拖得越久,排查成本越高,因为现场状态会被后续操作覆盖。

作者 9823189