网站性能发布于 2026-07-29 · 更新于 2026-07-29 · 10 min

企业官网页面为什么会跳动?用 CLS 找到最大位移窗口

企业官网图片、字体、嵌入和异步内容加载时页面跳动,可用 CLS 的最大位移窗口定位受影响元素,再通过尺寸、占位、字体与动态插入规则稳定修复。

CLS 优化Cumulative Layout ShiftCore Web Vitals页面布局跳动图片尺寸动态内容占位Web 字体

先看核心结论

  • 良好 CLS 的官方参考值是 0.1 以内,并以移动端、桌面端分别统计的第 75 百分位判断。
  • CLS 不是毫秒,而是可见内容受影响范围与移动距离组合得到的无单位分数。
  • 应从分数最高的 session window 开始,找到被移动的元素和实际触发位移的上游内容。
  • 图片写明尺寸、为嵌入和异步内容预留空间、校准字体与使用不触发布局的动画,是常见修复方向。
企业官网页面元素从意外位移到使用稳定网格和预留空间的 CLS 优化原创对比图
CLS 优化从最大位移窗口追到上游触发内容,并用尺寸、比例或占位提前保留稳定空间。

直接答案:CLS 优化要先找到分数最高的布局位移窗口和真正移动的元素,再判断是谁把它推走:未写尺寸的图片、后插入的横幅或表单、尺寸不确定的嵌入、字体替换或布局动画。修复重点是提前预留稳定空间,并在整个页面生命周期中复测。

CLS 是什么,企业官网多少算稳定?

CLS(Cumulative Layout Shift,累积布局偏移)衡量页面整个访问期间发生的意外视觉位移。它不是加载耗时,而是根据可见内容受影响的范围和移动距离计算出的无单位分数。

0.1、0.25 与第 75 百分位怎样理解

web.dev 给出的参考值是:0.1 以内为良好,0.1—0.25 需要改进,超过 0.25 较差;判断时看移动端和桌面端分别统计的第 75 百分位。目标不是让某次本地测试显示 0,而是让大多数真实访问保持稳定。来源:web.dev《Cumulative Layout Shift (CLS)》https://web.dev/articles/cls

页面突然下移会让读者丢失阅读位置,也可能让原本准备点击“取消”的用户误点其他按钮。企业官网尤其要关注导航、产品卡片、询盘入口与表单附近的位移。

CLS 与 LCP、INP 的分工

指标主要问题典型现象
LCP主要内容何时出现首图或标题迟迟不显示
INP操作后何时出现下一帧反馈菜单、筛选或表单点击后卡住
CLS可见内容是否意外移动图片、字体或横幅出现后页面跳动

执行提示|先让团队用“慢出现、慢响应、会跳动”描述现象,再对应指标,能避免把三类问题混成一个总分。

CLS 为什么看最大位移窗口,而不是把所有移动直接相加?

当前 CLS 取页面生命周期中分数最高的一组连续位移,也就是最大 session window。窗口内相邻位移间隔小于 1 秒,总持续时间最多 5 秒;优化时应先处理分数最高的窗口。

session window 怎样帮助定位问题

一张大图加载后把正文连续推下,可能在几秒内产生一组位移;用户继续浏览很久后,页尾又发生另一组较小位移。CLS 关注其中累计分数最高的一组,而不是让长时间停留页面因为零散移动无限累加。

Chrome DevTools 的 Layout Shifts 轨道会按窗口聚合位移。官方建议从最大的 session window 开始,点击具体记录查看受影响元素和潜在原因。来源:Chrome DevTools《Performance insights》https://developer.chrome.com/docs/devtools/performance-insights

移动的元素不一定是根因

DevTools 标出的不稳定元素可能只是“被推走”的正文或按钮。真正原因常在它上方:图片没有预留高度、提示条后插入、字体变高、嵌入组件改变尺寸。排查时要同时查看移动元素与其上游新增或变尺寸的内容。

执行提示|把“最大窗口、被移动元素、上游触发内容”记录在同一条问题里,开发才能修到根因。

