如何降低已上线网站的CLS(Cumulative Layout Shifts)以符合Core Web Vitals要求
已上线网站CLS优化可行方案(适配Core Web Vitals更新要求)
谷歌Core Web Vitals要求CLS合格阈值为≤0.1,当前0.33的数值可通过以下优先级操作快速整改:
高频CLS诱因整改操作
- 给所有图片、视频、iframe元素明确设置宽高属性:现代浏览器会通过标签上的
width、height属性自动计算预留渲染空间,避免资源加载完成后撑开布局。响应式场景下可配合CSS的aspect-ratio属性锁定元素比例,或搭配width: 100%; height: auto的写法适配不同屏幕尺寸。 - 动态插入内容提前预留占位空间:广告位、懒加载评论区、悬浮提示、订阅弹窗等异步加载后才插入DOM的元素,不要等内容返回后再撑开布局,提前给父容器设置固定高度或最小高度占住对应位置。
- 禁止非用户交互触发的文档流偏移:所有自动弹出的Cookie提示、促销通知、更新弹窗等元素,要么提前写入HTML结构预留空间,要么设置
position: fixed、position: absolute脱离文档流,避免加载后挤压其他正常内容的位置。 - 优化字体加载避免文字偏移:优先使用系统字体栈减少外部字体加载依赖,必须使用自定义字体时,给
@font-face配置font-display: swap属性,或预加载首屏关键字体文件;同时给文本容器提前设置匹配的line-height与字号,避免字体加载后撑开容器高度。 - 修正懒加载逻辑:不给首屏可视区域内的图片、内容加懒加载属性,避免懒加载触发后才渲染导致首屏偏移;所有懒加载元素依然要提前设置宽高/比例预留占位空间。
效果验证方式
- 本地调试用Chrome DevTools的Performance面板,勾选「Web Vitals」选项后重新加载页面,可直接定位到触发布局偏移的具体元素,精准修复。
- 上线前通过PageSpeed Insights跑检测报告,可直接获取CLS相关的具体问题项,对应整改即可。
- 上线后可通过搜索控制台的Core Web Vitals模块查看真实用户的CLS数据,确认数值稳定降至0.1以下的合格区间。
内容的提问来源于stack exchange,提问作者Rahul Kumar
相关产品推荐
相关产品推荐

