如何进一步优化移动端LCP指标?已做常规优化仍存加载延迟
我正难以降低移动端的FCP(首次内容绘制)和LCP(最大内容绘制)指标,当前分别为3.6秒和5.5秒。我已阅读过相关问题并完成了所有建议的优化,但LCP仍存在严重的Load Delay(加载延迟)。
我的LCP元素是Bootstrap轮播组件中用作背景的<picture>标签,该标签包含多种资源,包括webp格式及适配移动端的压缩webp版本:
<picture > <source srcset="http://localhost:8888/image.webp" type="image/webp" media="(min-width: 576px)"> <source srcset="http://localhost:8888/image_xs.webp" type="image/webp" media="(max-width: 575px)"> <!-- 这是移动端LCP会用到的资源 --> <source srcset="http://localhost:8888/image.jpg" type="image/jpeg" media="(min-width: 576px)"> <source srcset="http://localhost:8888/image_xs.jpg" type="image/jpeg" media="(max-width: 575px)"> <img src="http://localhost:8888/image.jpg" alt="alt" > </picture>
我已添加<link rel="preload" fetchpriority="high" as="image" href="http://localhost:8888/image_xs.webp" type="image/webp" media="all">,在开发者工具网络面板中可见该资源是第一个加载的,大小仅14KB,加载耗时2毫秒。
但本地使用Lighthouse测试时,LCP的Load Delay仍达3800-4000毫秒,而网络面板显示整个页面加载仅需约400毫秒,这让我十分困惑。我猜测Load Delay并非指图片资源的加载时间,而是渲染器正确显示元素的延迟?如果是后者,我实在不知道还有哪些可优化的点:我仅有两个CSS文件(Bootstrap和自定义样式),均已压缩并gzip,总大小不足50KB,合并为一个文件也无改善。
Lighthouse仅给出两项诊断建议:
- 消除渲染阻塞资源,预计可节省2700毫秒,但我无法调整样式表位置(移至页面底部会导致布局偏移,大幅降低性能得分);Google建议将关键样式内联再加载样式表,但这对大型站点不现实。
- LCP元素的耗时分析:
| 阶段(Phase) | 占LCP比例(% of LCP) | 耗时(Timing) |
|---|---|---|
| TTFB | 8% | 450 ms |
| Load Delay | 68% | 3,720 ms |
| Load Time | 1% | 40 ms |
| Render Delay | 23% | 1,280 ms |
此外,Lighthouse还要求我压缩Chrome扩展的JS,这听起来很奇怪。
我正在尝试Apache的mod_pagespeed模块,或许能有所帮助。
编辑:在Performance面板中,我看到实施多项优化后LCP和FCP结果有所改善,但仍不理解Lighthouse的报告。
2025年更新:我安装了mod_pagespeed,此后页面得分优异。我仍认为最初的糟糕得分可能是由Bug导致,Chrome扩展或许也有影响。
内容的提问来源于stack exchange,提问作者Alex

