如何改善与 Next Paint (INP) 的交互

但谷歌也会关注访问者到达后你的网站体验有多好。

在过去的几年里,谷歌已经彻底改变了哪些页面体验信号被收集并用作排名因素。

在引入核心网络指标后,谷歌逐渐调整了它们的衡量方式,以便更好地反映真实的用户体验。

然而,随着 Interaction to Next Paint (INP) 指标的引入,Google 现在宣布了自最初推出以来最大的 Core Web Vitals 更新。

在INP成为排名信号之前,你需要做什么?

本指南介绍了 Google 的新指标以及如何对其进行优化。

在本指南中

    • 什么是 Core Web Vitals,有什么变化?
    • 什么是与下一个绘画的交互?
      • 为什么 Google 将 First Input Delay 更改为 Interaction to Next Paint?
    • 我与下一幅画的互动应该是什么?
    • 是什么原因导致与下一个油漆 (INP) 分数的交互速度缓慢?
      • 输入延迟
      • 处理时间
      • 演示延迟
    • 如何优化与下一幅画的交互
      • 1. 使用 INP 调试器发现导致 INP 延迟的原因
      • 2. 跟进 Chrome DevTools 以发现复杂的 INP 问题
      • 3. 深入了解与 Lighthouse 用户流的更简洁的交互延迟
      • 4. 修复与下一个绘制的交互问题
    • 简单的方法:真实用户监控 (RUM)
    • 轻松、一致地监控与下涂装的交互

什么是 Core Web Vitals,有什么变化?

Core Web Vitals (CWV) 是一组三个用户体验指标,于 2021 年 6 月成为排名信号。

三个CWV指标是:

  1. 最大内容绘制:主页内容显示的速度有多快?
  2. 累积布局偏移:加载后页面布局是否稳定?
  3. 首次输入延迟:页面对用户输入的响应速度有多快?

但是,在 2024 年 3 月,Interaction to Next Paint (INP) 将取代 First Input Delay。

什么是与下一个绘画的交互?

Interaction to Next Paint (INP) 指标告诉您在使用您的网站时,哪些交互会延迟访问者的体验。

INP 衡量用户交互(如点击或触摸输入)与直观更新网站的“下一个绘制”之间经过的时间。

例如,如果用户单击某个按钮,然后页面在更新前挂起半秒钟,则 INP 值将为 500 毫秒。

浏览器花费时间运行网站代码并呈现更新的页面。

为什么 Google 将 First Input Delay 更改为 Interaction to Next Paint?

旧的“首次输入延迟”指标通常无法识别出不良的用户体验。

与下一幅画的交互 (INP) 通过两种方式改进了首次输入延迟:

  • INP 考虑用户交互和页面上的下一次视觉更新之间的整个时间。首次输入延迟仅考虑总延迟的一小部分。
  • INP 会考虑所有页面交互,并且通常会报告延迟最大的页面交互。首次输入延迟仅查看第一次交互。

我与下一幅画的互动应该是什么?

为了提供良好的体验并满足 Google 的核心 Web 指标标准,您的 INP 需要低于 200 毫秒。

大多数网站发现达到首次输入延迟阈值相当容易,93% 的移动网站提供了良好的体验。

相比之下,目前只有 64% 的网站在“与下一个绘制的交互”指标上表现良好。

您可以使用 PageSpeed Insights 或 DebugBear 等免费工具来查看您的网站效果如何。DebugBear 的“Web Vitals”选项卡还显示您的 INP 分数如何随时间变化的历史记录。

是什么原因导致与下一个油漆 (INP) 分数的交互速度缓慢?

页面上正在进行的 CPU 处理会阻止浏览器显示更新的页面内容,这是导致 INP 分数缓慢的原因。

因此,让我们分解一下您应该在哪里寻找潜在的 INP 问题。

总体 INP 值由三个不同的组成部分组成,这些组成部分加起来就是总分:

  • 输入延迟
  • 处理时间
  • 演示延迟

输入延迟

输入延迟是用户单击按钮与用户从该按钮获得响应之间的延迟。

在此示例中,您可以使用 JavaScript 在用户单击“显示更多”按钮后立即动态显示新页面内容。

但是,只有当浏览器尚未忙于在您的网站上运行其他代码时,才能加载新页面内容。

如果浏览器仍在您的网站上运行其他代码,则必须等待此代码完成运行,然后才能响应用户的点击。

用户交互和运行事件处理程序代码之间的这种延迟称为输入延迟。

“总阻塞时间”指标可以指示网站上正在运行的其他代码,并可能延迟事件处理程序代码。