为什么实验室 CLS 很低,真实用户仍然看到页面跳动?

实验室测试通常只覆盖一次受控加载,真实用户却会遇到冷缓存、不同图片、个性化内容、第三方组件、滚动和交互后的异步更新。CLS 覆盖整个页面生命周期,因此现场数据可能高于一次加载测试。

现场与本地常见差异

差异来源本地为什么看不见现场可能发生什么
浏览器缓存图片和字体已缓存首次访问加载慢,尺寸晚确定
真实内容使用固定测试图和短文案产品图比例、标题行数、翻译长度不同
第三方组件测试环境关闭或响应很快地图、视频、客服或统计脚本晚加载
页面生命周期只测首屏加载滚动后懒加载、筛选和返回前进仍会位移
iframe本页脚本难以看到跨域内部细节嵌入内容仍影响用户体验和现场指标

web.dev 指出,生产中的个性化或第三方内容、缓存和 API 速度会造成开发环境与真实体验差异;CLS 还覆盖整个页面生命周期。来源:web.dev《Cumulative Layout Shift (CLS)》https://web.dev/articles/cls

应怎样组合数据

用 PSI、Search Console 或合规 RUM 判断受影响设备和页面组;用 DevTools Live metrics 浏览并操作页面,再对最大位移窗口录制 Performance。小流量 URL 没有 CrUX 数据时,不要推断没有问题。

执行提示|把真实内容、冷缓存和第三方组件纳入测试条件,可以减少“开发环境不跳,线上用户一直跳”的返工。

企业官网 CLS 高,最常见的根因有哪些?

常见根因是媒体未写尺寸、嵌入或异步内容没有占位、现有内容上方后插入模块、Web 字体替换改变文字尺寸,以及会触发布局的动画。每类原因都应先确认再修。

根因—现象—修复方向对照

根因典型现象修复方向
图片/视频无尺寸媒体出现后正文整体下移写 width/height 或稳定 aspect-ratio,保持响应式
iframe/地图/视频嵌入无占位第三方内容加载后容器变高按设备预留容器高度或比例,加载失败也保持稳定
横幅/提示/表单后插入现有导航或正文被从上方推开初始布局预留位置,或使用不挤压正文的合适呈现方式
字体替换标题换字体后换行或高度变化优化加载,匹配备用字体指标,控制字体回退
布局属性动画元素移动同时推开周围内容优先用 transform/opacity,并验证可访问性与交互
图片比例因断点变化桌面稳定、手机切图后跳动为 picture/source 和各断点提供一致的尺寸信息

web.dev 将无尺寸图片、广告/嵌入/iframe、动态注入内容和 Web 字体列为最常见的 CLS 原因。来源:web.dev《Optimize Cumulative Layout Shift》https://web.dev/articles/optimize-cls

为什么只给容器加固定高度也可能失败

固定高度若与手机、桌面或真实内容不匹配,会造成裁切、大空白或新的位移。应根据媒体固有比例、内容上限和断点设计稳定空间,并验证长标题、多语言、加载失败和无内容状态。

执行提示|先按根因分类,再决定用尺寸、占位、字体还是动画方案,避免用一个固定高度补丁覆盖全站。

企业官网应按什么顺序完成 CLS 优化?

建议按“确认现场范围—录制最大窗口—找到上游触发—为媒体和动态内容预留空间—稳定字体与动画—覆盖完整生命周期复测”的顺序执行。

步骤 1:确认问题集中在哪些模板与设备

区分首页、产品列表、产品详情、解决方案、文章和表单页,分别看移动端与桌面端。选择真实内容差异较大的代表页,不要只测最规整的演示页面。

步骤 2:从最大的 session window 开始录制

在 DevTools Performance 中重新加载并按真实路径浏览,查看 Layout Shifts 轨道;点击分数最高的窗口,记录时间、受影响元素、截图和潜在原因。

步骤 3:为图片和视频提供可计算的尺寸

在 img 和 video 上提供 width/height,或用 CSS aspect-ratio 预留正确比例;响应式 CSS 可继续让媒体宽度自适应。现代浏览器可在资源下载前据此计算布局。来源:web.dev《Optimize Cumulative Layout Shift》https://web.dev/articles/optimize-cls

