2 KBのアナリティクストラッカーでCore Web Vitalsを緑のまま保つ方法
従来のアナリティクススクリプトは、Lighthouseスコアを動かすほど重くなっています。軽量なトラッカーが何を違うやり方で行っているのか、そしてそれが実際のユーザーにとってなぜ重要なのかをご紹介します。
Core Web Vitalsは現在、検索順位のシグナルとなっています。遅いアナリティクススクリプトはもはや単なる不便ではなく、SEOへの直接的な打撃であり、低速回線の訪問者全員の体験を損なうものです。サイトの劣化を招くスクリプトでサイトのトラフィックを計測するという皮肉は、現実のものとなっています。
従来のアナリティクススクリプトが奪うもの
Google Analytics 4のグローバルサイトタグは、転送サイズで約45 KBあります。読み込み時に複数のネットワークリクエストを発生させます。collect.jsへ、計測プロトコルへ、そして時には追加の機能スクリプトへも。4Gモバイル端末では、ページがインタラクティブになるまでに計測可能な遅延が生じます。
影響は3つの形で現れます。第一に、スクリプトのリクエスト自体がコンテンツとネットワーク帯域を奪い合います。第二に、同期実行はメインスレッドをブロックします。第三に、後続のアナリティクスイベント(セッション開始、page_view、エンゲージメント)ごとに追加のアウトバウンドリクエストがトリガーされます。
軽量トラッカーが計算式を変える方法
Monoidのトラッカーはminify・gzip後で2 KB未満です。素のasync属性で読み込まれるため、ブラウザはHTMLのパースやレンダリングをブロックせずにバックグラウンドでダウンロードします。スクリプトはクリティカルレンダリングパスに乗らないため、Largest Contentful Paintは影響を受けません。
ページビューが発火すると、トラッカーはコレクションエンドポイントへ単一のPOSTを送信します。
fetch('/collect', {
method: 'POST',
keepalive: true,
body: JSON.stringify({ site_id, path, referrer, ... })
})
keepalive: trueフラグが鍵となる詳細です。これはユーザーがリクエスト完了前に画面遷移してもブラウザにリクエストを生かし続けるよう指示します。navigator.sendBeacon APIと同じ仕組みですが、完全なJSONサポート付きです。ナビゲーションをブロックすることなく、信頼性の高い配信が得られます。
3つのCore Web Vitalsをひとつずつ
Largest Contentful Paint (LCP) はメインコンテンツが表示されるタイミングを計測します。クリティカルパスにないasyncスクリプトはLCPを一切遅らせません。トラッカーはDOM操作を行わず、画像も読み込みません。
Interaction to Next Paint (INP) はユーザー入力への応答性を計測します。トラッカーのイベントリスナーは読み取り専用で軽量です。SPAナビゲーション用のpopstateリスナーがひとつあるだけ。長いタスクもレイアウトのスラッシングもありません。
Cumulative Layout Shift (CLS) は予期しないレイアウト移動を計測します。トラッカーはDOMに要素を追加しないため、レイアウトシフトへの寄与はゼロです。
Lighthouse監査の実行
差を定量化したい場合は、トラッカー追加前後のページでLighthouse監査を実行してください。Performanceスコアに変化は見られないはずです。トラッカーはネットワークウォーターフォール上で遅延ロードされるasyncスクリプトとして現れます。小さく、速く、クリティカルパスの外にあります。
これをGA4の監査と比較してみてください。Lighthouseはアナリティクスタグをしばしば「サードパーティコードの影響を減らす」のもとでフラグ付けし、スレッドブロッキング時間への寄与を報告します。
パフォーマンスはプライバシーの議論でもある
スクリプトの重量とプライバシーの間には、はっきり述べる価値のある関連があります。重いアナリティクススクリプトが重いのは、それだけ多くのことをしているからです。より多くのトラッキング、より多くの端末識別、より多くの行動プロファイリング。2 KBのトラッカーが小さいのは、必要なものだけを収集しているからです。ページビューあたりのわずかな非個人シグナル。大まかなブラウザファミリーと端末タイプは、リクエストのUser-Agentからサーバー側で導出され、完全なUser-Agent文字列、ブラウザバージョン、クッキー、永続識別子、デバイスフィンガープリントが保存されることは一切ありません。
軽量なアナリティクスを選ぶことはパフォーマンスと洞察のトレードオフではありません。従来ツールにおける余分な重量は、おそらく頼んでもいないデータ収集に由来していることを認識することです。