处理时间

处理时间是运行代码以响应用户交互所花费的时间。这通常占整体交互延迟的最大部分。

如果代码只是对页面进行一些小的更改(例如使隐藏的内容可见),则此处理可以在几毫秒内完成。

但是,如果必须重新呈现显示大量数据的复杂应用程序,则可能需要数百毫秒或更长时间。

演示延迟

呈现延迟是浏览器计算新内容应显示的位置和方式所花费的时间。这可以包括从颜色到位置再到字体的任何内容。

如果你有一个简单的网站,应该不会有太大的延迟。

但是,如果您的网站由数千个具有复杂样式的单个元素组成,那么这些计算可能会导致您网站上的交互延迟。

如何优化与下一幅画的交互

如果您不确定您网站上的哪些页面需要优化,一个好的起点是 Google Search Console 中的 Core Web Vitals 报告。在这里,您可以看到速度较慢的特定 URL。

一旦您知道要优化哪些页面,有几种方法可以识别您网站上的缓慢交互:

  • 使用 INP 调试器
  • 在 Chrome DevTools 中手动测试
  • 在 Lighthouse 中创建用户流
  • 使用真实用户监控 (RUM)

我们将看看这四种方法以及它们的优缺点。

1. 使用 INP 调试器发现导致 INP 延迟的原因

DebugBear 的 INP 调试器是一款免费工具,可自动识别网站上的缓慢交互。

  1. 输入您的网站 URL。
  2. 调试器将尝试查找可能导致交互延迟的按钮、输入字段和其他页面元素。
  3. 如果发生缓慢的交互,则相关 UI 元素及其“与下一个绘制的交互”值将显示在测试结果中。

    INP 调试器使运行测试和识别慢速元素变得容易。

但是,它不适用于复杂的流程。

例如,如果用户首先将元素添加到其购物车,但在结账流程中遇到性能不佳的情况,则不会检测到此元素。

2. 跟进 Chrome DevTools 以发现复杂的 INP 问题

Google Chrome 中的开发者工具提供了大量有关您网页上发生的情况的信息。

DevTools的“性能”选项卡允许你创建交互的记录,然后对其进行分析。

  1. 打开“DevTools 性能”选项卡。
  2. 单击“开始录制”按钮。
  3. 单击页面上的 UI 元素。
  4. 停止录制。
  5. 打开性能配置文件的“交互”通道。
  6. 查看“Main”通道以查看已执行的 CPU 工作,包括导致延迟的特定任务。

主线程上正在进行的任何工作都会阻碍下一次涂装。

DevTools 数据非常详细,可为你提供优化该交互所需的所有信息。

它既适用于简单页面,也适用于需要登录的复杂用户流或页面。

接下来,您需要手动收集数据,并使用反复试验来确定要与之交互的 UI 元素。

3. 深入了解与 Lighthouse 用户流的更简洁的交互延迟

现在您已经手动识别了页面元素,是时候利用 Google 的 Lighthouse 工具了,该工具还支持测试用户流和测量 INP。

Lighthouse 提供比“DevTools 性能”选项卡更简洁的交互延迟分析。

您可以从 Chrome DevTools 运行 Lighthouse,手动与页面元素进行交互,或者编写代码来自动执行交互,以便日后轻松重新测试您的网站。

4. 修复与下一个绘制的交互问题

确定导致延迟的交互后,可以在 DevTools 中复制它,并收集性能配置文件,其中包含有关需要修复的确切内容的详细信息。

您需要与开发团队或网站平台提供商合作来解决这些问题。

常见的 INP 问题包括第三方代码可能会阻塞 CPU,或者可能需要优化自定义滑块或菜单的性能。

如何解决 INP 问题在很大程度上取决于问题的性质。

简单的方法:真实用户监控 (RUM)

通过真实用户监控,您可以收集详细数据,并准确查看哪些特定页面交互导致了交互延迟。

实时。

要轻松降低 INP 分数:

  1. 使用 RUM 自动发现慢速页面元素。
  2. 快速查看最常导致交互速度缓慢的页面元素。
  3. 进行更改。

DebugBear RUM 产品的屏幕截图显示了不同用户如何与不同的页面元素进行交互,以及他们如何因此体验到不同的输入延迟量。

真实用户监控工具还提供有关慢用户体验的特定实例的详细信息。

这可以帮助您了解发生延迟的上下文,并更轻松地复制和修复问题。

例如,某些 UI 元素可能仅在特定屏幕尺寸上可见,或者某些交互可能仅在某些浏览器中速度较慢。

