CrUX データが RUM データと異なるのはなぜですか?

RUM データと CrUX でウェブに関する主な指標の数値が異なる理由について説明します。

Chrome ユーザー エクスペリエンス レポート(CrUX)は、Chrome ユーザーがウェブ上の人気ページに実際にアクセスしたときのユーザー エクスペリエンスを指標化したものです。このデータは、オプトインしたユーザーから Chrome によって自動的に収集され、CrUX の利用条件に基づいて利用可能になります。

そのため、CrUX データは数百万ものウェブサイトで利用できます。多くのサイト所有者はこれまでフィールドデータにアクセスできませんでしたが、CrUX により、多くのサイトが初めてその価値を確認できるようになりました。CrUX は公開データセットであるため、競合分析やユーザー エクスペリエンス指標のベンチマークにも使用できます。

リアルユーザー モニタリング(RUM)は CrUX に似ていますが、Chrome がユーザー エクスペリエンス指標を自動的に収集するのではなく、ウェブサイトにコードを埋め込んで収集し、RUM プロバイダまたはアナリティクス ソリューションにフィードバックして詳細な分析を行うものです。

どちらのソリューションもユーザー エクスペリエンス指標を測定するため、同等であると考えるのが自然です。違いがあると混乱することがあります。このガイドでは、その理由と、数字が一致しない場合に取るべき対応について説明します。

CrUX を RUM ソリューションで補完するメリット

CrUX は、サイト全体で一貫したビューを提供する優れたツールです。また、Core Web Vitals プログラムの公式データセットであるため、サイトでは CrUX の表示内容を常に確認しておく必要があります。CrUX の目的は、数百万ものウェブサイトの統計的に関連性の高い概要を提供し、相互比較できるようにすることです。

ただし、データに表示されている数値の理由を詳しく調査するには、CrUX を補完する完全な RUM ソリューションに投資することをおすすめします。これにより、一般公開されているクエリ可能なデータセットで利用できるよりも詳細な情報を入手できます。これにより、さまざまな方法で指標を説明、改善できます。

問題を調査するための詳細な分析

CrUX は、サイトに問題があるかどうかを特定するために使用できますが、サイトのどこに問題があり、その原因が何であるかを特定できるとは限りません。RUM ソリューションは、web-vitals ライブラリなどの自社開発ソリューションや、数多くの商用プロダクトのいずれかを使用して、このギャップを埋めることができます。

RUM ソリューションを使用すると、すべてのページとすべてのブラウザで、よりきめ細かいデータにアクセスできます。また、CrUX ではできない方法でこのデータをセグメント化して分析できるため、サイトの問題のある部分をドリルダウンして調査できます。特定のユーザー セグメントに影響しているかどうか。特定のアクションを行ったユーザーはどうか?この問題が発生した正確な日時こうした質問は、RUM ツールが提供する追加データがあれば、はるかに簡単に回答できます。

他のビジネス指標と関連付ける

また、RUM では、ウェブ パフォーマンス指標をビジネス指標と直接比較して、パフォーマンスへの投資の価値や、優先すべきその他のパフォーマンス作業を確認できます。FarfetchThe Economic Times など、この関連付けを行っている企業のケース スタディは数多くあります。

その他のパフォーマンス データを収集する

RUM ソリューションを使用すると、特定のビジネスに直接関連する他のカスタム指標を収集できます。よく知られている例の一つが、Twitter の「最初のツイートまでの時間」指標です。これらのサイト固有の測定値は、Core Web Vitals の改善とビジネス指標と関連付けることができます。

2 つのフィールドデータセットの違い

時計を持っている男は、何時かを知っている。2 つの時計を持っている男は、確信が持てない。

Segal の法則

2 つのデータソースがある場合、データが異なる理由がわかりにくく、イライラすることがあります。ラボとフィールドの指標の違いを理解することが重要であるのと同様に、フィールド データの 2 つのソースの間にも違いが生じる可能性があります。理想的には同じデータになるはずですが、データが異なる理由はたくさんあります。

ラボデータとフィールド データ

まず、ラボ(合成)指標とフィールド(RUM)指標のどちらを参照しているかを確認します。RUM プロダクトはフィールドデータのみを参照すると想定されますが、多くのプロダクトにはラボ コンポーネントも用意されています。

ラボデータは、測定条件が固定されているため、非常に有用です。フィールドの値の変化によるノイズを排除して、本番環境で想定外の変更や回帰をモニタリングできます。ただし、ラボのデータは実際のユーザー エクスペリエンスを代表するものではないため、フィールド指標の結果は大きく異なる場合があります。

