RUM实践-累计布局偏移(CLS)的探索

简介: 本文介绍网页性能关键指标——累计布局偏移(CLS),解析其对用户体验与SEO的影响,并分享如何通过DATABUFF的RUM工具监控CLS数据,结合图像尺寸预留、字体优化、资源预加载等策略,有效提升页面视觉稳定性与访问体验。

随着互联网技术的发展,网站性能优化成为提升用户体验的关键因素之一。Google 提出了 Core Web Vitals 作为衡量网页质量的新标准,其中累计布局偏移(Cumulative Layout Shift, CLS)是衡量页面视觉稳定性的一个重要指标。本文将探讨如何通过 DATABUFF 的 RUM 工具来监测和改善网页的 CLS 值。

一、CLS的定义与标准

累计布局偏移(Cumulative Layout Shift, CLS)是 Google Core Web Vitals 中的核心指标之一,通过结合可见内容在视口中的偏移量与受影响元素移动的距离来衡量内容的不稳定性。布局偏移可能会分散用户注意力,干扰用户的浏览体验,比如点击目标突然移动等。CLS 衡量在网页的整个生命周期内发生的每一次意外布局偏移的布局偏移得分的最高累计分数,有助于量化用户遇到意外布局偏移的频率,是评估用户体验的关键数据点之一。
image.png

CLS分数越低,说明页面越稳定;反之,则表明页面存在较多不稳定因素。为了提供良好的用户体验,网站应尽量确保至少 75% 的网页访问的 CLS 不高于 0.1。

二、为什么需要关注CLS

  1. 提升用户体验:减少不必要的布局变动可以让用户更加专注于内容本身。

  2. SEO 优化:Google 已明确表示会将 CLS 纳入其搜索排名算法中,因此良好的 CLS 表现有助于提高网站的可见度。

  3. 增强品牌形象:流畅稳定的网页加载过程能够给访客留下深刻印象,从而增强品牌信任感。

三、收集RUM数据

要优化 CLS,首先需要收集网站的真实用户监控(RUM)数据。这可以通过 DATABUFF 的 RUM 工具来完成:

将下方代码复制粘贴到每一个您想监控的 HTML 页面中标签的第一行,确保能采集全部性能指标和错误信息。

<script src="/js/browser.js" type="text/javascript"></script>
<script>
window.dataBuffOpenTelemetryRum.initialize({
  collectionSourceUrl: "https://192.168.50.147/rum",
  applicationName: "databuff-rum",
  applicationKey: "a8d8bcc4-xxxx-xxxx-xxxx-c02f0a6695ca",
});
</script>

通过 Chrome 浏览器访问嵌码页面,按 F12,然后在 network 中搜索 “traces”,若有 traces 接口数据,即为嵌码成功。 traces 接口为嵌码成功后上传性能数据。

image.png

四、数据展示

应用详情中查看 CLS 指标的平均值和时间趋势:

image.png

通过 CLS 排序能够展示不同页面 CLS 的情况,根据页面的指标表现来针对性的优化 CLS :
image.png

五、CLS优化

为图像和视频预留尺寸

  • 使用width和height属性为图像明确指定尺寸。

  • 对于响应式布局,使用 CSS 的aspect-ratio属性。

  • 视频元素可以设置固定宽高,或者通过外部容器限制尺寸。

<img src="example.jpg" width="800" height="600" alt="example">

或使用 css:

img {
   
  aspect-ratio: 4 / 3;
  width: 100%;
  height: auto;
}

避免动态加载内容推挤页面

  • 为广告和 iframe 设置固定的占位符尺寸。

  • 确保动态内容加载时不会改变布局。

.ad-placeholder {
   
  width: 300px;
  height: 250px;
  background-color: #f0f0f0;
}

使用字体优化

  • 使用font-display: swap;优化字体加载。

  • 选择性能更好的字体,或加载字体的子集。

@font-face {
   
  font-family: 'CustomFont';
  src: url('customfont.woff2') format('woff2');
  font-display: swap;
}

延迟加载非关键内容

  • 使用loading="lazy"属性延迟加载图片和 iframe。

  • 确保 lazy-loaded 内容不会改变页面的原始布局。

<img src="example.jpg" loading="lazy" width="800" height="600" alt="example">

预加载关键资源

  • 使用 <link rel="preload"> 提前加载字体和其他关键资源。
<link rel="preload" href="customfont.woff2" as="font" type="font/woff2" crossorigin="anonymous">

六、总结

累计布局偏移(CLS)是衡量视觉稳定性的关键指标,直接关系到用户的使用体验。通过 RUM 工具收集真实的用户数据,可以有效分析并优化 CLS 表现。优化 CLS 可以采取诸如为图像和视频预留固定尺寸、优化字体加载策略、以及延迟加载非关键资源等措施,这些方法不仅有效提升了页面的视觉稳定性,还显著改善了用户体验。