真实用户监控提供有关您网站上缓慢交互的详细数据。

它也最接近谷歌数据,因为谷歌也从真实用户那里收集其指标。可以跟踪复杂的用户旅程和登录体验。

但是,真实用户监控工具通常需要付费工具,您需要在网站上安装代码段。

您可以免费试用 DebugBear 14 天。

轻松、一致地监控与下涂装的交互

通过注册 DebugBear 的 14 天免费试用版,开始收集有关 INP 和其他 Core Web Vitals 的真实用户数据。

通过此免费试用版,您可以:

  • 立即查看优化效果,而不必等待 Google 28 天。
  • 跟踪整个网站的性能。
  • 识别用户交互速度较慢的高流量页面。
  • 了解不同地区、不同设备以及您网站上不同类型网页的效果差异。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/241208.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Unity中获取时间戳、日期、时间、毫秒、秒以相互转换、自定义格式时间

Unity中获取时间戳、日期、时间、毫秒、秒以相互转换、自定义格式时间 介绍时间戳是什么什么时候用时间戳 获取时间获取当前时间获取时间戳日期转时间戳时间戳转日期将时间戳转换为多久之前星期自定义格式时间 总结 介绍 这里附带一个时间戳和时间转换的网址 时间戳是什么 时…

【Spring实战】01 配置单数据源

文章目录 1. 定义2. 准备3. 打印连接信息4. 实战1)创建表2)添加数据3)查询数据3)执行 5. 详细代码总结 在我们常见的应用程序中,与数据库的交互是不可避免的一部分。Spring 提供了简单而强大的数据访问抽象&#xff0c…

九州金榜|家庭教育幼小衔接家长如何做?

孩子从幼儿园升入小学,很多家长会非常忧虑,进入小学便是孩子学校生涯正式开始,这个阶段作为家长会非常焦虑,会考虑孩子能不能适应小学生活?学习跟不跟得上,一般这个时候,大部分家长就会考虑给孩…

数值分析期末复习

第一章 科学计算 误差 解题步骤 先求绝对误差: ∣ x − x ∗ ∣ |x - x^*| ∣x−x∗∣求相对误差限: ∣ x − x ∗ ∣ x ∗ \frac{|x\,\,-\,\,x^*|}{x^*} x∗∣x−x∗∣​求有效数字 ∣ x − x ∗ ∣ 需要小于它自身的半个单位 |x-x^*|\text{需要小于它自身的半个单位} ∣…

Python入门学习篇(六)——for循环while循环

1 for循环 1.1 常规for循环 1.1.1 语法结构 for 变量名 in 可迭代对象:# 遍历对象时执行的代码 else:# 当for循环全部正常运行完(没有报错和执行break)后执行的代码1.1.2 示例代码 print("----->学生检查系统<------") student_lists["张三",&qu…

MLX vs MPS vs CUDA:苹果新机器学习框架的基准测试

如果你是一个Mac用户和一个深度学习爱好者&#xff0c;你可能希望在某些时候Mac可以处理一些重型模型。苹果刚刚发布了MLX&#xff0c;一个在苹果芯片上高效运行机器学习模型的框架。 最近在PyTorch 1.12中引入MPS后端已经是一个大胆的步骤&#xff0c;但随着MLX的宣布&#x…

在Excel中,如何简单快速地删除重复项,这里提供详细步骤

当你在Microsoft Excel中使用电子表格时&#xff0c;意外地复制了行&#xff0c;或者如果你正在制作其他几个电子表格的合成电子表格&#xff0c;你将遇到需要删除的重复行。这可能是一项非常无脑、重复、耗时的任务&#xff0c;但有几个技巧可以让它变得更简单。 删除重复项 …

Android Canvas画布saveLayer与对应restoreToCount,Kotlin

Android Canvas画布saveLayer与对应restoreToCount&#xff0c;Kotlin private fun mydraw() {val originBmp BitmapFactory.decodeResource(resources, R.mipmap.pic).copy(Bitmap.Config.ARGB_8888, true)val newBmp Bitmap.createBitmap(originBmp.width, originBmp.heigh…

【Win10安装Qt6.3】安装教程_保姆级

前言 Windows系统安装Qt4及Qt5.12之前版本和安装Qt.12之后及Qt6方法是不同的 &#xff1b;因为之前的版本提供的有安装包&#xff0c;直接一路点击Next就Ok了。但Qt5.12版本之后&#xff0c;Qt公司就不再提供安装包了&#xff0c;不论是社区版&#xff0c;专业版等&#xff0c…

