为什么 CrUX 数据与我的 RUM 数据不同?

了解 RUM 数据为什么会显示与 CrUX 数据不同的核心网页指标。

Chrome 用户体验报告 (CrUX) 提供用户体验指标,可让您了解真实的 Chrome 用户在网络上对热门目标页面的体验。这些数据是由 Chrome 自动从选择启用这项功能的用户那里收集的,系统会根据 CrUX 资格条件提供这些数据。

因此,数以百万计的网站都可以使用 CrUX 数据。许多网站所有者之前没有访问实测数据,而 CrUX 让许多网站首次接触到数据的价值。作为公共数据集,CrUX 还可用于竞争分析和用户体验指标基准化分析。

实时用户监控 (RUM) 与 CrUX 类似,但 Chrome 不会自动收集用户体验指标,而是在网站上添加代码来执行收集,并将反馈反馈给 RUM 提供商或分析解决方案以进行进一步分析。

对于这两种解决方案都衡量用户体验指标,人们很自然地认为它们应该等效。当我们发现数据差异时,可能会感到困惑。本指南将说明发生这种情况的原因,并就当数据不一致时应采取的操作建议。

使用 RUM 解决方案补充 CrUX 的优势

CrUX 是一款出色的工具,可提供跨网站一致视图,并且作为 Core Web Vitals 计划的官方数据集,网站可能会希望关注它显示的内容。CrUX 旨在为数百万个网站提供具有统计意义的概览,以便进行交叉比较。

但是,为了更深入地调查数据显示数字的原因,投资一个完整的 RUM 解决方案作为 CrUX 的补充,与可公开查询的数据集相比,您可以获取更详细的信息。这有助于您通过多种方式说明和改进指标。

进行更深入的分析以调查问题

CrUX 通常可用于指出您的网站是否存在问题,但不一定能指出问题的确切位置或原因。无论是通过 Web-Vitals 库等工具自行开发的,还是众多商业产品的部分 RUM 解决方案,都可以帮助弥合这一差距。

借助 RUM 解决方案,您可以在所有浏览器中访问更精细的数据。它还允许您以 CrUX 无法做到的方式详细分析这些数据,使您能够深入研究和调查网站的问题领域。他们是否会受到特定细分用户群的影响?还是执行特定操作的用户?问题究竟是在什么时候开始的?借助 RUM 工具可以提供的额外数据,您可以更轻松地回答这些问题。

与其他业务指标相关联

利用 RUM,您还可以将网站性能指标与任何业务指标直接进行比较,从而了解投资效果方面的价值,以及哪些其他性能工作有待优先处理。我们提供大量案例研究,其中介绍了采用这种关联的企业,例如 Farfetch《经济时报》

收集其他效果数据

借助 RUM 解决方案,您可以收集与您的特定业务直接关联的其他自定义指标。其中比较知名的例子是 Twitter 的“首次发 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 是世界上最受欢迎的浏览器之一(因此在大多数情况下,它可能会很广泛地反映您网站的性能),但仅衡量浏览器并不能衡量所有用户的效果。这解释了 RUM 和 CrUX 之间的一个主要区别。例如,对于依赖于 API 或仅在 Chrome 中提供的图片格式的性能技术而言,这一点尤为重要。

缺乏 iOS 数据也可能会导致偏见。例如,由于 iOS 用户通常使用性能更高的设备,或者来自网络基础设施较好的更多国家/地区的用户,因此包括此类用户可能会导致总体性能指标较高。另一方面,排除这类用户(就像 CrUX 所做的那样),可能会导致数据偏向网站访问者的低端(示例案例研究)。Android 用户通常覆盖更广泛的设备、设备功能和市场。

