Core Web Vitals 2026年の基準
| 指標 | Good | Needs Improvement | Poor |
|------|------|-------------------|------|
| LCP | ≤ 2.5秒 | 2.5〜4.0秒 | > 4.0秒 |
| INP | ≤ 200ms | 200〜500ms | > 500ms |
| CLS | ≤ 0.1 | 0.1〜0.25 | > 0.25 |
LCP(Largest Contentful Paint)の改善
LCPは、ページのメインコンテンツ(最大の要素)が表示されるまでの時間です。ECサイトでは商品メイン画像がLCP要素になることが多いです。
改善1 画像の最適化
効果:最高ECサイトのLCP改善で最も効果が大きいのは画像最適化です。
実施手順:- LCP要素をChrome DevToolsの Performance タブで特定
- 画像フォーマットをWebP/AVIFに変換(JPEG比で30-50%削減)
srcsetで適切なサイズの画像をデバイスに応じて配信- LCP画像に
fetchpriority="high"を付与 - LCP画像には
loading="lazy"を付けない(遅延読み込みはLCPを悪化させる)
<!-- LCP画像の推奨記述 -->
<img
src="product-800.webp"
srcset="product-400.webp 400w, product-800.webp 800w, product-1200.webp 1200w"
sizes="(max-width: 768px) 100vw, 50vw"
fetchpriority="high"
alt="商品名 カラー"
width="800"
height="800"
>
改善2 サーバーレスポンスタイム(TTFB)の短縮
効果:高TTFBが遅いと、どれだけフロントエンドを最適化してもLCPは改善しません。
改善ポイント:- CDNの導入(Cloudflare, Fastly等)
- サーバーサイドキャッシュの有効化
- データベースクエリの最適化
- 不要なリダイレクトの排除
改善3 レンダリングブロックリソースの排除
効果:中内の同期的なCSS/JSが、コンテンツの表示を遅延させます。
- クリティカルCSSをインラインに記述し、残りは非同期読み込み
- サードパーティスクリプト(GTM, チャット, 広告タグ)は
asyncordefer - フォント読み込みに
font-display: swapを指定
INP(Interaction to Next Paint)の改善
INPは、ユーザーの操作(クリック・タップ・キー入力)に対するページの応答速度です。ECサイトでは「カートに追加」ボタンのタップ反応が最も重要です。
改善4 メインスレッドのブロック解消
効果:最高長時間のJavaScript実行がメインスレッドをブロックすると、ユーザーの操作に対する応答が遅れます。
よくある原因:- サードパーティスクリプト(GTM, A/Bテスト, レコメンドエンジン)の同時読み込み
- 大量のDOM操作(商品一覧の描画)
- 同期的なAPI呼び出し(在庫チェック、価格計算)
- Long Taskを50ms以下に分割(
requestIdleCallbackorscheduler.yield()) - 非表示の商品カードは
content-visibility: autoで描画を遅延 - サードパーティスクリプトの
async化と優先順位の見直し
改善5 イベントハンドラの最適化
効果:中「カートに追加」ボタンのクリックハンドラ内で重い処理を実行していないか確認してください。
- DOM更新は最小限に(変更された要素だけ再描画)
- アニメーションは CSS transition に委任(JSで制御しない)
- 在庫確認APIは楽観的更新(UIを先に更新、APIレスポンスで補正)
CLS(Cumulative Layout Shift)の改善
CLSは、ページ読み込み中にレイアウトがどれだけ「ずれる」かの指標です。ECサイトでは商品画像の読み込みやバナーの遅延表示が主な原因です。
改善6 画像・動画にwidth/height属性を設定
効果:最高![]()
とにwidthとheight属性を明示的に設定してください。ブラウザは読み込み前にアスペクト比を計算し、適切なスペースを確保します。
<!-- ❌ CLSの原因 -->
<img src="product.jpg" alt="商品">
<!-- ✅ CLS防止 -->
<img src="product.jpg" alt="商品" width="800" height="800">
改善7 動的に挿入されるコンテンツの制御
効果:中以下の要素が遅れて挿入されると、既存コンテンツを押し下げてCLSが発生します:
- ヘッダーの告知バー(「本日送料無料」等)
- クッキー同意バナー
- レビュー表示ウィジェット
- 広告枠
min-height)で事前に確保するか、コンテンツの上部ではなく下部やオーバーレイとして表示してください。
改善の優先順位
すべてを一度に改善する必要はありません。以下の順序で進めてください:
- LCP画像の最適化(fetchpriority + WebP) — 最小の工数で最大の効果
- width/height属性の追加 — CLSの即効性ある改善
- サードパーティスクリプトの整理 — LCPとINP両方に効く
- メインスレッド最適化 — INPの根本対策
- TTFB改善 — インフラレベルの最適化
まとめ
Core Web Vitalsは「一度改善したら終わり」ではありません。新しい機能の追加、サードパーティスクリプトの更新、コンテンツの変化によって、スコアは常に変動します。
月次でスコアを測定し、悪化が見られたら原因を特定して対処する継続的な運用が求められます。
PagePulseは、LCP・INP・CLSの実測値をワンクリックで取得し、改善すべきポイントを優先度付きで表示します。定期チェックの習慣化に最適なChrome拡張です。