集団

CrUX ソリューションと RUM ソリューションで使用されるデータセットは、比較対象のブラウザ、ユーザー、サイト、デバイスによって測定されるページアクセスが異なるため、異なる場合があります。

対象のブラウザ

Chrome ユーザー エクスペリエンス レポートは、その名前が示すように Chrome 専用です。コア コードベースを共有しているため、Chrome と同じ指標をサポートする Chromium ベースのブラウザは多数ありますが(Edge、Opera、Brave など)、CrUX にデータをフィードするのは Chrome ユーザーのみです。また、iOS 版 Chrome ユーザーは、基盤となる WebKit ブラウザ エンジンを使用しているため、対象外となります。Android WebView も「Chrome」としてカウントされないため、これらのユーザーのデータは含まれません(Chrome カスタムタブは含まれます)。

Chrome は世界で最も人気のあるブラウザの 1 つであり、ほとんどの場合、サイトのパフォーマンスを広範に反映している可能性がありますが、そのブラウザのみを測定することは、決してすべてのユーザーを測定しているわけではありません。これが RUM と CrUX の主な違いの 1 つです。これは、Chrome でのみ利用可能な API や画像形式に依存するパフォーマンス手法に特に当てはまります。

iOS のデータが不足している場合も、バイアスが生じる可能性があります。たとえば、iOS ユーザーは通常、パフォーマンスの高いデバイスを使用しているため、またはネットワーク インフラストラクチャが優れた国からアクセスしているため、iOS ユーザーを含めると、全体的なパフォーマンス指標が高くなる可能性があります。一方、CrUX のように除外すると、サイト訪問者の下位層に偏ったデータになる可能性があります(ケーススタディの例)。Android ユーザーは通常、デバイス、デバイスの機能、市場の範囲が広くなります。

RUM ソリューションは、Chrome 以外のブラウザのデータも取得できます。特に、同じ指標(Core Web Vitals など)が組み込まれていることが多い Chromium ベースのブラウザからデータを取得できます。Chromium 以外のブラウザも RUM ソリューションで測定されますが、指標のセットが限定される場合があります。たとえば、Cumulative Layout Shift(CLS)Interaction to Next Paint(INP) は、Chromium ベースのブラウザでのみ使用できます。First Contentful Paint(FCP)などの他の指標は、測定方法が大きく異なります(後述)。

オプトインしたユーザー

CrUX は Chrome ユーザーに限定されるだけでなく、ブラウザのインストール時に CrUX データの共有を有効にしたChrome ユーザーのサブセットのみを測定するように制限されています。

また、RUM プロバイダは、通常は Cookie バナー プロンプト(RUM データ収集へのオプトインを求めるメッセージ)やトラッキング ブロッカーが原因で、ユーザーのサブセットのみを対象とします。2 ページ目以降で確認が行われない場合、一部のサイトアセットが前のページからすでにキャッシュに保存されているため、最初のページの読み込みに悪影響が及ぶ可能性があります。これが頻繁に発生すると、十分な数のケースで遅い最初のページ読み込みが除外された場合、RUM では指標が実際よりも良好に見える可能性があります。

対象となるサイト

CrUX は一般公開されているウェブサイトに関するレポートのみを対象としているため、CrUX にデータが記録されない可能性があるその他の資格要件もあります。これらの基準の中で最も重要なのは、ウェブサイトが一般に公開されており、有意な結論を導くための最小サンプルサイズを確保できるほど十分に人気があることです。ほとんどの場合、CrUX でデータが利用できなくなります。これは、利用可能なデータが異なる場合と比べて混乱を招く可能性は低いですが、その理由を説明します。

ただし、サイトの特定のページがインデックス登録可能としてマークされていて、他のページがマークされていない場合、CrUX には URL のサブセットのみが表示されることがあります。オリジンが一般公開されている場合、そのオリジン内のすべてのページビューがオリジン レベルのデータに含まれますが、URL レベルのデータは利用できない場合があります。

デバイス

CrUX では、データがモバイル、パソコン、タブレットに分割されますが、多くのツールでは最初の 2 つに重点が置かれ、タブレットのデータが公開されないか、モバイルまたはパソコンに含まれる場合があります。モバイルとパソコンでは、配信されるコンテンツと、コンテンツを表示するデバイスの機能の両面で、パフォーマンス特性が大きく異なる場合があります。