步骤 4:为嵌入、横幅和异步模块预留稳定空间

地图、视频、客服入口、Cookie 提示、推荐内容和询盘表单若会进入正常文档流,应在初始布局中预留最小空间或骨架。加载失败、无数据和权限拒绝时也要保持容器状态可预测。

步骤 5:检查字体替换、换行和多语言长度

记录备用字体与正式字体切换时标题、按钮和导航是否换行。减少不必要字体变体,尽早加载关键字体,并通过合适的备用字体和字体指标调整降低几何差异。中文、英文和长语言版本要分别验收。

步骤 6:避免动画改变正常布局

移动和淡入优先考虑 transform 与 opacity;若必须展开内容,应在用户操作后立即建立所需空间并清楚显示状态。不能为了 CLS 把重要内容做成覆盖层,导致键盘、阅读顺序或移动端体验变差。

步骤 7:覆盖加载、滚动、交互和返回场景

测试冷缓存、慢网络、滚动懒加载、筛选切换、弹窗、表单错误、前进后退缓存恢复和长时间停留。确认修复没有制造裁切、重叠、大空白或误点风险。

执行提示|每一步保存前后截图、位移窗口和回退版本,能把“看起来不跳了”升级为可复核验收。

用户点击后内容展开,也会算成有害 CLS 吗?

不一定。与离散用户输入直接相关、在足够接近的时间内发生的位移通常被视为预期变化;但网络返回很晚后再推开内容,仍可能造成困扰。正确做法是操作后立即预留空间并显示加载状态。

500 毫秒近期输入标记的边界

Layout Instability API 会给点击、触摸或按键等离散输入后 500 毫秒内发生的位移标记 hadRecentInput,这类位移可从 CLS 计算中排除。滚动和某些连续输入不适用这个标记。来源:web.dev《Cumulative Layout Shift (CLS)》https://web.dev/articles/cls

这不是让开发把所有更新硬塞进 500 毫秒的技巧。用户需要的是可预测反馈:点击展开立即出现容器;等待接口时保留空间和加载状态;结果回来后在既有区域更新。

预期位移也要检查可用性

即使某次位移不计入 CLS,若它让焦点丢失、按钮跑到手指下方、阅读位置改变或内容覆盖,也仍是体验问题。指标豁免不等于设计合格。

执行提示|把“是否计入 CLS”和“用户是否能预期”分开验收,避免只围绕分数设计交互。

CLS 改完后,怎样确认视觉稳定而没有新回归?

先比较最大 session window 与受影响元素,再覆盖真实内容、设备和整个页面生命周期。验收应同时确认 CLS、版式完整、可访问性、交互和转化入口。

一份完整的 CLS 验收矩阵

维度至少覆盖失败表现
设备移动端、桌面端某个断点图片比例或导航换行跳动
内容短/长标题、不同图片比例、多语言真实内容撑破预留空间
网络/缓存冷缓存、慢网络、再次访问首次访问跳,缓存后不跳
生命周期加载、滚动、交互、返回实验室首屏稳定,后续懒加载跳动
异常状态无数据、加载失败、表单错误容器消失或错误提示推开 CTA

现场数据需要时间反映新版本

PSI 的 CrUX 现场数据覆盖此前 28 天,修复上线后不会立即完全替换旧样本。先用本地录制确认根因消失,再观察移动端、桌面端和 URL/源站现场趋势。来源:Google《About PageSpeed Insights》https://developers.google.com/speed/docs/insights/v5/about

执行提示|将矩阵附到上线单,可防止只修首页首屏,却让产品页、长内容或错误状态继续跳动。

NeoGress 怎样接入 CLS 与三篇系列的发布流程?

NeoGress 可用于建立首页、栏目、产品页、解决方案页与文章骨架;CLS 是否稳定仍取决于最终图片比例、字体、嵌入、动态模块和真实内容,需要对每类上线模板单独验收。

把视觉稳定规则写进模板验收

