はじめに
本書の目的
本ドキュメントは、WebサイトやWebアプリケーションの速度と動作の良し悪しを正しく測るための道しるべです。どの指標を見れば良いか、どのツールが何を測るかを分かりやすく解説します。開発者だけでなく、運用担当や企画担当にも役立つ内容を目指します。
なぜパフォーマンスが重要か
表示が遅いとユーザーは離れ、売上や満足度に影響します。検索エンジンの評価にも関係しますし、無駄なサーバー負荷は費用増につながります。具体例として、ページ表示が1秒遅くなるだけで離脱率が上がることが知られています。
本書で扱う内容
本書は以下を扱います。
– ユーザー視点での計測ツール(実際の表示速度を測る)
– 開発者向けの詳細分析ツール(内部処理やリソースを掘り下げる)
– 負荷テストや性能テストの基本と代表的なツール
– 各ツールの長所・短所と使いどころの提案
誰に向けているか
Webサイトの品質向上を目指すすべての方に向けています。初心者でも理解しやすいよう具体例を交えて説明します。
読み方のヒント
まずはユーザー視点のツールで現状を把握し、問題点に応じて詳細ツールや負荷テストを使い分ける流れがおすすめです。章ごとにツールの特徴と使い方を丁寧に紹介します。
Webパフォーマンス測定ツールの全体像
概要
Webパフォーマンス測定ツールは大きく2つに分かれます。ユーザー視点で体感速度を測るツールと、負荷をかけてシステムの耐久性や挙動を調べるツールです。用途に応じて使い分けることが重要です。
ユーザー視点のツール(例と特徴)
- 何を測るか:ページの読み込み開始から主要な表示までの時間や、操作可能になるまでの時間。
- 主な指標:読み込み時間、First Contentful Paint(最初の内容表示)、Largest Contentful Paint(主要な内容表示)、Time to Interactive(操作可能になる時間)。
- 使う場面:フロントエンド改善、ユーザー体験を優先する判断。
- 代表的なツール:PageSpeed Insights、Lighthouse、GTmetrix、OctaGate SiteTimer。
負荷テスト・監視ツール(例と特徴)
- 何を測るか:同時アクセス時の応答性、スループット、エラー率、リソース使用率。
- 主な指標:リクエスト毎の応答時間、1秒あたりの処理数、最大同時接続数。
- 使う場面:リリース前の性能検証、容量計画、障害対策。
- 代表的なツール:Apache JMeter、LoadNinja、NeoLoad、Silk Performer、Loadster。
選び方のポイント
- 目的を明確にする(体感改善か負荷対策か)。
- 実測(実ユーザー)とラボ(擬似環境)の両方を活用する。
- ネットワーク環境やデバイスを再現できるか確認する。
- CIや監視に組み込みやすいかも重要です。
実践的な注意点
テスト環境は本番に近づけてください。結果を鵜呑みにせず、複数ツールで比較すると精度が上がります。
ユーザー視点のパフォーマンス計測ツール
概要
「ユーザー視点」の計測は、実際の利用者が感じる表示速度や操作性を評価します。単なるサーバー応答時間ではなく、画面が見えるまでの時間やクリックに対する反応などを重視します。
代表的なツール
- PageSpeed Insights(Google)
- ラボデータと実ユーザーデータ(CrUX)を併せて提供します。Core Web Vitalsを中心にスコアと改善提案を返します。
- Lighthouse(Google)
- Chrome内蔵の監査ツールで、FCP・LCP・TTI・CLSなど詳細な指標と改善項目を出します。デバッグに便利です。
- GTmetrix(カナダ)
- 水fallチャートやフィルムストリップでリソースの読み込み順を可視化します。テスト地点や回線速度を変えて比較できます。
- OctaGate SiteTimer
- 軽量な簡易計測ツールで、ブラウザでの見え方やスクリプトの影響を手早く確認できます。
使い分けと実践
- 目的で選びます。実ユーザーの傾向を知りたいならPageSpeed Insights、詳細な原因追及はLighthouseやGTmetrixが有効です。SiteTimerは素早いチェック向きです。
- 同じページを複数回、異なるデバイス・ロケーションで測定します。ラボ測定とフィールド測定を組み合わせると誤差が減ります。
ポイント
- Core Web Vitalsに注目し、フィルムストリップやウォーターフォールでボトルネックを特定します。スコアは目安なので、実際の体感改善を優先してください。
PageSpeed Insights(Google)
概要
Googleが提供する無料ツールで、実際のユーザー環境(フィールドデータ)と擬似環境(ラボデータ)を使い、ページのパフォーマンスを診断します。デスクトップとモバイル両方に対応します。
測定する主な指標
- LCP(Largest Contentful Paint): 最も大きな主要コンテンツが表示されるまでの時間。例:記事の見出しや大きな画像。短いほど良いです。
- FID / INP: ユーザーが操作した際の応答性。古い指標FIDに代わりINPが注目されています。ボタンのクリックでの反応を想像してください。
- CLS(Cumulative Layout Shift): ページ表示中のレイアウトのズレ量。レイアウトが勝手に動くとスコアが悪くなります。
- FCP(First Contentful Paint): 最初に何かが表示されるまでの時間。背景が白いままより早く表示されると安心感が生まれます。
- TTFB(Time To First Byte): サーバーが最初の応答を返すまでの時間。サーバー遅延の目安です。
使い方(簡単)
URLを入力するとスコアと各指標の値、改善提案が表示されます。提案には画像最適化、不要なJavaScript削減、キャッシュ利用などが含まれます。
判定と改善の進め方
フィールドデータで実際のユーザー影響を確認し、ラボデータで再現テストを行います。まずLCPとINP(またはFID)を優先し、次にCLSやFCPを改善します。画像を圧縮する、遅延読み込みを使う、重要なスクリプトを先に読み込む等の対策が有効です。
注意点
スコアは目安です。ネットワークやユーザー環境で変わるため、継続的にモニタリングしてください。
Lighthouse(Google)
概要
LighthouseはGoogle Chromeに組み込まれた計測ツールで、Webページの品質を自動で評価します。パフォーマンス、アクセシビリティ、ベストプラクティス、SEO、PWAなど複数の観点で監査を実行し、Core Web Vitalsを中心に改善点を示します。拡張機能やCLI、CI連携も可能です。
主な機能
- パフォーマンススコアと詳細な監査項目
- フィルムストリップやトレースでの描画タイミング可視化
- 最適化の提案(画像圧縮、遅延読み込み等)
- ネットワーク/CPUスロットリングでの擬似検証
使い方(かんたん手順)
- Chromeで対象ページを開く
- DevToolsの「Lighthouse」タブを選ぶ
- モバイル/デスクトップや監査項目を選択
- 「Generate report」を押して結果を確認
CLIやLighthouse CIを使えば自動化もできます。
計測時の注意点
ラボ環境の結果は実ユーザーの条件と異なることがあります。ネットワークやCPUのスロットリング設定、ブラウザ拡張の有無で差が出ます。複数回計測して傾向を確認し、実ユーザーデータ(Chrome UX ReportやPageSpeed Insightsのフィールドデータ)と合わせて判断してください。
カスタマイズと自動化
独自の監査をプラグインで追加したり、CIに組み込んで回帰を検出できます。レポートのJSON出力を解析して指標を継続的に監視すると効果的です。
活用例
Lighthouseの提案に従い画像の遅延読み込みや不要なJavaScriptの削減を行うと、LCPやINPの改善に繋がります。現状の問題点を可視化し、優先度を決めて対処するとよいです。
GTmetrix
概要
GTmetrixはカナダ発のサイト速度診断サービスです。ページ全体のパフォーマンスをA~Fで評価し、視覚的に改善点を示します。無料版でも主要な指標を確認でき、まずは現状把握に向きます。
主な指標と簡単な説明
- LCP(Largest Contentful Paint):ページで最も大きな要素が表示されるまでの時間。例:メイン画像や見出しが遅いとLCPが悪化します。
- TBT(Total Blocking Time):操作に対してブラウザが応答しにくい時間。重いスクリプトが原因です。
- CLS(Cumulative Layout Shift):表示が後からズレる量。広告や画像の読み込みで発生します。
- SI(Speed Index):視覚的にどれだけ早く表示されるかを数値化したもの。
- TTI(Time to Interactive):ページが操作可能になるまでの時間。
- FCP(First Contentful Paint):最初にコンテンツが表示されるまでの時間。
使い方(無料版のポイント)
無料でも指標やグレード、ウォーターフォール(読み込み順)が見られます。テストはURLを入力して地域を選べば実行できます。ログインすれば結果の履歴が残ります。
活用のコツ
- 複数のページや時間帯で計測し、ばらつきを確認します。
- ウォーターフォールで遅いリソースを特定し、画像圧縮やキャッシュ、スクリプトの遅延読み込みを試します。
- グレードは総合評価なので、具体的な指標(LCPやCLS)を優先して改善します。
OctaGate SiteTimer
概要
OctaGate SiteTimerは、表示速度だけを素早く測定するシンプルなツールです。詳細な解析やリソース別の分解は行わず、ページが表示されるまでの時間を知りたい人に向きます。
主な特徴
- 入力したURLの表示完了までの時間を計測します。
- 設定やオプションが少なく、操作が直感的です。
- 結果は限定的で、例えばウォーターフォールやCore Web Vitalsは表示されません。
使い方(具体例)
- サイトのトップページURLを入力します。
- 「測定」ボタンを押します。
- 数秒で読み込み時間が表示されます。
例:測定結果が「2.3秒」ならユーザーは概ね快適に閲覧できます。
利点・欠点
利点:短時間で複数ページを繰り返しチェックしたいときに便利です。操作が簡単で、非技術者でも扱えます。
欠点:何が遅いのかは分かりません。改善施策を考えるには、より詳細なツールが必要です。
実務での使いどころ
会議でのデモや、ページ改修後のざっくりした確認、日々の簡易チェックに向きます。性能の深掘り前のスクリーニングとして有効です。
注意点
- 測定環境(回線や場所)で結果が変わります。複数回測定して平均を取ると安定します。
- 詳細分析が必要なら、LighthouseやGTmetrixなどと併用してください。
多機能なSEO・分析ツール
概要
Semrushのような多機能ツールは、SEO、キーワード調査、被リンク分析、コンテンツ最適化など幅広くサポートします。サイトの速度測定や問題点の検出もでき、マーケティング全体を俯瞰して改善したい方に向いています。
主な機能と具体例
- キーワード調査:競合サイトが狙う語句を把握し、自サイトの狙い目を見つけます。例:検索数や難易度を比較してコンテンツ方針を決める。
- 被リンク分析:リンク元の質を評価し、不要なリンクや獲得すべきサイトを特定します。
- コンテンツ監査:既存ページの改善点を提示し、タイトルやメタ記述の最適化案を出します。
- サイト速度測定:ページの読み込み時間や主要な遅延要因をレポートします。実際の改善策(画像圧縮やキャッシュ設定)も示されることが多いです。
サイト速度計測の使い方(簡単)
- プロジェクトにサイトを登録します。
- 速度チェックを実行し、モバイル・デスクトップ別の結果を確認します。
- 提示された改善点を優先順位順に実施します(まずは画像とキャッシュ)。
利点
- 多面的に解析できるため、速度以外の要因も同時に改善できます。
- レポートが見やすく、施策の優先順位を付けやすいです。
注意点と導入のポイント
- 機能が多いため最初は使いこなしに時間がかかります。まずは速度測定と上位キーワード分析に絞って使うと負担が減ります。
- 有料プランで機能が充実するので、予算に応じてプランを選んでください。
負荷テスト・パフォーマンステストツール
概要
負荷テスト・パフォーマンステストツールは、複数の仮想ユーザーやリクエストを発生させて、WebアプリやAPIの応答性や耐久性を評価します。例えば「同時1000ユーザーでの動作確認」や「APIに毎秒100リクエストを投げる」といった実行が可能です。
主な評価項目
- 応答時間(平均・最大)
- スループット(秒あたり処理数)
- エラー率
- リソース消費(CPU・メモリ)
ツールの違い(分かりやすい例)
- 録画・再生型: ブラウザ操作を記録して再生できます。導入が早く、画面遷移の再現に向きます。
- スクリプト型: 詳細な条件や分岐を組めます。複雑なAPIや認証の試験に適します。
- 実行環境: ローカルから負荷をかけるものと、クラウドで大規模負荷を作るものがあります。
選び方のポイント
1) 目的(負荷試験か長時間耐久か)
2) 想定ユーザー数やリクエスト量
3) 実行環境(ステージングで安全に試せるか)
4) 運用性と予算
テスト設計の基本手順(実例)
1) 目的設定(例:ピーク時応答1秒以内)
2) シナリオ作成(主要画面やAPIを抽出)
3) 環境準備(ステージング、データ)
4) 実行とモニタリング
5) 結果分析と改善対応
実施時の注意
本番環境で直接大きな負荷をかけるとサービスに影響します。ステージングでの検証や時間帯・対象を限定して行ってください。
Apache JMeter
概要
Apache JMeterはJavaベースのオープンソース性能テストツールです。WebアプリやAPI、データベースなどに対して負荷や応答性を測定できます。GUIで設定できるため、初めてでも取り組みやすいです。
主な特徴
- HTTP/HTTPS、SOAP、FTP、JDBCなど多様なプロトコルを扱えます。
- スレッドグループで同時接続数を指定し、負荷を生成します。
- レスポンスアサーションで期待する内容を検証できます。
基本的な流れ(具体例)
- テストプランを作成し、スレッドグループ(同時ユーザー数、ループ回数)を追加します。
- HTTPリクエストサンプラーで対象のURLやメソッドを設定します(例:GET /index.html)。
- リスナーで結果を集計(グラフやサマリ)します。
実用的なポイント
- 実際のユーザー動作を想定し、Think Time(待ち時間)を入れると現実的な負荷になります。
- パラメータ化(CSVデータセット)でログイン名や検索語を変えるとキャッシュ影響を減らせます。
- Cookieやヘッダーを扱うことでブラウザに近い振る舞いを再現します。
拡張と運用
- 大規模負荷は分散テスト(マスター/スレーブ)で対応できます。
- JenkinsなどCIと組み合わせ、定期的に性能チェックを自動化できます。
- Javaが必要で、プラグインにより機能を増やせます。
導入は比較的簡単で、まずは小さなテストを作って結果を見ながら調整していくことをおすすめします。
LoadNinja
概要
LoadNinjaはクラウド上で実際のブラウザを使い、スクリプト作成なしで負荷テストを実行できるツールです。プログラミング知識が少なくても使え、アプリやサイトの表示や動作をユーザー視点で確認できます。
主な特徴
- 実ブラウザによる計測:JavaScript実行やレンダリングを含めた実際の表示速度を測れます。
- レコーディング方式:画面操作を記録してそのままテストシナリオにできます。
- リアルタイム結果:レスポンスタイムやエラー、ブラウザ別の挙動を見やすく表示します。
メリット(例)
ECサイトで「商品閲覧→カート→決済」までを録画し、同時接続100ユーザーで実行すれば、決済ページでの遅延やJSエラーを特定できます。開発者以外でも課題発見が容易です。
使い方の基本手順
- テストしたい操作をブラウザで録画します。
- 仮想ユーザー数や実行地域を設定します。
- テストを実行してダッシュボードで結果を確認します。
- ボトルネックを修正して再テストします。
注意点
ブラウザ実行はコストが高くなる場合があります。ネットワーク条件(モバイルや帯域制限)を設定して実環境に近づけることが大切です。大規模な長時間負荷には専用の負荷ツールと併用すると効果的です。
NeoLoad
概要
NeoLoadはWebアプリケーションやAPIに対して大量のトラフィックをシミュレートし、システムの限界性能やボトルネックを明らかにする負荷テストツールです。複雑なアプリケーション構成やモダンなプロトコル(WebSocket、HTTP/2など)にも対応します。
主な機能
- シナリオ作成:ユーザー操作を記録し再生できます。例:ログイン→検索→購入フローを再現。
- スケーリング:数千〜数万の仮想ユーザーを生成し、段階的に負荷をかけます。
- リアルタイム分析:レスポンスタイムやエラー率、サーバー負荷をグラフで確認できます。
- CI連携:Jenkinsなどと連携して自動化した継続的テストが可能です。
利用シーン(具体例)
- 新機能リリース前にピーク時の応答を検証する。
- APIのスループット限界や遅延を測定する。
- インフラ変更後に性能回帰が無いか確認する。
導入時のポイント
- テスト設計を丁寧に行い、実運用に近いシナリオを用意してください。
- モニタリングと合わせてボトルネック箇所(CPU、DB、ネットワーク)を突き止めます。
- ライセンスや実行環境のリソース計画を事前に確認してください。
簡単な手順
- テストケースを録画してシナリオを作成。
- 仮想ユーザー数と負荷パターンを設定。
- 実行し、メトリクスを収集。
- レポートを確認して改善点を洗い出す。
NeoLoadは複雑な負荷条件でも現実的な検証を行えるため、エンタープライズ向けの性能評価に適しています。
Silk Performer
概要
Silk Performerはモバイル、Web、企業向けアプリケーションのストレス・負荷テストツールです。実運用でのピークトラフィックを模擬して、問題の原因と発生場所を特定します。たとえば、ログインが集中したときの応答遅延やデータベースのボトルネックを見つけられます。
主な特徴
- 複数のプロトコルに対応(HTTP/HTTPSやモバイルAPIなど)
- 実機やクラウドで大規模シナリオを実行可能
- 詳細なレポートでトランザクションごとの遅延を可視化
- スケールテストでピーク時の安定性を確認
利用シーン
- 新機能公開前の負荷検証
- セールやキャンペーンでアクセスが急増するサイトの準備
- モバイルアプリとバックエンド両方の負荷評価
導入時の注意点
初期設定やスクリプト作成には経験があるとスムーズです。小規模の試験で勘所を掴んでから大規模に展開すると安定します。ライセンス費用やテスト用インフラの負荷も事前に見積もってください。
簡単なテストの流れ
- テスト対象とシナリオを決める(例:ログイン、一覧取得)
- スクリプトを作成して仮想ユーザー数を設定
- 小規模で実行し計測項目を調整
- 本番想定の負荷で実行し結果を分析
Loadster
概要
Loadsterはウェブアプリケーション向けの負荷テストツールです。大規模な同時接続や長時間の負荷を扱い、応答遅延やスループットのボトルネック特定に役立ちます。実運用に近い条件で性能を確認したいときに向いています。
主な機能
- シナリオ録画と編集:ブラウザ操作やAPI呼び出しを記録してテストシナリオにできます。具体例として、ログイン→検索→詳細表示といったユーザー操作を再現します。
- 分散実行:複数の発生源から同時に負荷をかけることで、大きなトラフィックを再現します。
- リアルタイム監視:応答時間、エラー率、スループットなどをグラフで確認できます。
使い方の流れ
- シナリオを録画または手動で作成します。APIテストならエンドポイントを設定します。
- ユーザー数や負荷の上げ方(段階的、一定など)を設定します。
- テストを実行して結果を確認します。問題があればシナリオや環境を調整して再試行します。
計測できる指標
代表的な指標は平均・中央値の応答時間、95/99パーセンタイル、エラー率、リクエスト/秒(RPS)です。これらを組み合わせて性能の傾向を把握します。
テスト設計のポイント
実運用に近いデータと遷移を使うこと、前提条件(キャッシュやDBの状態)を揃えることが重要です。小規模から段階的に増やしてボトルネックを確認してください。
導入時の注意点
負荷テストはインフラや外部APIに影響を与えます。テスト実施前に関係者へ通知し、必要ならステージング環境で行ってください。












