なぜあなたのアナリティクスプラグインがサイトを遅くしているのか
アナリティクススクリプトはすべてのページロードにオーバーヘッドを追加します。プラグインの影響を確認する方法、なぜ一部のプラグインが速いかについて研究が示すこと、自分のサイトで計測する方法をご紹介します。
アナリティクスプラグインがあなたのランキングを犠牲にしているかもしれない
すべての WordPress サイトオーナーがアナリティクスプラグインをインストールします。ほとんどの人は、そのプラグインがページ速度に何をしているかを考えません。しかし Google は考えています。
2021 年以降、Google はランキングシグナルとして Core Web Vitals を使っています。3 つの指標の 1 つ、Largest Contentful Paint (LCP) は、メインコンテンツがどれだけ素早く表示されるかを計測します。レンダリングをブロックするスクリプトを追加するアナリティクスプラグインは、LCP を「良好」(2.5 秒未満) から「改善が必要」へ押し上げる可能性があります。1 ページ目と 2 ページ目のランキングの差が、数百ミリ秒で決まることがあります。
私たちは合成ストレステスト (並行負荷、ページキャッシュなし) で 8 つの人気 WordPress アナリティクスプラグインをベンチマークし、LCP オーバーヘッドに大きな差があることを発見しました。最も軽いアーキテクチャは 〜260ms、サーバー側書き込みパスが負荷下で劣化するプラグインは 3 秒超でした。これらの数値は本番運用の保証ではありません — キャッシュなしの 1 回の合成テストを反映したものですが、明らかにするアーキテクチャ的なパターンは公開されたウェブパフォーマンス研究と整合します。
Core Web Vitals が計測するものと、それが重要な理由
Google はサイトのすべてのページで 3 つの指標を評価します。
Largest Contentful Paint (LCP) はメインコンテンツが見えるようになる時点を計測します。Google は 2.5 秒未満を「良好」と見なします。レンダリングをブロックするアナリティクススクリプトはこの数値を押し上げます。
Interaction to Next Paint (INP) はクリックやタップに対するサイトの反応の速さを計測します。アナリティクスプラグインの重い JavaScript は、ユーザー操作に対するブラウザの反応を遅らせる可能性があります。
Cumulative Layout Shift (CLS) は視覚的な安定性を計測します。アナリティクススクリプトがレイアウトシフトを引き起こすことはまれですが、不適切に読み込まれたスクリプトは他の要素が所定の位置にレンダリングされるのを遅らせる可能性があります。
Core Web Vitals に失敗するページが自動的にランキングを失うわけではありません。しかし 2 つのページが同じキーワードで似たコンテンツ品質と争うとき、速いページに優位性があります。e コマースサイトにとっては、影響は SEO を超えます — 読み込み時間が 100ms 改善されるとセッションあたりのコンバージョンが最大 1.11% 増加し得ます。
アナリティクススクリプトがページを遅くする仕組み
アナリティクスプラグインをインストールすると、典型的にはサイトのすべてのページに JavaScript が追加されます。その JavaScript は訪問者のブラウザでダウンロード、パース、実行されなければなりません。パフォーマンスコストは 3 つの要素に依存します。
スクリプトサイズ。 Google Analytics 4 の gtag.js は 134KB の圧縮済みです。Koko Analytics のようなプライバシー重視の代替は 468 バイトです。パース時間の差は意味があり、特に JavaScript 処理がデスクトップより 2〜5 倍遅いモバイルデバイス上で顕著です。
読み込み戦略。 async または defer 属性なしで読み込まれるスクリプトは、終了するまでブラウザが任意のコンテンツをレンダリングするのをブロックします。これは「render-blocking」と呼ばれ、アナリティクスプラグインの単一最大のパフォーマンスキラーです。
データ送信メソッド。 一部のプラグインは追跡データを送信するために同期 XMLHttpRequest を使います — これはメインスレッドをブロックします。最新のプラグインは navigator.sendBeacon() を使い、これは fire-and-forget でユーザー操作を決してブロックしません。
データ: ストレステストでの 8 アナリティクスプラグインの比較
私たちは WooCommerce 入りの WordPress 6.9 サイトで、本物の Chromium ブラウザを使い、50 並列 HTTP ユーザーがサーバーにストレスをかけながら、各プラグインを分離してテストしました。ページキャッシュはインストールされていません — すべてのリクエストが完全な WordPress PHP パスにヒットしました。これは本番 WordPress サイトの典型的な運用ではありませんが、各プラグインのアーキテクチャが競合をどう扱うかを明らかにします。当社の単一実行テストでの LCP オーバーヘッド順:
| プラグイン | テストでの LCP オーバーヘッド | アーキテクチャ |
|---|---|---|
| Statnive | +260ms | インラインコア + 非同期外部 |
| Independent Analytics | +566ms | サーバー側 PHP フック |
| Jetpack Stats | +776ms | リモート (WordPress.com) |
| MonsterInsights (GA4) | +964ms | 外部 134KB gtag.js |
| WP Slimstat | +1030ms | 外部スクリプト + REST |
| WP Statistics | +1424ms | 外部スクリプト + admin-ajax |
| Koko Analytics | +2278ms | 468B インライン + リクエストごとの DB 書き込み |
| Burst Statistics | +3592ms | 非同期外部 + Beacon API |
これらの数値を読みすぎる前の重要な注意点:
- これは開発マシン上、ページキャッシュなしの 1 回限りの実行です。 W3TC、WP Rocket、または Cloudflare キャッシュを使う本番サイトでは、キャッシュされたページがプラグインの PHP コードを実行しないため、差は劇的に小さくなります。
- Koko Analytics と Burst Statistics の非常に大きな差は怪しい。 これらはおそらく合成負荷中にトリガーされた特定のサーバー側書き込み競合の問題 (データベース書き込みのシリアライズ、WP-Cron バッチ処理) を反映しており、定常状態のオーバーヘッドではありません。これらを「Koko と Burst はあなたのサイトを 2〜3 秒遅くする」と扱わないでください — 通常のサイトではそうなりません。
- 一般化されるのはアーキテクチャパターンであり、特定のミリ秒ではありません。インラインコアトラッカー、非同期読み込み、Beacon API トランスポート、並行安全な書き込みパスは、Google、WordPress Core、web.dev からの研究に裏打ちされた文書化されたベストプラクティスです。任意のテストの具体的な数値は変動します。
モバイル 3G 接続では、JavaScript のオーバーヘッドはより重要です。モバイルプロセッサではパースとコンパイル時間が 2〜5 倍長いので、軽量なトラッカーアーキテクチャの選択は、どのサーバーで動かしてもモバイルユーザーを助けます。
Statnive に切り替えよう: パフォーマンスペナルティゼロ、フルアナリティクス
Statnive の 1.1KB インライントラッカーは、外部スクリプトが読み込まれる前にページビューを発火させます。すべてのデータは WordPress サーバーに留まり、クッキーも同意バナーもありません。WordPress.org から無料インストール。
自分のサイトのアナリティクスオーバーヘッドを確認する方法
私たちの言葉を信じる必要はありません。アナリティクスプラグインのパフォーマンス影響を自分のサイトで計測する 3 つの方法を紹介します。
方法 1: Google PageSpeed Insights
pagespeed.web.dev に行き、URL を入力して「Diagnostics」セクションを確認してください。「Reduce JavaScript execution time」または「Remove render-blocking resources」の下にあなたのアナリティクススクリプトがあるか探してください。アナリティクス JS がそこに表れているなら、スコアを傷つけています。
方法 2: Chrome DevTools Performance タブ
Chrome DevTools (F12) を開き、Performance タブに移動し、ページロードを記録します。フレームチャートでアナリティクススクリプト名を検索してください。実行ブロックの幅が、それがどれだけのミリ秒を費やしているかを正確に示します。これを総ページロード時間と比較してください。
方法 3: 無効化して比較
最も信頼できるテスト: アナリティクスプラグインを有効化した状態で PageSpeed Insights を実行し、LCP スコアを記録し、その後一時的にプラグインを無効化して再テストします。差があなたのプラグインの正確なパフォーマンスコストです。
高速なアナリティクスプラグインで何を探すか
パフォーマンスを念頭にアナリティクスプラグインを選ぶなら、次の特徴を優先してください。
非同期または遅延スクリプト読み込み。 プラグインは WordPress 6.3 のネイティブ strategy パラメータを使うか、トラッカースクリプトに async/defer 属性を追加すべきです。これらの属性のないスクリプトはレンダリングをブロックします。
小さなスクリプトサイズ。 圧縮で 5KB 未満が目標です。50KB を超えるとモバイルデバイスで計測可能なパース時間を加えます。Google Analytics 4 は 134KB です — それがプライバシー重視の代替が常に上回る理由です。
データ送信用の Beacon API。 navigator.sendBeacon() はページをブロックせずにデータを送信します。同期 XMLHttpRequest や admin-ajax を使う古いプラグインは不要なメインスレッド作業を加えます。
セルフホスト型のデータ処理。 外部サーバー (Google Analytics、Jetpack) にデータを送るプラグインはサードパーティの JavaScript ライブラリの読み込みを必要とします。Statnive、Koko Analytics、WP Statistics のようなセルフホスト型プラグインは独自の軽量トラッカーだけを読み込みます。
クッキーや localStorage なし。 クッキーをセットするプラグインは以降のすべてのリクエストに HTTP ヘッダーオーバーヘッドを加えます。Statnive のようなクッキーレスプラグインはこれを完全に避け、同時に同意バナーの必要性も排除します。
よくある質問
アナリティクスプラグインを無効化すると、本当に Core Web Vitals は改善されますか
ほとんどの場合、はい — ただしその大きさはキャッシュ設定に大きく依存します。ページキャッシュなしでは、すべてのリクエストがプラグインの PHP コードを走り、影響は重大になります。適切に設定されたページキャッシュがあれば、PHP オーバーヘッドの大半が消え、クライアント側の JavaScript コストだけが残ります — 適切に設計されたトラッカーでは、非同期で読み込まれる数キロバイトです。「私のプラグインはどれくらいかかる?」への本当の答えは: 自分の本番サイトで自分の計測を実行することです。
Google Analytics を保ちながら良好な Core Web Vitals を持てますか
サイトの残りが 〜100ms のオーバーヘッドを吸収できるほど速ければ、はい。しかしすでに Core Web Vitals でぎりぎりなら、より軽い代替に切り替えることで、サイトの他の部分を変えずに「良好」の範囲に押し上げることができます。
サーバーサイド追跡はパフォーマンスに優れていますか
サーバーサイド追跡 (PHP が JavaScript ではなくヒットを処理するもの) は、クライアント側 JavaScript のパース時間を完全に排除します — パースコストが支配的なモバイルでは本物の利点です。しかし、サーバー処理時間 (TTFB) を加え、キャッシュなしの並行負荷下でボトルネックになる可能性があります。ハイブリッドアプローチ — 最小限のインライン JavaScript + 軽量な REST エンドポイント — が両方のベストを与えます。クリティカルヒットのパースコストなし、リクエストあたりの最小のサーバー作業です。
アナリティクスプラグインは特にモバイルユーザーにどれくらい影響しますか
モバイルへの影響は不釣り合いに高いです。中程度の Android スマホでの JavaScript パースはデスクトップより 2〜5 倍長くかかります。デスクトップで 50ms のパース時間を加えるスクリプトは、モバイルで 100〜250ms を加えるかもしれません。これがモバイル Core Web Vitals でスクリプトサイズと非同期読み込みが最も重要な理由です。
結論
アナリティクスプラグインはサイトのすべてのページで作業をしています。どれだけかは 3 つに依存します: プラグインのアーキテクチャ (インライン vs ブロッキングスクリプト、同期 vs 非同期、ローカル vs リモート処理)、キャッシュ設定 (構成されると PHP オーバーヘッドを劇的に減らす)、そしてホスティング (負荷下で TTFB に影響)。よく設計されたアーキテクチャのプラグインを選び、ページキャッシュを構成し、自分のサイトで計測してください。アナリティクス精度とページ速度の間で選ぶ必要はありません — しかし当社のものを含め、単一のベンチマークを信頼すべきでもありません。
完全なストレステスト比較を読み、Statnive のトラッカーをどう最適化したかを学ぶか、Statnive と Google Analytics、Jetpack Stats、他のプラグインを比較してください。