相关文章
|
机器学习/深度学习 自然语言处理 算法
Stable Diffusion WebUI 从零基础到入门
Stable Diffusion WebUI 从零基础到入门
2194 1
|
运维 分布式计算 DataWorks
阿里云大数据ACP(一)大数据开发平台 DataWorks 1
阿里云大数据ACP(一)大数据开发平台 DataWorks 1
1968 0
阿里云大数据ACP(一)大数据开发平台 DataWorks 1
|
12月前
|
SQL 人工智能 数据挖掘
Apache Doris AI 能力揭秘(三):AI_AGG 与 EMBED 函数深度解析
Apache Doris 推出 AI_AGG 与 EMBED 两大核心函数,实现文本智能聚合与语义向量化分析。AI_AGG 支持海量文本动态预聚合,EMBED 结合向量函数实现相似度检索、问答匹配等场景,原生集成 AI 能力至 SQL,让数据分析更智能高效。
589 7
Apache Doris AI 能力揭秘(三):AI_AGG 与 EMBED 函数深度解析
|
存储 安全 Java
JUC系列之《深入理解synchronized:Java并发编程的基石 》
本文深入解析Java中synchronized关键字的使用与原理,涵盖其三种用法、底层Monitor机制、锁升级过程及JVM优化,并对比Lock差异,结合volatile应用场景,全面掌握线程安全核心知识。
|
10月前
|
SQL 存储 人工智能
AI 能力揭秘(五):Apache Doris 原生向量检索的设计及实现
随着大模型和多模态 AI 的快速发展,向量已成为文本、图像、音视频等多元数据的通用语义表示。在这种背景下,检索增强生成(RAG)技术成为连接私有知识与大模型的核心桥梁,而高效的向量检索则是其关键支柱。 与将向量检索视为独立外挂服务的方案不同,Apache Doris 4.0 选择将向量检索能力深度集成于其 MPP 分析型数据库内核。实现向量检索与 SQL 计算、实时分析和事务保障的无缝融合。 本文旨在深入剖析 Doris 向量检索的系统级设计与工程实践,展示其如何在性能、易用性与规模扩展之间取得的平衡。
1058 0
AI 能力揭秘(五):Apache Doris 原生向量检索的设计及实现
|
编解码
发现一款免费的网页视频下载神器
免费的网页视频下载神器
6765 0
|
小程序 前端开发 Android开发
小程序微信分享功能如何开发?开放平台已绑定仍不能使用的问题?-优雅草卓伊凡
小程序微信分享功能如何开发?开放平台已绑定仍不能使用的问题?-优雅草卓伊凡
2868 29
小程序微信分享功能如何开发?开放平台已绑定仍不能使用的问题?-优雅草卓伊凡
|
监控 Java 调度
SpringBoot中@Scheduled和Quartz的区别是什么?分布式定时任务框架选型实战
本文对比分析了SpringBoot中的`@Scheduled`与Quartz定时任务框架。`@Scheduled`轻量易用,适合单机简单场景,但存在多实例重复执行、无持久化等缺陷;Quartz功能强大,支持分布式调度、任务持久化、动态调整和失败重试,适用于复杂企业级需求。文章通过特性对比、代码示例及常见问题解答,帮助开发者理解两者差异,合理选择方案。记住口诀:单机简单用注解,多节点上Quartz;若是任务要可靠,持久化配置不能少。
1327 4
|
JavaScript 前端开发 API
Vue 2 与 Vue 3 的区别:深度对比与迁移指南
Vue.js 是一个用于构建用户界面的渐进式 JavaScript 框架,在过去的几年里,Vue 2 一直是前端开发中的重要工具。而 Vue 3 作为其升级版本,带来了许多显著的改进和新特性。在本文中,我们将深入比较 Vue 2 和 Vue 3 的主要区别,帮助开发者更好地理解这两个版本之间的变化,并提供迁移建议。 1. Vue 3 的新特性概述 Vue 3 引入了许多新特性,使得开发体验更加流畅、灵活。以下是 Vue 3 的一些关键改进: 1.1 Composition API Composition API 是 Vue 3 的核心新特性之一。它改变了 Vue 组件的代码结构,使得逻辑组
2530 0
|
存储 算法 机器人
卡尔曼滤波 KF | 扩展卡尔曼滤波 EKF (思路流程和计算公式)
本文分析卡尔曼滤波和扩展卡尔曼滤波,包括:思路流程、计算公式、简单案例等。滤波算法,在很多场景都有应用,感觉理解其思路和计算过程比较重要。
5186 0