了解 RUM 数据与 CrUX 显示的核心 Web 指标数据不同的原因。
Chrome 用户体验报告 (CrUX) 提供了各项用户体验指标,可反映真实的 Chrome 用户在网络上的热门目的地体验。Chrome 会自动从已选择启用此功能的用户收集此类数据,并根据 CrUX 资格条件提供这些数据。
因此,数百万个网站都可以使用 CrUX 数据。许多网站所有者之前都无法访问字段数据,而 CrUX 让许多网站首次认识到字段数据的价值。作为一个公共数据集,CrUX 还可用于对用户体验指标进行竞争分析和基准测试。
实时用户监控 (RUM) 与 CrUX 类似,但不同之处在于,不是 Chrome 自动收集用户体验指标,而是在网站上添加代码来执行此收集操作,并将其反馈给 RUM 提供商或分析解决方案以供进一步分析。
由于这两种解决方案都衡量用户体验指标,因此很自然地会假定它们应该是等效的。如果出现差异,可能会令人困惑。本指南将说明发生这种情况的原因,并就数据不一致时应采取的措施提供建议。
将 RUM 解决方案与 CrUX 搭配使用的好处
CrUX 是一款强大的工具,可用于在不同网站之间保持一致的视图,并且作为 Core Web Vitals 计划的官方数据集,网站可能需要密切关注它显示的内容。CrUX 旨在提供数百万个网站的统计相关概览,以便进行交叉比较。
然而,为了更深入地调查数据显示数据的原因,投资于一个完整的 RUM 解决方案来补充 CrUX,可让您获得比可公开查询的数据集更详细的信息。这有助于您通过多种方式解释和改进指标。
更深入的分析,以调查问题
CrUX 通常用于指出您的网站是否存在问题,但不一定能指出问题的确切位置或原因。RUM 解决方案(无论是通过 Web Vitals 库等工具自行开发的,还是一些商业产品)都有助于弥合这一差距。
通过使用 RUM 解决方案,您可以访问自己所有网页和所有浏览器上更精细的数据。此外,您还可以通过 CrUX 无法实现的方式对此类数据进行细分和分析,从而深入了解网站存在的问题区域。这些问题是否会影响特定细分用户群?或者已执行特定操作的用户?问题从什么时候开始?凭借 RUM 工具能够提供的额外数据,这些问题更容易解答。
与其他业务指标相关联
此外,借助 RUM,您还可以直接将 Web 性能指标与任何业务指标进行比较,从而了解投资于性能的价值,以及要优先考虑的其他性能工作。我们开展了大量案例研究,例如 Farfetch 或 The Economic Times 等企业进行了此类关联。
收集其他性能数据
借助 RUM 解决方案,您可以收集与您的特定业务直接相关的其他自定义指标。其中一个比较知名的示例是 Twitter 的“首次发推时间”指标。然后,这些特定于网站的措施可以与 Core Web Vitals 改进和业务指标相关联。
两组字段数据之间的差异
戴表的男人知道现在几点。戴两块表的男人永远不确定。
塞加尔法律
每当您有两个数据源时,都会对它们之间存在差异的原因感到困惑和沮丧。就像了解实验室指标和字段指标之间的区别一样,两个实测数据来源之间也存在差异。理想情况下,这两项数据应该是相同的,但实际上可能会因多种原因而有所差异。
实验室数据与实测数据
首先要检查的是,您查看的是实验室(合成)指标还是现场 (RUM) 指标。虽然人们自然会认为 RUM 产品只会查看现场数据,但许多产品还提供实验室组件。
正是由于实验室数据是在固定条件下测量的,因此非常有用。它可用于监控生产环境中的意外变化或回归,而不会受到字段填充变化的干扰。不过,实验室数据可能无法代表真实用户体验,因此现场指标可能会显示截然不同的结果。
人口
由于衡量的网页访问量因所比较的浏览器、用户、网站和设备而异,因此 CrUX 和 RUM 解决方案使用的数据集可能会有所不同。
包含的浏览器
顾名思义,Chrome 用户体验报告仅适用于 Chrome。虽然许多基于 Chromium 的浏览器(例如 Edge、Opera 和 Brave)也支持与 Chrome 相同的指标,因为它们共享核心代码库,但只有 Chrome 用户会向 CrUX 提交数据。这也意味着,由于 iOS 版 Chrome 使用的是底层 Webkit 浏览器引擎,因此不受此限制。Android WebView 也不会被计为“Chrome”,因此这些用户的数据不包括在内(但 Chrome 自定义标签页包括在内)。
虽然 Chrome 是全球最受欢迎的浏览器之一,因此在大多数情况下,衡量 Chrome 浏览器的表现可能就能大致反映您的网站的表现,但仅衡量 Chrome 浏览器的表现绝不能代表衡量所有用户的表现。这可能是 RUM 和 CrUX 之间的一个主要区别。例如,对于依赖于仅在 Chrome 中可用的 API 或图片格式的效果提升技术,这一点尤为重要。
缺少 iOS 数据也可能会导致偏差。例如,由于 iOS 用户通常使用性能更出色的设备,或者来自网络基础架构更完善的国家/地区,因此纳入这类用户可能会提高整体效果指标。另一方面,如果排除这些数据(如 CrUX 所做的),则可能会导致数据偏向于网站访问者中的低端用户(示例案例研究)。Android 用户通常涵盖更广泛的设备、设备功能和市场。
RUM 解决方案可以获取非 Chrome 浏览器的数据,尤其是从通常内置相同指标(例如核心网页指标)的 Chromium 浏览器的数据。RUM 解决方案还可衡量基于非 Chromium 的浏览器,但衡量指标可能更有限。例如,累积布局偏移 (CLS) 和 Interaction to Next Paint (INP) 仅适用于基于 Chromium 的浏览器。其他一些指标(例如 First Contentful Paint (FCP))的衡量方式截然不同(请参阅下文)。
选择参与测试的用户
除了仅限 Chrome 用户外,CrUX 还进一步限制了范围,仅衡量在安装浏览器时选择分享 CrUX 数据的部分 Chrome 用户。
RUM 提供商也只会关注一部分用户,这通常是由于 Cookie 横幅提示(要求用户选择启用 RUM 数据收集)或跟踪拦截器所致。如果直到第二个网页或后续网页才显示确认消息,而此时部分网站资源已从之前的网页缓存,则可能会对某些初始网页加载产生不利影响。如果这种情况经常发生,那么在 RUM 中,如果排除了足够数量的初始网页加载速度较慢的情况,指标可能看起来比实际情况要好。
包含的网站
CrUX 仅适用于公开网站,因此还有其他资格条件可能会导致数据未在 CrUX 中记录。其中最值得注意的是,网站必须可供公开发现且足够受欢迎,以确保抽样规模足够小,从而得出有意义的结论。在大多数情况下,这会导致 CrUX 中没有可用数据。这与提供的数据相比不太令人困惑,但又有所不同,但解释了为什么会发生这种情况。
不过,如果某个网站的特定网页被标记为可编入索引,而其他网页未被标记,那么您在 CrUX 中可能只会看到部分网址。如果来源可公开发现,则来源级数据中将包含该来源内的所有网页浏览数据,但可能无法提供网址级数据。
设备
CrUX 会按移动设备、桌面设备和平板电脑对数据进行细分,但许多工具侧重于前两者,可能不会显示平板电脑数据,或者会将其包含在移动设备或桌面设备数据中。从提供的内容和观看它们的设备功能来看,移动设备和桌面设备上的性能特征可能有很大差异。
RUM 数据也支持以类似的方式细分流量,但默认情况下通常会显示汇总数据。RUM 可能仅允许按设备类型(如移动设备)或浏览器(如 Chrome)进行细分,但不能同时按这两种条件来仅查看移动版 Chrome 流量。与 CrUX 数据进行比较时,请务必按设备类型和 Chrome 浏览器进行过滤,以确保进行的是同类比较。
采样
RUM 解决方案通常允许调整选择参与数据收集的访问者的采样率。这可以减少需要分析的数据量,并降低商业 RUM 服务的费用。如果样本规模过小,不能代表更广泛的人群,则最终指标也会出现类似的偏差。与您的 RUM 提供商讨论适合您网站的抽样大小。
数据汇总
实测数据就其本质而言将包含许多相同指标的数据点,而实验室数据则只有一个值。如果这些数据的汇总方式不同,则可能会导致 CrUX 和 RUM 之间存在差异。
时间范围
CrUX 数据基于 28 天的滑动式流量时间范围,无法更改此时间范围。不过,CrUX BigQuery 数据会按月存储,以便您查看之前的月份,CrUX History API 还会提供一周内的历史数据。这两种报告仍会根据 28 天的滑动窗口提供数据。
RUM 数据通常可以提供更精细的数据,让您能够更快地了解更改的影响。不过,如果选择较短的时间段,RUM 数据可能会受到网站流量和访问者的波动的过度影响。将 RUM 数据与 CrUX 数据进行比较时,请务必查看 28 天内的效果。确定数据相似后,您可以查看其他时间范围,以深入了解 RUM 数据。
统计信息汇总
CrUX 指标是按第 75 个百分位测量的,即查看 75% 的网页浏览量所达到的值。现场数据中会出现极端值,因此移除最差的 25% 体验,旨在提供大多数访问者合理预计能达到的值。
RUM 产品通常提供更多汇总指标的方法选项,包括第 75 个百分位数、中位数和其他百分位数。如果要将 RUM 值与 CrUX 数据进行比较,请务必查看第 75 个百分位数据,以便进行同类比较。
CrUX 中的直方图数据包含所有可用数据(而不仅仅是第 75 个百分位),并显示每个评分中的网页浏览量,但总得分将基于第 75 个百分位。这些 CrUX 数据会显示在 PageSpeed Insights 等工具中:
指标差异
衡量网站性能的指标有很多,因此在比较两组不同的数据时,请务必了解所衡量的指标以及这些指标的使用方式。
衡量的指标
CrUX 数据是核心网页指标计划的官方数据集,主要用于衡量这些指标(LCP、CLS 和 INP),并辅以一些其他指标作为补充。
RUM 工具通常包含这些 Core Web Vitals,但通常也包含许多其他指标。某些 RUM 提供商还会使用所有这些指标的组合来衡量用户体验,可能是为了提供“满意度指数”或类似指标。将 RUM 数据与 CrUX 进行比较时,请确保您比较的是几乎相同的结果。
评估核心网页指标通过或失败状态的工具应将符合所有核心网页指标第 75 百分位的建议目标值的网页视为通过。如果没有互动的网页不存在 INP,则只需满足 LCP 和 CLS 要求即可。
不同浏览器的指标差异
CrUX 仅在 Chrome 浏览器中进行衡量,您可以参阅 Web Vitals 更新日志,了解这些指标在每个 Chrome 版本中的变化情况。
不过,RUM 解决方案会从更多类型的浏览器中进行衡量。基于 Chromium 的浏览器(Edge、Opera 等)的行为可能会与 Chrome 类似,除非 Chrome 正在实施更新日志中所述的新更改。
对于非 Chromium 浏览器,差异可能会更明显。例如,First Contentful Paint (FCP) 在 Safari 和 Firefox 中均可用,但测量方式不同。这可能会导致报告的时间出现明显差异。如前所述,如果您想比较 RUM 与 CrUX,最好仅过滤出 Chrome 用户,以便进行类似比较。
指标时间
Core Web Vitals 指标由网络浏览器 API 提供,但这并不意味着使用这些 API 报告的值不会存在差异。指标测量的确切时间(在网页加载时还是在整个网页生命周期内)可能会导致差异。RUM 工具可能并不总是以相同的方式(即使使用相同的名称)和相同的浏览器 API 来获取数据,这可能会造成混淆。
Largest Contentful Paint (LCP) 是一个网页加载指标。如果在初始渲染后加载了较大的元素,Web API 可能会报告多个 LCP 元素。最后一个 LCP 元素是指网页完成加载或用户与网页互动时。因此,如果 LCP 元素的报告时间早于这两个事件,则可能会出现差异。
此外,在现场数据中,LCP 元素可能会因网页的加载方式而异。对于显示网页内容顶部的默认网页加载,LCP 元素主要取决于屏幕尺寸。不过,如果使用文档下方更深处的锚点链接打开网页,或者使用指向单页应用 (SPA) 的深层链接以类似方式打开网页(稍后会详细介绍),则 LCP 元素可能会有所不同。
请勿假定 CrUX 或 RUM 中提供的 LCP 时间基于实验室工具中的同一元素。虽然 CrUX 会为您提供每个网页或来源的总体 LCP 值,但 RUM 可以进一步细分此值,以识别各个 LCP 问题会话。
累积布局偏移 (CLS) 是衡量网页生命周期内的布局偏移,因此,网页在加载后以及用户与其互动后出现更大偏移的情况,可能无法从初始网页加载 CLS 得分中看出。因此,仅在网页加载后(许多 RUM 产品采用这种做法)获取 CLS 值,与在用户完成网页浏览后获取 CLS 值,会得出不同的结果。
Interaction to Next Paint (INP) 响应能力指标需要衡量输入内容,并观察网页生命周期内的所有点击、点按和键盘互动,采用与 CLS 类似的方式,因此,如果用户在页面上进行多次互动后衡量,所报告的 INP 值可能会截然不同。
CrUX 将遵循“核心网页指标”文档,并在网页的整个生命周期内衡量这些指标。出于各种原因,许多 RUM 提供商选择在网页加载后或在某个其他时间(例如用户点击关键号召性用语时)衡量这些指标。
如果发现两个数据源之间存在无法解释的差异,请务必从 RUM 提供商那里了解何时衡量 Core Web Vitals。
单页应用
单页应用 (SPA) 的工作原理是更新当前网页上的内容,而不是在浏览器级别执行实际的网页导航。这意味着,尽管用户会将这些操作视为网页导航,但浏览器不会将其视为网页导航。浏览器提供的 Core Web Vitals API 不会将这些考虑在内,因此 CrUX 不支持这些网页导航。此问题仍在努力解决,有关详情,请参阅尝试测量软导航一文。
有些 RUM 提供商确实会尝试在 SPA 中检测“软导航”,但如果它们还将核心网页指标归因于这些“软导航”,则会导致与 CrUX 存在差异,因为底层 API 不支持对许多指标执行此操作。
CrUX 和 Web API 差异
除了衡量哪些网页浏览和衡量什么方面的差异之外,还有一些更复杂的场景需要注意,这些场景可能会导致 CrUX 和 RUM 数据存在差异。其中一些是由于用于测量指标的 Web API 的局限性的,另一些则是在某些情况下需要以不同方式处理 API 返回的结果。“核心 Web Vitals”文档列出了 LCP 和 CLS 之间的这些差异,但以下部分也列出了主要差异。
往返缓存
CrUX 会将往返缓存 (bfcache) 恢复视为网页导航,即使它们不会导致传统的网页加载也是如此。由于 Web API 不会将这些视为网页加载,因此如果 RUM 解决方案想要与 CrUX 保持一致,则需要执行额外的步骤来统计这些网页。因为显著加快网页加载速度,可以为网站带来更出色的整体性能,因此不加入这类网页可能会导致网页的整体效果指标变差。请参阅您的 RUM 解决方案,了解它们是否处理 bfcache 恢复的网页。
iframe
出于安全和隐私方面的原因,顶级页面无法访问 iframe 中的内容(即使是同源 iframe 也是如此)。这意味着,您只能通过 iframe 本身来衡量其中内容的效果指标,而不能通过框架页面上的 Web API 来衡量。如果 iframe 内容包含 LCP 元素或会影响用户体验的 CLS 或 INP 的内容,RUM 解决方案(包括 Google Web Vitals JavaScript 库)将无法对其进行衡量。
不过,由 Chrome 浏览器本身(而非页面上的 JavaScript)衡量的 CrUX 没有这些限制,在报告 Core Web Vitals 时,也会衡量 iframe 中的指标。这更准确地反映了用户体验,但对于使用 iframe 的网站,这可能也是导致差异的另一个原因。
例如,嵌入 <video>
就是一个具体示例,说明这会如何导致 CrUX 和 RUM 中的 LCP 数据之间存在差异。自动播放 <video>
元素的第一个绘制帧的 Playinline 可视为 LCP 候选项,但热门视频在线播放服务的嵌入可能会将这些元素放置在 <iframe>
中。CrUX 可以考虑到这一点,因为它可以访问 <iframe>
内容,但 RUM 解决方案无法访问。
跨源资源
出于减少计时攻击的目的,浏览器会施加安全限制,因此从其他网域投放的 LCP 媒体不会在 PerformanceObserver API 中提供呈现时间,除非提供 Timing-Allow-Origin 标头 (TAO)。这会回退到资源的加载时间,但这可能与内容实际绘制的时间大不相同。
这可能会导致 Web API 报告的 LCP 时间早于 FCP,这似乎是不可能的。事实并非如此,但由于存在此安全限制,因此才会出现这种情况。
同样,CrUX 确实会报告 Core Web Vitals 的呈现时间数据。建议网站限制影响 Core Web Vitals 指标的跨源内容,并尽可能启用 TAO,以便更准确地衡量这些指标。其他跨源资源可能会受到类似的限制。
背景标签页
即使网页未在后台标签页中打开,它们仍会使用 Web API 发送指标。不过,CrUX 不会报告这些时间,因为它们提供的时间与用户体验不一致。RUM 解决方案也应考虑忽略这些网页浏览,或者至少说明如何处理这些网页浏览。
那么,我们能做些什么呢?
我们已经说明了 CrUX 和 RUM 数据之间可能存在差异的原因,原因可能是它们使用的方法不同,或者包含或排除了哪些用户和网页浏览。理想情况下,这两组数据仍能代表您的网站效果,因此仍然有用,但所提供的原因应说明为什么这两组数据很难获得完全相同的数据。
如果差异很小(例如,报告的 LCP 为 2.0 秒与 2.2 秒),则两个数据集都很有用,通常可以视为大致同步。
当您对数据的准确性感到质疑时,应该尝试了解这些差异。能否过滤 RUM 数据,使其与 CrUX 更接近(仅查看 28 天内 75 百分位数值的桌面版或移动版 Chrome 用户),以减少这些差异?
如果是这样,并且您可以让数据更接近,那么您仍然应该思考为什么总体数据会出现这些差异,以及这意味着什么。非 Chrome 用户对您的指标产生积极或消极的影响?这能否让您更清楚地了解应该优先解决哪些性能问题?
如果您的非 Chrome 用户获得了不同的结果,您可以利用 RUM 为您提供的这一宝贵数据洞见,以不同的方式进行优化。例如,某些 API 在某些浏览器上不可用,但您可以考虑为不受支持的浏览器使用替代方案来改善它们的体验。或者,您也可以为使用受限设备或网络的用户提供不同的、但性能更出色的体验。CrUX 仅限于 Chrome 数据,但您应考虑所有网站访问者的体验,以便确定优先改进事项。RUM 数据可以填补这一空白。
了解了出现差异的原因后,这两种工具都可以帮助您了解网站的用户体验,并帮助改进网站体验(即使数字不一样)。使用 RUM 数据来补充 CrUX 数据,并通过细分流量来深入了解 CrUX 在宏观层面提供的信息,从而确定网站或用户群的哪些方面需要关注。
与确保两个数据源中的每个数字完全匹配相比,查看趋势以了解所做的改进是否产生了预期的积极影响,往往更为重要。如前所述,RUM 可让您查看不同的时间范围,以便提前了解 28 天 CrUX 得分。不过,如果查看的时间范围过短,可能会导致数据噪声过大,因此 CrUX 使用的是 28 天。
这些不同的指标通常没有“正确”或“错误”答案,它们只是从不同的角度来观察用户以及他们对您网站的体验。只要您了解出现这些差异的原因,以及这些差异对您的决策有何影响,就足以更好地为网站访问者提供服务。
致谢
Steven Lelham 拍摄的 Unstone 中的缩略图