Core Web Vitals

Google が定義した Web ページのユーザー体験を測定する 3 つの指標 (LCP, INP, CLS)

パフォーマンスSEO

Core Web Vitals とは

Core Web Vitals は、Google が定義した Web ページのユーザー体験を測定する 3 つの指標である。Google 検索のランキング要因に含まれており、SEO に直接影響する。

3 つの指標

指標 測定対象 良好 要改善 不良
LCP (Largest Contentful Paint) 最大コンテンツの表示速度 ≤ 2.5 秒 ≤ 4.0 秒 > 4.0 秒
INP (Interaction to Next Paint) インタラクションの応答速度 ≤ 200 ミリ秒 ≤ 500 ミリ秒 > 500 ミリ秒
CLS (Cumulative Layout Shift) レイアウトのずれ ≤ 0.1 ≤ 0.25 > 0.25

LCP の改善

LCP は「ページの主要コンテンツが表示されるまでの時間」。

<!-- ✅ LCP 要素 (ヒーロー画像) を優先読み込み -->
<img src="hero.webp" fetchpriority="high" alt="Hero" />

<!-- ✅ プリロードで早期取得 -->
<link rel="preload" as="image" href="hero.webp" />

画像を WebP/AVIF に変換してファイルサイズを 30〜50% 削減する、fetchpriority="high" で LCP 要素を優先取得する、CDN (CloudFront) でレイテンシを削減する、SSG/SSR でサーバーで HTML を生成するといった改善策がある。

INP の改善

INP は「ユーザーの操作 (クリック、タップ) から画面が更新されるまでの時間」。

// ❌ メインスレッドをブロック
button.onclick = () => {
  const result = heavyComputation(); // 500ms ブロック
  updateUI(result);
};

// ✅ Web Worker で分離
button.onclick = () => {
  worker.postMessage(data);
};
worker.onmessage = (e) => updateUI(e.data);

CLS の改善

CLS は「ページ読み込み中にレイアウトがずれる量」。

/* ✅ 画像のサイズを事前に確保 */
img { width: 100%; aspect-ratio: 16 / 9; }

/* ✅ フォントの読み込みでレイアウトがずれない */
@font-face {
  font-family: 'MyFont';
  src: url('font.woff2');
  font-display: swap;
  size-adjust: 100%;
}

測定ツール

ツール 種類 データ
PageSpeed Insights ラボ + フィールド CrUX データ
Chrome DevTools (Lighthouse) ラボ シミュレーション
web-vitals (npm) フィールド 実ユーザーデータ
Search Console フィールド CrUX データ

CloudFront での最適化

Brotli 圧縮で HTML/CSS/JS のサイズを削減し、HTTP/2 で並列リクエストを実現する。キャッシュで TTFB を短縮し、エッジロケーションでレイテンシを削減する。

全体像を把握するには関連書籍も有用。

関連用語