为什么 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 通常可用于指出您的网站是否存在问题,但不一定是问题的具体位置以及原因。RUM 解决方案(无论是通过 Web Vitals 库等工具自行开发的,还是一些商业产品)都有助于弥合这一差距。

通过使用 RUM 解决方案,您可以访问自己所有网页和所有浏览器上的更精细的数据。它还可让您以 CrUX 无法采用的方式细分和分析这些数据,从而深入了解和调查网站的问题领域。他们是否会受特定细分用户群的影响?还是执行特定操作的用户?问题从什么时候开始?凭借 RUM 工具能够提供的其他数据,这些问题更容易解答。

与其他业务指标相关联

通过 RUM,您可以直接将网站性能指标与任何业务指标进行比较,从而了解对性能的投资的价值,以及要优先考虑哪些其他性能指标。我们开展了大量案例研究,例如 FarfetchThe Economic Times 等企业的此类关联。

收集其他效果数据

通过 RUM 解决方案,您可以收集其他与您的特定业务直接关联的自定义指标。其中比较知名的例子是 Twitter 的“Time to first Tweet”(发布第一条 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 浏览器的数据。RUM 解决方案也会衡量非基于 Chromium 的浏览器,但衡量的指标可能较为有限。例如,Cumulative Layout Shift (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 等工具中:

<ph type="x-smartling-placeholder">
</ph> 显示 LCP 评分页面加载直方图的 PageSpeed Insights 屏幕截图
PageSpeed Insights 显示 CrUX 第 75 个百分位和直方图数据

指标差异

衡量网站性能时使用的指标有很多,因此,在比较两组不同的数据时,了解所衡量的指标以及这些指标的使用方式非常重要。

衡量的指标

CrUX 数据是核心网页指标计划的官方数据集,主要用于衡量这些指标(LCPCLSINP),并添加了一些额外的指标作为补充。

RUM 工具通常包含这些核心网页指标,但通常也包含许多其他指标。一些 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 问题会话。

Cumulative Layout Shift (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 提供商会尝试检测“软导航”但如果它们也将 Core Web Vitals 指标归因于那些“软导航”这会导致与 CrUX 存在差异,因为对于许多指标,底层 API 都不支持此操作。

CrUX 和 Web API 差异

除了衡量的网页浏览量和衡量的内容存在差异之外,还需要注意其他一些更复杂的情况,这可能会导致 CrUX 和 RUM 数据出现差异。其中一些是由于用于测量指标的 Web API 的局限性的,另一些则是在某些情况下需要以不同方式处理 API 返回的结果。Core Web Vitals 文档列出了 LCPCLS 的这些差异,但以下各部分也介绍了主要差异。

往返缓存

即使往返缓存(或 bfcache)恢复不会导致常规的网页加载,CrUX 也会将其视为网页导航。由于 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> 元素的第一个绘制帧可视为 LCP 候选元素,但热门视频在线播放服务的嵌入可能会将这些元素放在 <iframe> 中。CrUX 可以考虑到这一点,因为它可以访问 <iframe> 内容,但 RUM 解决方案无法访问。

跨源资源

由于浏览器安全限制以减少计时攻击,除非提供了 Timing-Allow-Origin 标头 (TAO),否则在其他网域传送的 LCP 媒体不会在 PerformanceObserver API 中提供呈现时间。这个时间会回退到资源的加载时间,但可能与实际绘制内容的时间截然不同。

这可能会导致网络 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 传达的信息。

观察趋势以了解改进的效果,往往比让两个数据来源中的各个数据完全一致,往往更注重取得预期的积极影响。如前所述,RUM 可让您查看不同的时间范围,以提前了解 28 天的 CrUX 得分。不过,查看过短的时间范围可能会导致数据杂乱,因此 CrUX 使用 28 天的原因。

通常,并没有“合适的”或“错误”答案 - 它们只是了解用户以及网站使用体验的不同。只要您了解出现这些差异的原因以及这些差异对您的决策的推动作用,就更有必要为网站访问者提供更优质的服务。

致谢

Steven Lelham 拍摄的 Unsplash 网站缩略图