RUM データでもトラフィックを同様にセグメント化できますが、多くの場合、デフォルトで統合データが表示されます。RUM では、デバイスタイプ(モバイルなど)またはブラウザ(Chrome など)でのみセグメント化できる場合があります。両方でセグメント化して、モバイル Chrome トラフィックのみを確認することはできません。CrUX データと比較する場合は、デバイスタイプ Chrome ブラウザでフィルタして、同等のデータを比較するようにしてください。

サンプリング

通常、RUM ソリューションでは、データが収集されるオプトインした訪問者のサンプリング レートを調整できます。これにより、分析に必要なデータ量を減らし、商用 RUM サービスの費用を削減できます。サンプルサイズが小さすぎて、より広範な母集団を代表していない場合、得られる指標も同様に偏ります。サイトに適したサンプリング サイズについて、RUM プロバイダに相談してください。

データの集約

フィールドデータには、ラボデータと比較して、同じ指標の非常に多くのデータポイントが含まれます。ラボデータでは 1 つの値が得られます。このデータがレポート用に異なる方法で集計されている場合、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 パーセンタイルおよびヒストグラムのデータが表示される

指標の違い

ウェブ パフォーマンスの測定に使用される指標は多数あるため、2 つの異なるデータセットを比較する場合は、測定されている指標と、それらの指標がどのように使用されているかを理解することが重要です。

測定される指標

CrUX データは Core Web Vitals イニシアチブの公式データセットであり、主に以下の指標(LCPCLSINP)を測定します。また、これらの指標を補完するいくつかの追加指標も測定します。

RUM ツールには通常、これらの Core Web Vitals が含まれていますが、多くの場合、他の多くの指標も含まれています。一部の RUM プロバイダは、これらの指標を独自に組み合わせてユーザー エクスペリエンスを測定し、「満足度指数」などを算出します。RUM データを CrUX と比較する場合は、同等のデータを比較してください。

ウェブに関する主な指標の合格 / 不合格ステータスを評価するツールでは、すべてのウェブに関する主な指標の 75 パーセンタイルにおける推奨目標を満たしているページを合格と見なす必要があります。インタラクションのないページに INP がない場合、LCP と CLS のみが合格する必要があります。

ブラウザ間での指標の違い

CrUX は Chrome ブラウザでのみ測定されます。Core Web Vitals の変更ログで、Chrome の各バージョンでの変化を確認できます。

一方、RUM ソリューションは、より幅広いブラウザを測定します。Chromium ベースのブラウザ(Edge、Opera など)は、Chrome に変更ログに記載されている新しい変更が実装されていない限り、Chrome と類似する可能性があります。

Chromium 以外のブラウザでは、この差異がより顕著になる可能性があります。たとえば、First Contentful Paint(FCP)は Safari と Firefox で利用できますが、測定方法が異なります。これにより、報告される時間に大きなばらつきが生じる可能性があります。前述のとおり、RUM と CrUX を比較する場合は、Chrome ユーザーのみをフィルタして、同等の比較を行うことをおすすめします。

指標のタイミング

ウェブに関する主な指標はウェブブラウザ API によって提供されますが、それらを使用して報告される値に差異が生じる可能性がないわけではありません。指標の測定がいつ行われるか(ページの読み込み時か、ページのライフサイクル全体を通してか)によって、差異が生じる可能性があります。RUM ツールでは、同じ名前を使用して同じブラウザ API でデータを取得しても、指標の測定方法が同じとは限りません。そのため、混乱が生じる可能性があります。

Largest Contentful Paint(LCP)はページ読み込み指標です。最初のレンダリング後に大きな要素が読み込まれると、Web API によって複数の LCP 要素がレポートされる場合があります。最後の LCP 要素は、ページの読み込みが完了したとき、またはユーザーがページを操作したときです。したがって、LCP 要素がこれらの 2 つのイベントより前に報告された場合、差異が生じる可能性があります。

また、フィールド データでは、ページの読み込み方法によって 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 プロバイダは、さまざまな理由から、これらの指標をページの読み込み後、または他のタイミング(重要な行動を促すフレーズがクリックされたときなど)で測定しています。

2 つのデータソース間で説明できない差異がある場合は、ウェブに関する主な指標がいつ測定されるかを RUM プロバイダに確認することが重要です。

シングルページ アプリケーション