NeoGress 公开首页目前说明可同步形成官网页面、栏目与内容方向。团队可在上传图片、配置模块和发布前增加四条硬检查:媒体尺寸明确、动态模块有占位、字体回退可控、真实内容断点不跳。产品公开说明:https://neogress.com/

完整系列按“LCP 加载—INP 交互—CLS 稳定”阅读。三篇同批上线时可一次建立完整双向内链并更新上级专题;分批上线时只链接已上线文章,下一篇上线时同步回补上一篇正向链接。

性能与搜索边界

Google Search Central 建议 LCP、INP 和 CLS 达到良好体验,并说明这些指标用于排名系统;但绿色指标不是顶部排名、收录或询盘保证。来源:Google《Understanding Core Web Vitals and Google search results》https://developers.google.com/search/docs/appearance/core-web-vitals

执行提示|正文 CTA:选一个图片比例变化最多的产品页做 CLS 录制;需要梳理页面与内容骨架时,再进入 NeoGress 企业官网 SEO 增长专题。

CLS 优化有哪些限制和风险?

CLS 只衡量意外布局位移,不代表页面加载快、交互快、内容正确或可访问。跨域 iframe、真实内容差异和长时间页面访问都会增加测量与复现难度。

不能为了 0 分牺牲页面质量

固定容器过大会制造空白,过小会裁切;覆盖层可能破坏焦点和阅读顺序;强制一种图片比例可能损失产品信息。修复要在稳定、内容完整和响应式布局之间平衡。

所有模板调整都应保留回退方案。涉及导航、表单或核心产品展示时,应先在代表页面验证,再扩大范围。

执行提示|结尾 CTA:用“加载、交互、稳定、内容、转化”五项联合验收,而不是只追求 CLS 0。

结论与下一步

CLS 优化从最大位移窗口开始:找到被移动的元素,再追到让它移动的上游图片、嵌入、动态内容、字体或动画。修复时提前预留稳定空间,并覆盖冷缓存、真实内容、滚动和交互后的完整生命周期。先选一个图片比例变化最多的产品页完成录制;需要统一页面与内容骨架时,可从 NeoGress 企业官网 SEO 增长专题继续。

怎样继续阅读这套 Core Web Vitals 排查系列?

三篇分别处理加载、交互和视觉稳定,搜索意图互不替代。可先从当前最明显的用户问题进入,也可以按 LCP → INP → CLS 的顺序完成联合验收。

需要把页面规划、内容生产与上线验收放进同一流程时,可回到 NeoGress 首页了解当前公开能力。本文不承诺收录、排名、流量、AI 引用或询盘结果。

把方法落到官网

把文章结论接回企业官网增长

继续完善核心页面、专题内容、搜索入口与转化动作,让单篇内容成为官网长期增长结构的一部分。

常见问题

CLS 0.1 是 0.1 秒吗?

不是。CLS 是无单位分数,由可见内容受影响的范围和移动距离计算。良好参考值是 0.1 以内,并看移动端、桌面端第 75 百分位。

图片用了 width:100%,还需要写 width 和 height 吗?

通常仍应提供图片固有 width/height 或稳定 aspect-ratio,让浏览器在下载前预留比例。响应式 CSS 可以继续控制显示宽度和自动高度。

懒加载图片一定会造成 CLS 吗?

不一定。只要加载前已经预留正确空间,图片晚加载也不必推开内容;没有尺寸或占位时才容易产生位移。

点击展开内容为什么有时不计入 CLS?

与点击、触摸或按键直接相关并在近期发生的位移可能带有 hadRecentInput 标记而被排除。但它仍要满足可预测、可访问和不误点的体验要求。

Lighthouse 显示 CLS 为 0,为什么用户仍说页面会跳?

一次实验室加载可能没覆盖冷缓存、真实图片、第三方组件、滚动懒加载和交互后的异步内容。应结合现场数据与完整生命周期录制。

继续阅读

上一篇
企业官网点击没反应怎么查?用 INP 拆开三段延迟
下一篇
Search Console 显示“已发现 - 尚未编入索引”,该怎么排查?