Lighthouse 报告中 CLS 值很高,但页面看起来没跳动? UP主~冬冬 提问于 2026-03-18 22:54:26 阅读 5 工具 我用 Lighthouse 测了一个页面,CLS(累积布局偏移)得分特别低,说是 0.35,但我在浏览器里反复刷新根本看不出内容有突然跳动啊。是不是哪里误报了? 页面里确实有个图片没设宽高,但我加了 width 和 height 属性之后重新测,CLS 还是没变。这是不是 Lighthouse 的 bug? CLS指标 我来解答 赞 3 收藏 分享 生成中... 手机扫码查看 复制链接 生成海报 反馈 发表解答 您需要先 登录/注册 才能发表解答 1 条解答 欧阳熙研 Lv1 CLS 0.35确实偏高,但你说看不出跳动,这个其实挺常见的——人眼对轻微的布局偏移没那么敏感,特别是刷新时注意力不在那个区域的话。 先说为什么加宽高没用。最可能的情况是你用了懒加载(loading="lazy"),图片在视口外时根本不加载,等你滚动过去才加载,这时候CLS就来了。加宽高只能防止图片加载时预留空间,懒加载导致的延迟加载是另外的问题。 检查一下这几个地方: 第一,看看Network面板里这张图片是不是真的没加载。如果用了懒加载,它可能在页面初始加载时根本不请求。 第二,看是不是有动态插入的内容。广告、推荐位、或者JS动态渲染的组件最容易造成CLS。你可以打开DevTools的Performance面板录制一下,看有没有在页面加载后突然插入DOM的情况。 第三,检查你的CSS有没有覆盖了img的width/height属性。有些人CSS里写了img { width: 100%; }之类的,直接把HTML属性覆盖了。 如果确认是懒加载的问题,有几个方案:一个是给图片容器设个min-height,让它在图片加载前就占好位置;另一个是把首屏图片的loading改成eager;还有就是用aspect-ratio这个CSS属性,比width/height更可靠。 另外提醒一下,排查的时候用Lighthouse的Simulated throttling和Regular 4G模式都跑一下,看看结果差异大不大。有些时候快速网络下CLS低,慢速网络下才暴露出来。 你具体是做什么类型的页面?有没有用React/Vue之类的框架?有些框架的SSR和客户端hydration过程也会造成CLS。 回复 点赞 2026-03-18 23:10 加载更多 相关推荐 2 回答 33 浏览 为什么我的页面CLS总是很高,明明没做什么动态内容? 最近用Lighthouse测性能,发现累积布局偏移(CLS)分数特别差,经常超过0.25。我页面里其实没加什么广告或者异步图片,就是普通的商品列表,每个商品有个标题和价格。 我试过给图片加了固定宽高,... 技术风云 前端 2026-02-24 15:48:20 2 回答 41 浏览 为什么我的页面布局偏移导致CLS很高? 我最近用Lighthouse测性能,发现CLS(累积布局偏移)特别高,明明没加什么动态内容啊。仔细看发现是图片加载时撑开了布局,但我已经给img加了width和height属性了,怎么还是有偏移? 这... 司空雨路 前端 2026-02-27 12:58:23 2 回答 51 浏览 图片加载导致CLS分数高,怎么定位和修复? 开发图片列表页时,Lighthouse报告显示CLS有0.5以上,主要问题提示“避免不必要的布局 shifting”。图片都用了懒加载,给img标签设置了固定宽高,但分数还是很高,搞不懂哪里出问题了。... ♫慧慧 工具 2026-02-14 22:34:00 1 回答 48 浏览 Lighthouse生成报告后内容全是空白怎么办? 在用Chrome开发者工具跑Lighthouse评分时,生成的报告页面全是空白,但之前能正常出结果。试过清除浏览器缓存、重启浏览器,甚至重装Chrome都没用。 用控制台看报错显示:Uncaught ... Top丶心虹 工具 2026-02-04 13:14:22 2 回答 74 浏览 Lighthouse生成报告时为什么提示”未运行任何审核”? 我在用Lighthouse API生成报告时,页面一直显示"未运行任何审核"的错误。按照文档写了配置对象,但运行后结果里所有分数都是0,控制台也没报错,这是怎么回事? 我尝试过这样调用: async ... 皇甫秋花 工具 2026-01-29 20:06:27 1 回答 24 浏览 Lighthouse 自定义审计怎么获取页面的 DOM 节点? 我在写 Lighthouse 的自定义审计时,想在 audit 方法里拿到页面上某个特定元素,比如 document.querySelector('#my-button'),但直接这么写报错了,说 d... Mc.啸垄 工具 2026-03-18 03:30:22 1 回答 19 浏览 Lighthouse 报告里 Performance 分数忽高忽低是怎么回事? 我最近用 Chrome DevTools 的 Lighthouse 测自己做的一个静态页面,Performance 分数有时候跑出来 90+,有时候却掉到 60 多,明明代码一点没改。我试过清缓存、开... 志鸽 工具 2026-03-09 19:49:17 1 回答 19 浏览 Lighthouse 报告中 TTI 过高,如何优化? 最近用 Lighthouse 测了一个页面,TTI(Time to Interactive)居然有 8 秒多,明明首屏内容加载挺快的,交互延迟怎么会这么高?我试过删掉一些非关键 JS,但效果不明显。 ... 上官润恺 工具 2026-03-07 22:41:21 1 回答 20 浏览 为什么页面FCP很高但Lighthouse评分却不错? 我在用 Lighthouse 测速时发现 FCP(首次内容绘制)经常超过 3 秒,但整体性能评分却有 80 多分,这合理吗?是不是我哪里监控错了? 我页面里有个 loading 动画,用 CSS 控制... Newb.子轩 前端 2026-03-02 16:37:20 2 回答 61 浏览 Lighthouse 报告中 TBT 过高怎么优化? 我用 Lighthouse 测了一个 React 页面,TBT(Total Blocking Time)高达 400ms,明明页面看起来挺流畅的,不知道哪里卡住了。试过把一些 useEffect 拆成... 令狐明宇 工具 2026-03-02 09:04:25
先说为什么加宽高没用。最可能的情况是你用了懒加载(loading="lazy"),图片在视口外时根本不加载,等你滚动过去才加载,这时候CLS就来了。加宽高只能防止图片加载时预留空间,懒加载导致的延迟加载是另外的问题。
检查一下这几个地方:
第一,看看Network面板里这张图片是不是真的没加载。如果用了懒加载,它可能在页面初始加载时根本不请求。
第二,看是不是有动态插入的内容。广告、推荐位、或者JS动态渲染的组件最容易造成CLS。你可以打开DevTools的Performance面板录制一下,看有没有在页面加载后突然插入DOM的情况。
第三,检查你的CSS有没有覆盖了img的width/height属性。有些人CSS里写了img { width: 100%; }之类的,直接把HTML属性覆盖了。
如果确认是懒加载的问题,有几个方案:一个是给图片容器设个min-height,让它在图片加载前就占好位置;另一个是把首屏图片的loading改成eager;还有就是用aspect-ratio这个CSS属性,比width/height更可靠。
另外提醒一下,排查的时候用Lighthouse的Simulated throttling和Regular 4G模式都跑一下,看看结果差异大不大。有些时候快速网络下CLS低,慢速网络下才暴露出来。
你具体是做什么类型的页面?有没有用React/Vue之类的框架?有些框架的SSR和客户端hydration过程也会造成CLS。