シングルページ アプリケーション(SPA)は、ブラウザレベルで実際のページ ナビゲーションを実行するのではなく、現在のページのコンテンツを更新することで動作します。つまり、ユーザーがページ移動として認識している場合でも、ブラウザはページ移動として認識しません。ブラウザが提供するウェブに関する主な指標の API ではこれらの要素は考慮されません。そのため、CrUX ではこれらのページ ナビゲーションはサポートされていません。この問題の解決に向けて現在取り組んでおります。詳しくは、ソフト ナビゲーションの測定に関するテストの投稿をご覧ください。

一部の RUM プロバイダは SPA の「ソフト ナビゲーション」を検出しようとしますが、ウェブに関する主な指標もこれらの「ソフト ナビゲーション」に関連付けている場合、基盤となる API の多くが多くの指標でこれをサポートしていないため、CrUX と異なる結果になります。

CrUX と Web API の違い

測定されるページビューの種類と測定される内容の違いに加えて、CrUX と RUM のデータに差異が生じる可能性がある、より複雑なシナリオがいくつかあります。これらの違いの一部は、指標の測定に使用されるウェブ API の制限によるものであり、一部は、API から返された結果を特定のシナリオで異なる方法で処理する必要があるものです。Core Web Vitals のドキュメントでは、LCPCLS の違いについて説明していますが、主な違いは次のセクションでも説明しています。

バックフォワード キャッシュ

CrUX では、バックフォワード キャッシュ(bfcache)の復元は、従来のページ読み込みにつながらないにもかかわらず、ページ ナビゲーションと見なされます。Web API ではこれらのページがページ読み込みとして扱われないため、RUM ソリューションで CrUX と一致させるには、これらのページをカウントするために追加の手順を踏む必要があります。これらのページは読み込みが非常に速く、サイトの全体的なパフォーマンスの向上につながる可能性があります。そのため、これらのページを含めないと、ページの全体的なパフォーマンス指標が低下する可能性があります。RUM ソリューションが bfcache から復元されたページを処理するかどうかを確認します。

iframe

セキュリティとプライバシー上の理由から、最上位ページは iframe 内のコンテンツにアクセスできません(同一オリジンの iframe であってもアクセスできません)。つまり、iframe 内のコンテンツのパフォーマンス指標は、iframe 自体でのみ測定でき、フレームページの Web API では測定できません。iframe コンテンツに LCP 要素が含まれている場合や、ユーザーが経験する CLS や INP に影響するコンテンツが含まれている場合、RUM ソリューション(Google ウェブバイタル JavaScript ライブラリを含む)では使用できません。

一方、CrUX はページ上の JavaScript ではなく Chrome ブラウザ自体によって測定されるため、このような制限はなく、Core Web Vitals のレポート時に iframe 内の指標も測定されます。これにより、ユーザーが実際に体験する内容をより正確に反映できますが、iframe を使用するサイトでは、このことが差異を生む原因となる可能性があります。

これが CrUX と RUM の LCP データの差異につながる具体的な例として、埋め込み <video> があります。playsinline 自動再生 <video> 要素の最初のペイントされたフレームは LCP の候補としてカウントされますが、一般的な動画ストリーミング サービスの埋め込みでは、これらの要素が <iframe> に配置される場合があります。CrUX は <iframe> コンテンツにアクセスできるため、この点は考慮できますが、RUM ソリューションでは考慮できません。

クロスオリジン リソース

タイミング攻撃を軽減するためのブラウザのセキュリティ制限により、他のドメインから配信される LCP メディアは、Timing-Allow-Origin ヘッダー(TAO)が指定されていない限り、PerformanceObserver API でレンダリング時間が取得されない場合があります。これはリソースの読み込み時間にフォールバックしますが、コンテンツが実際にペイントされたときとは大きく異なる場合があります。

これにより、ウェブ 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 が示す大まかな傾向を詳しく調べ、サイトまたはユーザーベースの特定の領域に注意を払う必要があるかどうかを特定できます。

2 つのデータソースの数字が完全に一致しているかどうかよりも、改善が期待されるプラスの効果が得られているかどうかをトレンドから確認することが重要です。前述のように、RUM ではさまざまな期間を調べて、28 日間の CrUX スコアを確認できます。ただし、期間が短すぎるとノイズの多いデータになる可能性があるため、CrUX では 28 日間を使用しています。

これらの指標には「正しい」答えや「間違った」答えはありません。ユーザーとユーザーのサイト利用状況をさまざまな角度から把握するための指標にすぎません。こうした違いが生じる理由と、意思決定にどのように影響するかを理解していれば、サイト訪問者により良いサービスを提供するために必要なことです。

謝辞

サムネイル画像: UnsplashSteven Lelham による