はじめに
概要
本資料は「web パフォーマンス 測定」に関する調査結果を分かりやすくまとめたものです。Webサイトの表示速度や応答性を数値で評価する方法やツールを紹介します。実務で使える手順や注意点も取り上げます。
本書の目的
目的は三つあります。1) 主要な測定指標の意味を理解する、2) ツールの使い方を知る、3) 測定結果を改善につなげる。例えば、画像の遅延読み込みで表示速度が改善することを確認する方法も説明します。
対象読者
フロントエンド開発者、サイト運営者、デザイナー、パフォーマンスに関心のある方を想定します。専門知識がなくても読み進められるよう配慮しています。
本章の流れ
後続章でツールの具体的操作やCore Web Vitals、JavaScriptによる高度な測定方法まで順に説明します。まずは基本の考え方を丁寧に押さえていきましょう。
Webパフォーマンス測定とは
はじめに
Webパフォーマンス測定は、Webサイトやページの表示速度や応答性、表示の安定性を数値でとらえる作業です。測定によって、どの部分が遅いか、何がユーザー体験を損なっているかを明確にできます。
なぜ測定が必要か
測定をしないと改善点が見えません。たとえばページが表示されるまでに時間がかかると、訪問者が離れる原因になります。検索順位や収益にも影響するため、改善の優先順位を決める基礎データが必要です。
測定の種類(ラボとフィールド)
- ラボ測定: 開発環境で決まった条件(ネット回線・端末)で測る方法です。再現性が高く、原因特定に向きます。
- フィールド測定: 実際の利用者の環境で収集したデータです。多様な端末や回線での実際の体験を反映します。
代表的な指標(簡単な説明)
- 読み込み時間: ページが表示され始めるまでの時間。短いほど好ましいです。
- First Contentful Paint(FCP): 最初のテキストや画像が見えるまでの時間です。
- Largest Contentful Paint(LCP): ページの主要なコンテンツが表示されるまでの時間です。
- Cumulative Layout Shift(CLS): 予期せぬレイアウトのズレの量を示します。数字が小さいほど良いです。
- Time to Interactive(TTI): ページが操作可能になるまでの時間です。
測定の進め方(簡単な流れ)
- 目的を決める(例: ファーストビュー改善)
- ラボとフィールド両方で計測する
- 問題点を絞って改善し、再度測定する
これらを繰り返すことで、着実にユーザー体験を向上させることができます。
主要な測定ツール
以下では、代表的なWebパフォーマンス測定ツールを分かりやすく説明します。各ツールの特徴、基本的な使い方、主に確認できる指標を具体例で示します。
PageSpeed Insights(Google提供)
特徴: URLを入力するだけでモバイル・PCのスコアを算出します。改善点を項目ごとに示すため優先度が分かりやすいです。
使用方法: サイトのURLを貼り付けて「解析」を実行します。数秒〜数十秒で結果が出ます。
測定可能な指標: LCP(最大コンテンツ表示)、FID/INP(入力応答性)、CLS(視覚的安定性)など。改善案に具体的なリソース削減例が出ます。
具体例: 画像圧縮や遅延読み込みの提案が表示され、修正後に再計測して効果を確認できます。
Chrome DevTools – Performance Insights
特徴: ブラウザ上で細かいタイミングを可視化できます。実際のページ読み込みを録画して解析します。
使用方法: Chromeで該当ページを開き、開発者ツールの「Performance」タブで録画を開始します。操作後にタイムラインを確認します。
測定可能な指標: ネットワークの遅延、スクリプト実行時間、レンダリング遅延など。どのスクリプトが負荷を生んでいるか特定できます。
具体例: 長時間動くJavaScriptが原因で描画が遅い場合、該当関数を見つけて修正箇所を決められます。
GTmetrix
特徴: 複数地点・異なる回線条件での測定が可能です。ページの読み込み時間を可視化し、改善点を優先順位で示します。
使用方法: URLを入力して地域やデバイス条件を設定し、解析を実行します。レポートをダウンロードできます。
測定可能な指標: 総読み込み時間、リクエスト数、ページサイズ、Core Web Vitalsに関連する指標。
具体例: 海外ユーザーが遅い場合、CDN導入の必要性をデータで判断できます。
Google Search Console(速度レポート)
特徴: 実際の訪問者データに基づく速度レポートを提供します。ラボデータではなく現実のユーザーデータを使います。
使用方法: サイトを登録し、サーチコンソールの「ウェブに関する主な指標」や速度レポートを確認します。
測定可能な指標: 実ユーザーのLCP、FID/INP、CLSの分布や問題のあるURL群。
具体例: 特定のページ群でLCPが悪いとき、そのページの共通要因(大きな画像や外部スクリプト)を調べる手がかりになります。
PageSpeed Insights(Google提供)
概要
Googleが提供する無料のツールです。URLを入力すると数秒でスコアと改善点を表示します。デスクトップとモバイル両方の評価に対応し、実際のユーザー計測(フィールドデータ)と診断用の実行時計測(ラボデータ)を両方提示します。
使い方(簡単な手順)
- ツールを開き、対象ページのURLを入力します。
- モバイル/デスクトップを切り替えられます。
- スコアと指標、改善提案を確認します。
スコアの見方
100点満点で評価しますが、重要なのは指標の中身です。主な指標はLCP(表示速度)、FID(操作応答性)、CLS(視覚の安定性)です。例えばLCPが遅ければ大きな画像の最適化を検討します。
主な改善提案と具体例
- 画像を圧縮・遅延読み込み(lazy-loading)する。
- 不要なJavaScriptを削減し、遅らせて実行する。
- CSSを最小化し、重要なスタイルを先に読み込む。
- キャッシュを有効にし、CDNを活用する。
注意点
フィールドデータは実ユーザーの平均を示しますが、サンプル数が小さい場合があります。ラボデータは再現性が高い診断向けです。両方を見て優先度を決めてください。
Chrome DevTools – Performance Insights
概要
Chrome DevToolsのPerformance Insightsは、ページ読み込みや実行時の詳細な動作を可視化するツールです。HTML/CSS/JavaScriptの処理順や時間を確認でき、ボトルネックの特定に役立ちます。
開き方と基本操作
- Chromeでページを開き、F12または右クリック→検証でDevToolsを開きます。
- 上部タブから「Performance」または「Performance Insights」を選びます。
- 「Record」ボタンを押してページをリロードするか、操作を記録します。記録後に解析結果が表示されます。
主な指標の見方(簡単な説明)
- LCP(Largest Contentful Paint): ページで最も大きなコンテンツが表示されるまでの時間。例:メイン画像や見出しが遅いとLCPが悪化します。
- TBT(Total Blocking Time): 主要な操作がブロックされている合計時間。重いスクリプトが長時間処理されると増えます。
- CLS(Cumulative Layout Shift): 表示のズレ量。広告や画像の読み込みでレイアウトが動くと増えます。
- SI(Speed Index): 画面がどれだけ速く視覚的に表示されるかを数値化したもの。
- TTI(Time to Interactive): ページが対話可能になるまでの時間。
- FCP(First Contentful Paint): 最初のコンテンツが描画されるまでの時間。
タイムラインとウォーターフォール
タイムラインでCPU処理やレンダリング、ネットワークの発生順を確認できます。ウォーターフォールは各リクエストの開始・終了を示します。画像やスクリプトがどのくらい時間を使っているか一目で分かります。
実践的な使い方と注意点
- 「Network throttling」で通信速度を絞って実測に近い状況を作ります。
- キャッシュを無効にして測定することで初回表示の問題を見つけやすくなります。
- 重大な遅延が見つかったら、該当スクリプトや画像を遅延読み込み、圧縮、分割する対策を試してください。
GTmetrix
概要
GTmetrixはページの読み込み過程を詳しく解析します。PageSpeed ScoreやYSlow、Web Vitalsの指標を同時に表示し、Waterfall Chartでリクエストの順序や時間を視覚化します。初心者でも傾向が分かりやすいです。
主な指標と見方
- PageSpeed/YSlow: 改善点の候補を示します。具体例:画像最適化やキャッシュの提案。
- Web Vitals: LCPやCLSなど、ユーザー体験に直結する数値を確認します。
Waterfall Chartの活用法
リクエストごとの開始・完了時間を見て、遅いリソースを特定します。例:大きな画像や外部スクリプトが読み込みを止めている場合があります。
改善提案の実行例
画像を圧縮・遅延読み込み、不要な外部スクリプトの削減、HTTP圧縮(gzip/ Brotli)を有効化、CDN導入、JavaScriptを遅延・分割するなどを優先します。
テスト時の注意
地域・デバイス設定を切り替えて複数回測定し、安定した傾向をつかんでください。また、キャッシュをクリアした状態とキャッシュ有効時の両方で確認します。
よくある改善の順序
1) 画像最適化 2) キャッシュ設定 3) 不要スクリプト削除 4) リソースの遅延読み込み
実務ではGTmetrixの診断を基に優先度をつけ、段階的に改善してください。
Google Search Console
概要
Google Search Console(GSC)は、サイト全体の実際のユーザー体験を把握するのに適したツールです。サイドバーの「エクスペリエンス>ウェブに関する主な指標」から、モバイル・PC別にページ群の読み込み速度やCore Web Vitalsの状態を確認できます。PageSpeed Insightsがページ単位で詳細に測るのに対し、GSCはサイト全体の不良URL発見に便利です。
主な使い方(手順)
- GSCを開き「エクスペリエンス>ウェブに関する主な指標」を選びます。
- モバイル/PCタブで状態を切り替え、「Good」「Need improvement」「Poor」などの分類を確認します。
- 不良あるいは改善が必要なURLの一覧を開き、影響の大きいページを優先的に抽出します。
- 個別ページはPageSpeed InsightsやChrome DevToolsで詳細診断を行い、改善後はGSCで再検証(再クロール依頼)します。
実務的な活用例
- トラフィックの多いページで“Poor”が出たら優先対応します。
- エクスポート機能でURLリストをダウンロードし、修正管理に利用します。
- モバイルとPCで差がある場合はモバイル優先で最適化します。
制限と注意点
- データは実ユーザーの集計で、反映に数日〜数週間の遅れがあります。
- ページ単位の詳細分析は行えないため、個別診断ツールと併用してください。
Core Web Vitalsの主要指標
Webパフォーマンスを評価する主要な指標を、分かりやすく説明します。ここで扱うのはLCP、FID、CLS、FCP、INP、TTFBの6つです。
Largest Contentful Paint(LCP)
- 何を測るか:ページの主要なコンテンツ(大きな画像や見出し)が表示されるまでの時間。
- 目安:2.5秒以内が良好。
- 対策例:画像の遅延読み込み、重要なリソースの優先読み込み、サーバー応答改善。
First Input Delay(FID)
- 何を測るか:初回のユーザー操作(クリックなど)に対する応答の遅れ。
- 目安:100ms以下が理想。
- 対策例:長時間のスクリプト処理を分割、Web Workerの活用。
Cumulative Layout Shift(CLS)
- 何を測るか:表示中に要素が移動して視覚的に不安定になる度合い。
- 目安:0.1未満が良好。
- 対策例:画像や広告のサイズを明示、フォントの描画待ちを工夫。
First Contentful Paint(FCP)
- 何を測るか:最初のテキストや画像が描画されるまでの時間。
- 目安:1.8秒程度を目指す。
- 対策例:CSSの最小化、クリティカルCSSのインライン化。
Interaction to Next Paint(INP)
- 何を測るか:ユーザー操作から画面の次の描画完了までの総合的な応答性。
- 目安:短いほど良い。
- 対策例:入力処理の軽量化と非同期化。
Time to First Byte(TTFB)
- 何を測るか:ブラウザがサーバーから最初のバイトを受け取るまでの時間。
- 目安:200ms〜800msが目安。
- 対策例:キャッシュ活用、CDN導入、サーバー処理の最適化。
どの指標も、ユーザーの体感に直結します。具体的な数値と簡単な対策を合わせて改善を進めてください。
JavaScript APIを使用した高度な測定方法
概要
PerformanceObserverというAPIを使うと、ページ内で発生するさまざまなパフォーマンスエントリをリアルタイムに取得できます。Core Web Vitalsの計測にも使え、ブラウザ側で発生するイベントを細かく観察できます。
PerformanceObserverの基本
PerformanceObserverを作り、’largest-contentful-paint’や’layout-shift’などのエントリタイプを監視します。例:
const obs = new PerformanceObserver((list) => {
for (const entry of list.getEntries()) {
console.log(entry);
}
});
obs.observe({type: 'largest-contentful-paint', buffered: true});
requestAnimationFrameでのレンダリング測定
描画完了をミリ秒単位で知りたい場合、requestAnimationFrameをネストして次フレームの開始時刻を取得します。これは実質的にブラウザが現在の描画を終えた後のタイミングを示します。
const t0 = performance.now();
requestAnimationFrame(() => {
requestAnimationFrame(() => {
const tEnd = performance.now();
console.log('render time', tEnd - t0);
});
});
実装上の注意点
- ブラウザ互換性を確認してください。\n- サンプリング数を増やし統計を取ると安定します。\n- ユーザーデータを送信する場合はプライバシーに配慮してください。
パフォーマンス測定の実践的なアプローチ
段階的な戦略
1) 初期測定(概観)
– PageSpeed Insightsで主要ページを測定します。読み込み時間やCore Web Vitalsの概況を把握できます。例:トップページ、商品ページ、ランディングページ。
2) 詳細分析(原因特定)
– GTmetrixやChrome DevToolsでボトルネックを探ります。画像の遅延、不要なスクリプト、大きなリソースなどを具体的に確認します。実際にネットワークタブでファイルサイズや読み込み順を見ます。
3) サイト全体の把握
– Google Search Consoleでページごとの実測データ(フィールドデータ)を確認します。ユーザー実績を見て優先順位を決めます。
実施手順の例
- 準備:測定前にキャッシュをクリアし、テスト環境と本番を区別します。
- ベースライン計測:主要ページを3回ずつ測定して中央値をとります。
- 改善実施:優先度の高い項目から修正します(例:画像圧縮、不要なJSの遅延読み込み)。
- 再測定:変更後に同じ手順で測定し、改善効果を比較します。
定期測定と自動化
- 週次または月次で定期測定を実施します。重要な指標はダッシュボードで追跡します。簡単な自動化例:GTmetrixのAPIやスクリプトで毎週のレポートを作成します。
注意点とチェックリスト(簡潔)
- 測定環境を揃える
- 複数回の測定でばらつきを減らす
- フィールドデータ(実ユーザー)と合成データ(ラボ)を両方見る
- 変更は小さな単位で行い、影響を追跡する
これらを順に実施すると、効果的に課題を見つけ改善できます。日々の運用に組み込み、継続的に計測・改善してください。












