メインコンテンツへスキップ
無料15 minutes中級

Core Web Vitalsモニタリング

Core Web Vitalsを監視・最適化しましょう — LCP、INP、CLS で、より良いユーザー体験と SEO を実現します。このエラー追跡ガイドでパフォーマンス最適化について学びます。

performancecore-web-vitalslcpinpcls
最終更新日:

Google の Core Web Vitals を監視して、ユーザー体験と検索ランキングを改善します。

Zenovay の Performance タブに表示される Core Web Vitals — LCP、CLS、INP、FCP、TTFB。
Core Web Vitals(LCP、CLS、INP)は実訪問者から自動的に収集され、「良好」「改善が必要」「不良」の評価で表示されます。

Core Web Vitals とは?

Core Web Vitals は、ユーザー体験を測定するための Google のメトリクスです:

メトリクスフルネーム測定項目良好改善が必要不良
LCPLargest Contentful Paint読み込み≤2.5s2.5–4s>4s
INPInteraction to Next Paintインタラクティブ性≤200ms200–500ms>500ms
CLSCumulative Layout Shift視覚的安定性≤0.10.1–0.25>0.25

重要な理由

  • SEO への影響: Google は CWV をランキング シグナルとして使用します
  • ユーザー体験: エンゲージメントとコンバージョンと相関します
  • パフォーマンス予算: 測定可能な目標を設定します

CWV モニタリングを有効化する

Core Web Vitals の収集は、Free を含むすべてのプランで既定で有効です。 トラッキング スクリプトがロードされていれば、トラッカーは LCP・CLS・INP・FCP・TTFB をすべての実訪問セッションから計測し、訪問者がページを離れる瞬間にちょうど 1 回ビーコンを送信します。

標準のスクリプト タグだけで十分です:

<script
  defer
  data-tracking-code="YOUR_TRACKING_CODE"
  src="https://api.zenovay.com/z.js"
></script>

追加属性もスクリプトの変更も不要です。トラッカーが実際に発火しているか確認したい場合は、サイトの設定から Install Health タブを開いてください。

特定サイトで無効化する(上級)

特定のトラッキング対象サイトを CWV 収集から除外したい場合は、そのサイトの設定で enable_core_web_vitals 機能フラグを false にしてください。既定で全員が有効のため、アプリ内のトグルはありません — [email protected] でサポートに連絡してください。

ダッシュボード概要

CWV サマリー

サイトのダッシュボードを開き、Performance タブを選択します (サイドバーの BEHAVIOR グループ下):

Core Web Vitals 概要

LCP    ████████████████░░░░ 2.1s  ✓ 良好
INP    ██████████████████░░ 156ms ✓ 良好
CLS    ████████████████████ 0.05  ✓ 良好

P75 スコア

ツールバーを使用してパーセンタイル (P75、P90、P95、P99) を切り替えたり、デバイス (すべて、デスクトップ、モバイル) でフィルタリングしたり、時間範囲 (24 時間、7 日、30 日、90 日) を変更したりできます。

スコア分布

各メトリクス タイルは、選択したパーセンタイルの「良好/改善が必要/不良」のしきい値全体に対する訪問の分布を表示します:

評価LCPINPCLS
良好65%72%85%
改善が必要25%20%10%
不良10%8%5%

Largest Contentful Paint (LCP)

測定内容

最大のコンテンツ要素が表示されるまでの時間:

  • 画像
  • ビデオのサムネイル
  • 背景画像
  • テキスト ブロック

ダッシュボードの LCP

  • 時系列トレンド: 選択した範囲全体での選択パーセンタイルの LCP
  • ページごと: 最も遅いルート
  • デバイスごと: デスクトップ対モバイル
  • 地理別: 国/地域別の LCP のコロプレス マップ
  • 問題のある要素: LCP として測定された特定の要素

LCP の一般的な問題

問題影響解決策
サーバー応答が遅いTTFB を最適化、CDN を使用
レンダリングをブロックするリソース重要でない CSS/JS を遅延ロード
大きな画像最適化、WebP を使用、遅延読み込み
クライアント側レンダリングSSR、プリレンダリング
サードパーティ スクリプト非同期読み込み、不要な削除

LCP の改善

画像最適化:

<!-- LCP 画像をプリロード -->
<link rel="preload" as="image" href="hero.webp">

<!-- レスポンシブ画像 -->
<img
  src="hero.webp"
  srcset="hero-400.webp 400w, hero-800.webp 800w, hero-1200.webp 1200w"
  sizes="100vw"
  loading="eager"
  fetchpriority="high"
/>

リソース ヒント:

<!-- 重要なオリジンへの事前接続 -->
<link rel="preconnect" href="https://cdn.example.com">
<link rel="dns-prefetch" href="https://api.example.com">

Interaction to Next Paint (INP)

測定内容

ユーザー インタラクションへの応答性:

  • クリック
  • タップ
  • キー押下

INP はインタラクションから次の視覚的更新までの時間を測定します。

ダッシュボードの INP

  • INP スコア: 選択したパーセンタイル (既定は P75)
  • ページごと: インタラクティブ性の最も遅いルート
  • デバイスごと: デスクトップ対モバイル

INP の一般的な問題

問題影響解決策
長い JavaScript タスクタスクを分割、Web Worker を使用
大きい DOMリストを仮想化、構造を簡素化
重いイベント ハンドラーデバウンス、ハンドラーを最適化
レイアウト スラッシングDOM 読み取り/書き込みをバッチ処理
サードパーティ スクリプト遅延読み込み、分離

INP の改善

長いタスクを分割:

// 前: 長い同期タスク
function processLargeArray(items) {
  items.forEach(item => expensiveOperation(item));
}

