核心网络要素:谷歌的网络性能指标指南
谷歌希望人们有一个良好的网络体验,所以它在搜索结果中排名靠前。当然,这是一个粗略的简化,但是,假设你比较的是两个内容和受众相似的网站,速度更快的那个应该在结果中显得更高。但谷歌如何衡量这一点一直有点像猜谜游戏,所以它引入了核心Web vital,为网站所有者和开发人员提供一些急需的清晰度。
不幸的是,“性能”是一个涵盖了许多指标的术语……第一个字节的时间,开始渲染,CPU使用率,JavaScript堆大小,第一次内容绘制,第一次有意义的绘制,第一次CPU空闲,DOM加载,页面完全加载,交互时间,每秒样式重新计算,以及更多。
不同的工具返回不同的结果集,很难知道从哪里开始。
谷歌的Web vital计划旨在简化性能评估,并帮助您专注于最重要的改进。核心Web vital是反映真实用户体验的关键性能指标。有些是由Chrome DevTools中的Lighthouse面板报告的,PageSpeed见解,以及谷歌搜索控制台.
的web-vitals JavaScript库可以帮助从访问您网站的真实用户中衡量更现实的指标。结果可以发布到谷歌Analytics或其他端点进行进一步分析。
谷歌建议使用第75百分位,即为同一指标记录多个结果,将它们从最好到最差排序,然后在四分之三点分析数字。因此,四分之三的网站访问者将体验到这种水平的性能。
当前的核心Web vital是最大的内容油漆,第一次输入延迟,累积布局移位据此评估负载,交互性和视觉稳定性。
最大含量涂料(LCP)
LCP测量加载性能-内容出现的速度.
历史指标,如页面加载和DOMContentLoaded
在这方面有困难,因为它们并不总是代表用户体验。例如,启动画面几乎可以立即出现,但通过Ajax请求加载的可用内容可能需要更长的时间才能出现。
最大内容绘制(LCP)报告视口中可见的最大图像或文本块的渲染时间。2.5秒以下为好,4.0秒以上为差。
LCP中考虑的元素类型有:
< img >
元素<图片>
中的元素svg < >
- 海报图片的一个
< >视频
元素 - 使用CSS加载的带有背景图像的元素
url ()
财产 - 包含文本节点的块级元素。
最大的元素是在内容加载时确定的,大小是根据它在浏览器视口中可见的尺寸计算出来的。
LCP可受以下因素影响:
- 服务器响应时间
- 资源加载时间
- 渲染阻塞CSS或JavaScript
- 客户端大小的处理时间
LCP的改进可能通过以下方式实现:
- 使用内容分发网络(CDN)将请求路由到更近的服务器
- 通过最小化昂贵的呈现时间进程数量来优化服务器响应
- 最小化资产的文件大小
- 在本地缓存资产,并且可能首先使用service worker返回本地版本。
首次输入延迟(FID)
FID测量响应性-页面对用户操作的响应速度有多快.
这个度量记录了从用户与页面交互(点击、点击、按键等)到浏览器开始处理该事件处理程序的时间。小于100毫秒的延迟被认为是好的,超过300毫秒的延迟被认为是差的。
FID只有在应用程序提供给实际用户时才能准确测量。此外,它只测量事件处理中的延迟——而不是运行处理程序或更新UI所花费的时间。
谷歌和各种工具因此使用总阻塞时间(TBT)作为一个替代指标,可以在没有实际用户输入的情况下计算。TBT衡量的是以下两者之间的总时间:
- 第一次内容绘制(FCP) -页面内容的任何部分被渲染的时间,以及
- 交互时间(TTI)——页面能够可靠地响应用户输入的时间(没有长时间的任务正在运行,并且尚未解析的GET请求不超过两个)。
FID/TBT的改进可能通过以下方式实现:
- 减少JavaScript的执行时间,通常通过延迟非关键代码
- 拆分长时间运行的任务
- 使用web workers在后台线程中运行任务
- 按需加载第三方JavaScript。
累积布局位移(CLS)
CLS测量视觉稳定性查看页面时内容的意外移动.
CLS会评估那些令人讨厌的情况,即内容在没有警告的情况下移动——通常是在当前滚动位置上方的广告或图像完成加载后DOM发生变化时。这个问题在移动设备上尤其明显,可能会导致你找不到位置或点击错误的链接。
CLS的计算方法为:
- 冲击分数:视口中不稳定元素的总面积(那些将移动的元素)。冲击分数为0.5表示总共占视口一半的元素将被移位。
- 距离分数:视口中任何单个元素移动的最大距离。距离分数为0.25表示至少有一个元素移动了视口的四分之一(水平或垂直)。
考虑下面的例子,在logo、菜单和英雄图像渲染后不久加载广告:
logo和菜单不会移动——它们是稳定的元素。广告被添加到DOM中,它的起始位置没有改变,所以它也是稳定的。然而,英雄形象会移动:
- 英雄是360 x 510像素在360 x 720视口。因此,它的冲击分数为(360 x 510) / (360 x 720) = 0.71
- 它在720px的视口高度中垂直移动90个像素,所以它的距离分数是90 / 720 = 0.125
因此,CLS为0.71 x 0.125 = 0.089
CLS分数低于0.1被认为是好的,高于0.25被认为是差的。在这种情况下,CLS刚好在可接受的范围内,因为尽管有很大的区域受到影响,但它移动了相对较小的距离。不过,更大的广告需要进一步关注。
在任何用户交互后,CLS算法不会在500毫秒内记录布局移位,这可能会触发UI更改或视口调整大小。因此,您的页面不会因为操作所需的界面更新、过渡和动画而受到惩罚,例如从汉堡图标打开全屏菜单。
的呈现面板在Chrome DevTools(菜单>更多的工具>渲染)提供了一个布局移位区域选择。选中复选框并刷新页面-布局偏移以蓝色突出显示。中也可以修改网络速度网络面板减缓加载。
FID/TBT的改进可能通过以下方式实现:
- 通过添加维度来为图像、视频和iframe元素保留空间
宽度
而且高度
属性,CSS纵横比
财产,或旧的填充技巧适当的 - 避免FOUT (Flash of unstyles Text)和FOIT (Flash of Invisible Text)加载网页字体。预加载或使用相似大小的备用字体会有所帮助
- 在初始页面加载时,不要在现有内容之上插入DOM元素,例如,通讯注册和类似的通知框
- 使用CSS
变换
而且不透明度
对于成本较低的动画。
性能优先
核心Web vital将随着时间的推移而发展,但评估LCP、FID和CLS指标可以帮助确定最关键的问题。首先解决快速简单的问题——它们通常有最大的投资回报:
- 激活服务器压缩和HTTP/2或HTTP/3
- 通过设置HTTP过期头,确保使用浏览器缓存
- 预加载早期的资产
- 连接和缩小CSS和JavaScript
- 移除未使用的资产
- 考虑使用CDN或更好的主机
- 使用适当的图像大小和格式
- 优化图像和视频文件大小(专业CDN可以提供帮助)
Site必威西盟体育网页登录Point的书快速开始Web性能提供数十个技巧,以提高网站速度,降低成本,并保持用户满意。