并发控制工具类CountDownLatch、CyclicBarrier、Semaphore

并发控制工具类CountDownLatch、CyclicBarrier、Semaphore 1.CountDownLatch 可以使一个或多个线程等待其他线程各自执行完毕后再执行。 CountDownLatch 是多线程控制的一种工具&#xff0c;它被称为 门阀、 计数器或者闭锁。这个工具经常用来用来协调多个线程之间的同步&…

项目从vue2 升级vue3,项目大迁移 ,UI组件库更换

目录 背景描述 开发准备 第一步&#xff1a;升级环境 第二步&#xff1a;划分功能迁移顺序 第三步&#xff1a;详细了解需要迁移的业务页面 第四步&#xff1a;项目的一些配置的准备 详细开发流程 总结/分析&#xff1a; 背景描述 之前的版本&#xff1a;vue 2.6.8 i…

【PHY6222】绑定详解

1.函数详解 bStatus_t GAPBondMgr_SetParameter( uint16 param, uint8 len, void* pValue ) 设置绑定参数。 bStatus_t GAPBondMgr_GetParameter( uint16 param, void* pValue ) 获取绑定参数。 param&#xff1a; GAPBOND_PAIRING_MODE&#xff0c;配对模式&#xff0c;…

【postgres】8、Range 类型

文章目录 8.17 Range 类型8.17.1 内置类型8.17.2 示例8.17.3 开闭区间8.17.4 无穷区间 https://www.postgresql.org/docs/current/rangetypes.html 8.17 Range 类型 Range 类型&#xff0c;可以描述一个数据区间&#xff0c;有明确的子类型&#xff0c;而且子类型应该能被排序…

计算机网络——数据链路层(三)

前言: 前面我们已经对计算机网络的物理层有了一个大概的了解&#xff0c;今天我们学习的是物理层服务的上一层数据链路层&#xff0c;位于物理层和网络层之间。数据链路层在物理层提供的服务的基础上向网络层提供服务&#xff0c;其最基本的服务是将源自物理层来的数据可靠地传…

Mac使用Vmware Fusion虚拟机配置静态ip地址

一、设置虚拟机的网络为NAT 二、修改虚拟机的网络适配器网络 1、查看虚拟机的网卡 cd /etc/sysconfig/network-scripts#有些系统显示的是ens33&#xff0c;ens160等等 #不同的系统和版本&#xff0c;都会有所不同 #Centos8中默认是ens160,在RedHat/Centos7则为ens33 2、查看网…

Java语法---使用sort进行排序

目录 一、升序 二、降序 &#xff08;1&#xff09;类实现接口 &#xff08;2&#xff09;匿名内部类 三、自定义排序规则 四、集合中的sort排序 &#xff08;1&#xff09;升序 &#xff08;2&#xff09;降序 &#xff08;3&#xff09;自定义排序 一、升序 升序排…

C++内存管理和模板初阶

C/C内存分布 请看代码&#xff1a; int globalVar 1; static int staticGlobalVar 1; void Test() {static int staticVar 1;int localVar 1;int num1[10] { 1, 2, 3, 4 };char char2[] "abcd";const char* pChar3 "abcd";int* ptr1 (int*)mallo…

OpenHarmony之内核层解析~

OpenHarmony简介 技术架构 OpenHarmony整体遵从分层设计&#xff0c;从下向上依次为&#xff1a;内核层、系统服务层、框架层和应用层。系统功能按照“系统 > 子系统 > 组件”逐级展开&#xff0c;在多设备部署场景下&#xff0c;支持根据实际需求裁剪某些非必要的组件…

一周工作问题总结(2023.12.18-2023.12.22)

一周工作问题总结 1. 接口调用频率2. 汉字在数据库中占用字节问题3. Map在循环中修改自己的key与value4. Group BY5.递归同步数据6.代码移动Idea飘红 1. 接口调用频率 供应商给的接口可以每秒调用5-10次&#xff0c;那么我为了保险每秒调用5次&#xff0c;为了防止过度调用接口…

BUG记录——drawio出现“非绘图文件 (error on line 7355 at column 83: AttValue: ‘ expected)”

BUG现象 drawio出现“非绘图文件 (error on line 7355 at column 83: AttValue: ’ expected)”&#xff0c;如下图&#xff1a; 解决办法 这只是我自己摸索到的解决办法并不一定适用于所以人&#xff0c;对我是适用的。 首先用记事本打开损坏的drawio文件&#xff0c;如下 …