// 後: メイン スレッドにイールド
async function processLargeArray(items) {
  for (const item of items) {
    expensiveOperation(item);
    // レンダリングを許可するためにイールド
    await new Promise(r => setTimeout(r, 0));
  }
}

requestIdleCallback を使用:

function runWhenIdle(callback) {
  if ('requestIdleCallback' in window) {
    requestIdleCallback(callback, { timeout: 2000 });
  } else {
    setTimeout(callback, 100);
  }
}

Cumulative Layout Shift (CLS)

測定内容

視覚的安定性 - コンテンツの予期しないシフト量:

  • ディメンションなしで読み込まれる画像
  • サイズが変更される広告/埋め込み
  • 動的コンテンツ挿入
  • Web フォント読み込み

ダッシュボードの CLS

  • CLS スコア: 選択したパーセンタイル (既定は P75)
  • ページごと: シフトが最も多いページ
  • デバイスごと: デスクトップ対モバイル

CLS の一般的な問題

問題影響解決策
ディメンションなしの画像常に幅/高さを設定
予約スペースなしの広告プレースホルダー コンテナーを使用
折り目上の動的コンテンツスペースを予約、変換を使用
Web フォント読み込みfont-display: swap を使用
後から読み込まれる埋め込みスペースを予約、遅延読み込み

CLS の改善

画像用スペースを予約:

<!-- 常にディメンションを含める -->
<img src="photo.jpg" width="800" height="600" alt="Photo">

<!-- またはアスペクト比を使用 -->
<style>
.image-container {
  aspect-ratio: 16 / 9;
}
</style>

広告用スペースを予約:

.ad-slot {
  min-height: 250px;
  background: #f0f0f0;
}

フォント読み込み戦略:

@font-face {
  font-family: 'CustomFont';
  src: url('font.woff2') format('woff2');
  font-display: swap;
}

ページレベルの分析

ページごとのドリルダウン

Performance タブにはルート別の内訳が含まれており、どのページがメトリクスを低下させているかを確認できます:

  1. Performance タブを開く
  2. ページ別の内訳までスクロール
  3. 最悪の結果を見つけるために並べ替え
  4. 問題のある要素パネルを使用して、何が LCP として測定されているかを確認

ページ パフォーマンス カード

/products/widget

LCP:  2.8s   ⚠ 改善が必要
INP:  145ms  ✓ 良好
CLS:  0.18   ⚠ 改善が必要

問題のある要素:
• LCP 要素:   img.hero-banner
• CLS ソース:    .reviews-widget
• INP ターゲット:     button.add-to-cart

サンプル: 12,450

問題のある要素パネルには、LCP として測定された特定のページ要素、レイアウト シフトの最大ソース、および最も遅い INP でユーザーが操作した要素が表示されます。これらの CSS セレクターは、修正すべき内容を直接指します。

セグメンテーション

デバイスタイプ別

Performance タブ全体をデバイスでフィルタリング (すべて、デスクトップ、モバイル):

デバイス     LCP      INP     CLS
デスクトップ 2.0s     120ms   0.05
モバイル     3.2s     210ms   0.12

地理別

コロプレス マップは、国/地域別の CWV スコアを表示して、CDN またはサーバーの場所の問題を特定するのに役立ちます:

地域        LCP      INP     CLS
北米        2.1s     140ms   0.05
ヨーロッパ  2.4s     150ms   0.06
アジア      3.6s     180ms   0.08

アラートとレポート

Zenovay の自動アラートは、メトリクスあたりの Web Vital しきい値ではなく、異常検出とトラフィック スパイクをカバーしています。全体的なパフォーマンスの変化について通知を受け取り、定期的な概要をスケジュールするには、専用のパフォーマンス アラートガイドを参照してください。

他のツールとの統合

Google Search Console

Zenovay データと GSC を比較:

  • Zenovay: リアル ユーザー データ (RUM)
  • GSC: ラボ データ + フィールド データ

Lighthouse

Lighthouse 監査を実際のデータと関連付けます。

PageSpeed Insights

監視には Zenovay、推奨事項には PageSpeed を使用します。

履歴比較

トレンド分析

  • 24h、7d、30d、90d の範囲を比較
  • 時間経過に伴う改善を確認
  • トレンドとデプロイ日付を相関させる
  • 目標に向かって追跡

ベストプラクティス

監視戦略

  1. ベースラインを設定: 現在のパフォーマンスを把握
  2. 目標を定義: 業界/競合に基づく
  3. 継続的に監視: 1 回限りの監査ではなく
  4. セグメント化された分析: モバイルはしばしば劣っています
  5. 修正を優先順位付け: 影響対努力

パフォーマンス予算

メトリクス   現在     目標     予算
LCP         2.8s     2.0s     ✗ 超過
INP         150ms    150ms    ✓ 目標通り
CLS         0.08     0.1      ✓ 目標以下

定期的なレビュー

  • 週単位: 回帰をチェック
  • 月単位: 詳細な分析
  • 四半期: 戦略的計画

トラブルシューティング

データが表示されない

確認:

  • スクリプトが正しくインストールされている (サイトの設定から Install Health タブを使用して、トラッカーが発火していることを確認)
  • Core Web Vitals 収集がサイトで無効にされていない (既定で有効 — 上記の「特定サイトで無効化する」を参照)
  • トラフィックが十分である (実際のユーザーが必要)

予期しない値

以下を考慮:

  • ボット トラフィックがデータをスキュー
  • 開発/ステージング トラフィック
  • ブラウザー サポートの違い

ラボ データとの不一致

正常 — RUM キャプチャ:

  • 実際のネットワーク条件
  • 実際のデバイス パフォーマンス
  • 実際のユーザー動作
  • 地理的分布

次のステップ

この記事は役に立ちましたか?