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

了解 RUM 数据显示的核心 Web 指标数值为何可能与 CrUX 不同。

发布时间:2022 年 8 月 15 日,上次更新时间:2025 年 12 月 17 日

Chrome 用户体验报告 (CrUX) 提供了与真实的 Chrome 用户在网络上访问热门网址时的具体情形相关的用户体验指标。这些数据由 Chrome 自动从选择启用的用户那里收集,并根据 CrUX 资格条件提供。

因此,CrUX 数据适用于数百万个网站。许多网站所有者以前无法访问现场数据,而 CrUX 让许多网站首次看到了这些数据的价值。作为公共数据集,CrUX 还可用于竞争分析和用户体验指标基准化分析。

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

由于这两种解决方案都衡量用户体验指标,因此自然会认为它们应该等效。看到差异可能会让人感到困惑。本指南将解释出现这种情况的原因,并针对数据不一致的情况提供应对建议。

使用 RUM 解决方案补充 CrUX 的好处

CrUX 是一款出色的工具,可让您在各个网站上获得一致的视图,并且作为适用于 Core Web Vitals 计划的 Google 数据集,网站可能需要密切关注其显示的内容。CrUX 的目标是提供数百万个网站的统计相关概览,以便进行交叉比较。

不过,为了更深入地探究数据为何显示这些数字,投资一个完整的 RUM 解决方案来补充 CrUX,可以让您获得比公开可查询数据集中更详细的信息。这有助于您通过多种方式解释和改进指标。

更深入地分析和调查问题

CrUX 通常可用于指出网站是否存在问题,但不一定能指出问题在网站上的确切位置或原因。RUM 解决方案(无论是通过 web-vitals 库等自行开发的解决方案,还是众多商业产品中的一些产品)都可以帮助弥补这一差距。

使用 RUM 解决方案,您可以获取所有页面和所有浏览器上更精细的数据。此外,它还支持以 CrUX 无法实现的方式对这些数据进行细分和分析,让您能够深入探究并调查网站的问题区域。它们是否受特定细分用户群的影响?还是执行特定操作的用户?问题是从何时开始的?借助 RUM 工具可以提供的额外数据,这些问题会更容易回答。

与其他业务指标进行关联分析

RUM 还可让您直接将 Web 性能指标与任何业务指标进行比较,从而展示投资性能的价值,以及应优先考虑哪些其他性能工作。我们有许多案例研究,其中涉及的企业都进行了这种关联,例如 Farfetch 或《经济时报》。

收集其他性能数据

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 是全球最受欢迎的浏览器之一,因此在大多数情况下,它很可能可以广泛代表您网站的性能,但仅衡量该浏览器绝不代表衡量所有用户。这或许可以解释 RUM 和 CrUX 之间的一个主要区别。对于依赖于仅在 Chrome 中提供的 API 或图片格式的性能技术,尤其如此。

缺少 iOS 数据也可能导致偏差。例如,由于 iOS 用户通常使用性能更好的设备,或来自网络基础设施更好的国家/地区,因此将他们纳入其中可能会导致整体效果指标偏高。另一方面,如果排除这些用户(如 CrUX 所做的那样),则可能会导致数据偏向网站访问者的低端(示例案例研究)。Android 用户通常涵盖更广泛的设备、设备功能和市场。

RUM 解决方案可以获取非 Chrome 浏览器的数据,尤其是基于 Chromium 的浏览器,这些浏览器通常内置了相同的指标(例如 Core Web Vitals)。RUM 解决方案也会衡量非基于 Chromium 的浏览器,但可用的指标可能较为有限。例如,Cumulative Layout Shift (CLS) 仅在基于 Chromium 的浏览器中可用。其他一些基于绘制的指标(例如 LCP、INP,甚至 First Contentful Paint [FCP])的衡量方式可能大不相同(见下文)。

选择同意的用户

除了仅限于 Chrome 用户之外,CrUX 还进一步受到限制,仅衡量一部分 Chrome 用户,即在安装浏览器时选择分享 CrUX 数据的用户。

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 等工具中:

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

指标差异

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

衡量的指标

CrUX 数据是 Core Web Vitals 计划的 Google 数据集,主要衡量这些指标(LCP、CLS 和 INP),并辅以一些其他指标。

RUM 工具通常包含这些 Core Web Vitals,但也经常包含许多其他指标。一些 RUM 提供商还会使用这些指标的组合来衡量用户体验,或许是为了提供“幸福指数”或类似指标。在将 RUM 数据与 CrUX 进行比较时,请确保比较的是同类数据。

如果某个网页在所有 Core Web Vitals 指标的第 75 百分位上都达到了建议的目标值,则评估 Core Web Vitals 通过或未通过状态的工具应将其视为通过。如果网页没有互动,则没有 INP,此时只需 LCP 和 CLS 通过即可。

不同浏览器之间的指标差异

CrUX 仅在 Chrome 浏览器中进行衡量,您可以参阅 Web Vitals 变更日志,了解这些指标如何随每个 Chrome 版本而变化。

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

对于非 Chromium 浏览器,差异可能更为明显。例如,Safari 和 Firefox 中提供了 LCP、INP 和 FCP 等基于绘制的指标,但测量方式不同。这可能会导致报告的时间出现显著差异。如前所述,如果您想将 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 可能无法代表在网页加载后以及用户与其互动后导致更大偏移的网页。因此,仅在网页加载后获取 CLS 值(许多 RUM 产品都是这样做的)与在用户完成网页后获取 CLS 值会产生不同的结果。

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

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

当您发现这两个数据源之间存在无法解释的差异时,请务必向 RUM 提供商了解何时测量 Core Web Vitals。

单页应用

单页应用 (SPA) 的工作原理是更新当前网页上的内容,而不是在浏览器级别执行实际的网页导航。这意味着,尽管用户认为这些是网页导航,但浏览器并不这么认为。浏览器提供的 Core Web Vitals API 不会考虑这些因素,因此 CrUX 不支持这些网页导航。我们正在努力解决此问题,如需了解详情,请参阅衡量软导航一文。

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

CrUX 和 Web API 差异

除了哪些网页浏览量被衡量以及哪些内容被衡量方面的差异之外,还有一些其他更复杂的场景需要注意,这些场景可能会导致 CrUX 和 RUM 数据存在差异。其中一些差异是由于用于衡量指标的 Web API 存在限制,而另一些差异则是因为在某些情况下需要以不同的方式处理 API 返回的结果。Core 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 库)将无法获取这些内容。

不过,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,而这似乎是不可能的情况。实际情况并非如此,只是由于这项安全限制而显示为这样。

此问题已于 2024 年底得到解决,即使未提供 Timing-Allow-Origin,Chrome 133 也会提供略微粗略的呈现时间。

同样,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 天。

这些不同的指标通常没有“对”或“错”之分,它们只是从不同的角度来观察用户以及用户对您网站的体验。只要您了解这些差异产生的原因,以及这些差异对您的决策有何影响,您就能更好地服务网站访问者。