RUM 解决方案可以从非 Chrome 浏览器获取数据,尤其是从基于 Chromium 的浏览器获取的数据,这些浏览器通常内置相同的指标(例如核心网页指标)。非 Chromium 浏览器也会通过 RUM 解决方案进行衡量,但指标集可能较为有限。例如,Cumulative Layout Shift (CLS)Intraction to Next Paint (INP) 目前仅适用于基于 Chromium 的浏览器。首次内容渲染 (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 等工具中:

显示 LCP 评分网页加载次数直方图的 PageSpeed Insights 屏幕截图
PageSpeed Insights 会显示 CrUX 的第 75 百分位和直方图数据

指标差异

衡量网站效果的指标有很多,因此在比较两组不同的数据时,了解衡量哪些指标以及如何使用这些指标非常重要。

衡量的指标

CrUX 数据是核心网页指标计划的官方数据集,主要用于衡量这些指标(LCPCLSINP),以及对这些指标进行补充的一些其他指标

RUM 工具通常包含这些核心网页指标,但通常也包含许多其他指标。一些 RUM 提供商还会使用他们自己的所有这些指标的组合来衡量用户体验,比如提供“满意度指数”或类似指标。将 RUM 数据与 CrUX 进行比较时,请务必进行同类比较。

如果网页在所有 Core Web Vitals 指标的第 75 个百分位处达到建议的目标,则用于评估 Core Web Vitals 通过/失败状态的工具应将其视为通过/失败状态的网页。如果没有任何互动的网页不存在 INP,则只需通过 LCP 和 CLS 测试。

不同浏览器的指标差异

CrUX 仅在 Chrome 浏览器中进行衡量,您可以参阅网页指标更新日志,了解这些变化在 Chrome 各版本中的变化。

不过,RUM 解决方案能够在更多类型的浏览器中进行衡量。基于 Chromium 的浏览器(Edge、Opera 等)可能与 Chrome 类似,除非 Chrome 实施了更新日志中所述的新更改。

对于非 Chromium 浏览器,这种差异可能会更明显。例如,First Contentful Paint (FCP) 适用于 Safari 和 Firefox,但衡量方式不同。这可能会导致所报告的时间出现显著差异。如前所述,如果您想将 RUM 与 CrUX 进行比较,最好仅过滤出 Chrome 用户,以便进行同类比较。

指标计时

核心网页指标指标由网络浏览器 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 可能无法代表在网页加载完毕且用户与网页互动后,后续导致较大偏移的网页。因此,仅在网页加载后获取 CLS 值(就像很多 RUM 产品一样),所得到的结果与在用户浏览完网页后获取 CLS 值有所不同。

Interaction to Next Paint (INP) 响应速度指标需要衡量输入,并观察网页整个生命周期内所有的点击、点按和键盘互动,方式与 CLS 类似,因此如果在用户进行多次互动之后衡量 INP 的值,报告的值可能会大不相同。

CrUX 将遵循核心网页指标文档,并在网页的整个生命周期内衡量这些指标。许多 RUM 提供商出于各种原因选择改为在网页加载后或在某个其他时间(例如,点击关键号召性用语时)衡量这些指标。

如果发现两个数据源之间存在无法解释的差异,请务必从 RUM 提供商那里了解何时衡量 Core Web Vitals。

单页应用

单页应用 (SPA) 的工作方式是更新当前网页上的内容,而不是在浏览器级别执行传统的网页导航。这意味着,浏览器不会将这些代码视为网页导航,尽管用户会遇到这样的情况。浏览器提供的 Core Web Vitals API 不会将这些 API 考虑在内,因此 CrUX 不支持这些网页导航。我们正在努力解决此问题,如需了解详情,请参阅衡量软导航的实验一文。

一些 RUM 提供商确实会尝试检测 SPA 中的“软导航”,但如果他们也将核心网页指标归因于这些“软导航”,则会导致与 CrUX 出现差异,因为许多指标都不支持底层 API。

CrUX 和 Web API 的差异

除了衡量的网页浏览量和衡量指标的差异之外,还需要注意其他一些更复杂的情况,会导致 CrUX 和 RUM 数据出现差异。其中一些原因在于用于衡量指标的 Web API 存在限制,还有一些原因在于在某些情况下需要以不同的方式处理 API 返回的结果。Core Web Vitals 文档列出了 LCPCLS 方面的这些差异,但主要区别如下所述。

往返缓存

CrUX 认为往返缓存(即 bfcache)在恢复为网页导航时恢复,即使它们不会引发传统的网页加载,也是如此。由于 Web API 不会将这些网页视为网页加载,因此 RUM 解决方案如果希望与 CrUX 匹配,则需要采取额外的步骤才能统计这些网页。网页加载速度要快得多,因此可以为网站报告更好的性能,因此不包含它们可能会导致网页的总体性能指标变差。请参阅 RUM 解决方案,了解它们是否能够处理 bfcache 恢复的网页。

iframe

出于安全和隐私考虑,顶级网页无法访问 iframe(甚至连同源 iframe)中的内容。这意味着,这些内容的性能指标只能通过 iframe 本身衡量,而不能通过框架页面上的 Web API 进行衡量。如果 iframe 内容包含 LCP 元素,或会影响用户体验的 CLS 或 INP 的内容,则 RUM 解决方案(包括 Google web-Vitals JavaScript 库)将不适用。

但是,CrUX 由 Chrome 浏览器本身(而不是网页上的 JavaScript)衡量,没有这些限制,在报告 Core Web Vitals 时,在 iframe 内衡量指标也是如此。这可以更准确地反映用户体验,但也可能是导致使用 iframe 的网站出现差异的另一个原因。

<video> 中嵌入了一个具体示例,说明这会如何导致 CrUX 和 RUM 中的 LCP 数据之间出现差异。自动播放的 <video> 元素的第一个绘制帧可以算作 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(仅关注 Chrome 用户,针对桌面设备或移动设备,在 28 天内的第 75 个百分位值)以减少这些差异?

如果是,并且您可以使数据更加匹配,那么您仍然应该问,为什么总体数据中有这些差异以及这些差异意味着什么。非 Chrome 用户是否对您的指标产生了积极影响?这是否有助于您更好地了解哪些性能问题需要优先处理?

如果您的非 Chrome 用户获得了不同的结果,您可以利用 RUM 提供的这一宝贵数据洞见,采取不同的方式进行优化。例如,某些 API 在某些浏览器上无法使用,但您可以考虑使用替代浏览器来替代不受支持的浏览器,以便改善这些浏览器的使用体验。或者,您也可以为使用受限设备或网络的用户提供不同但性能更高的体验。CrUX 仅限于 Chrome 数据,但您应考虑所有网站访问者的体验,以便确定改进措施的优先级。RUM 数据可以填补这一缺口。

了解了出现差异的原因后,这两种工具都非常实用,不仅有助于您了解网站的用户体验,而且有助于改进网站体验(即使数据不完全相同)。使用 RUM 数据对 CrUX 数据进行补充,并通过细分流量来帮助您确定 CrUX 是您的网站上需要注意的特定领域,从而让您大致了解 CrUX 传达的信息。

通过查看趋势了解改进措施会产生预期的积极影响,这通常比让两个数据源上的每个数据都完全一致更重要。如上所述,RUM 允许您查看不同的时间范围,以提前了解 28 天的 CrUX 得分。不过,查看时间过短可能会导致数据杂乱,因此 CrUX 使用 28 天。

通常,这些不同的指标并无“正确”或“错误”的答案 - 它们从不同的角度来审视您的用户以及他们对您网站的体验。只要您了解出现这些差异的原因,以及它们能如何推动您做出决策,那么为网站访问者提供更好的服务就更加重要。

致谢

缩略图:Steven Lelham on Unsplash 网站