LCP元素加载太慢,怎么优化首屏图片?
我用 Lighthouse 测性能,发现 Largest Contentful Paint(LCP)高达 4.2s,主要卡在首屏那张大图上。我已经加了 loading="lazy",但好像对 LCP 没啥帮助,反而更慢了?
图片是用 <img> 标签直接引入的,尺寸是 1920×800,原图有 1.2MB。我试过用 WebP 格式压缩到 400KB,但 LCP 还是没明显改善。是不是得用 <picture> 或者预加载?
目前的写法是这样:
<img src="/hero.webp" alt="首页横幅" loading="lazy" />
有没有什么靠谱的方案能真正把 LCP 压到 2.5s 以内?感觉光压缩图片不够,是不是要配合其他策略?
loading="lazy",这会让浏览器故意延迟加载,LCP直接炸掉。首屏可见的图片必须立即加载,配合 preload 预加载和固定尺寸声明。另外400KB的WebP还是偏大,建议用 Squoosh 或 ImageMagick 再压到 150KB 以内,移动端可以用
<picture>配合media属性加载小尺寸版本,这样移动端不用扛1.9k宽的图。loading="lazy"就是自废武功,赶紧删掉。加 preload 预加载和fetchpriority="high"才是正解:搞定。