ページ速度改善の方法 — Core Web Vitals(LCP・INP・CLS)をコードで最適化

ページ速度改善とは、Webページの表示速度を最適化してユーザー体験とコンバージョン率を向上させるCRO施策です。Googleの調査によると、ページの読み込みが1秒から3秒に増えると直帰率が32%増加し、5秒では90%増加します。

ページ速度の改善はフロントエンドのコード最適化が中心で、すべてコードで対応できます。この記事では、Core Web Vitalsの3指標を改善する具体的な手法を解説します。


Core Web Vitalsの3指標と目標値

指標正式名称良好改善が必要不良
LCPLargest Contentful Paint2.5秒以内2.5〜4.0秒4.0秒超
INPInteraction to Next Paint200ms以内200〜500ms500ms超
CLSCumulative Layout Shift0.1以下0.1〜0.250.25超

参考: Web Vitals – web.dev


LCP(最大コンテンツ描画)の改善

画像の最適化

LCPの対象は多くの場合ファーストビューのメイン画像です。WebP形式への変換とサイズの最適化で大幅に改善できます。

<picture>
  <source srcset="/img/hero.avif" type="image/avif">
  <source srcset="/img/hero.webp" type="image/webp">
  <img src="/img/hero.jpg" alt="メインビジュアル"
       width="1200" height="630"
       loading="eager" fetchpriority="high" decoding="async">
</picture>

Critical CSSのインライン化

ファーストビューの描画に必要なCSSだけを<style>タグでインライン化し、残りは非同期で読み込みます。

<!-- Critical CSS: インライン -->
<style>/* ファーストビュー用の最小限CSS */</style>

<!-- Non-critical CSS: 非同期読み込み -->
<link rel="preload" href="/css/main.css" as="style"
      onload="this.onload=null;this.rel='stylesheet'">
<noscript><link rel="stylesheet" href="/css/main.css"></noscript>

参考: クリティカルCSSの抽出 – web.dev

リソースヒント

<!-- 外部ドメインへの事前接続 -->
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>

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

参考: リソースヒント – web.dev


INP(応答性)の改善

INPはユーザーの操作(クリック・タップ・キー入力)から画面が更新されるまでの時間です。JavaScriptのメインスレッドブロックが主な原因です。

<!-- 非クリティカルなJSを遅延読み込み -->
<script src="/js/analytics.js" defer></script>
<script src="/js/chat-widget.js" defer></script>

<!-- サードパーティスクリプトを非同期化 -->
<script src="https://example.com/widget.js" async></script>
  • defer: HTML解析完了後に実行(実行順序を保証)
  • async: ダウンロード完了次第実行(順序不定)
  • ファーストビューに不要なJSはdefer、独立したスクリプトはasyncを使う

CLS(レイアウトシフト)の改善

CLSは、ページ読み込み中にレイアウトがずれる現象です。画像・広告・Webフォントが主な原因です。

原因対策実装方法
画像のサイズ未指定width/height属性を必ず指定HTML属性またはCSS aspect-ratio
Webフォントの読み込みfont-display: swapを設定CSS @font-face
動的コンテンツの挿入表示領域を事前に確保CSS min-heightで固定
広告枠固定サイズのコンテナを用意CSS width/height固定
/* 画像のアスペクト比を事前確保 */
img {
  aspect-ratio: attr(width) / attr(height);
  width: 100%;
  height: auto;
}

/* Webフォントの読み込み中にレイアウトシフトを防止 */
@font-face {
  font-family: 'Noto Sans JP';
  src: url('/fonts/NotoSansJP.woff2') format('woff2');
  font-display: swap;
}

参考: Cumulative Layout Shift (CLS) – web.dev


よくある質問(FAQ)

Q. PageSpeed Insightsのスコアは何点を目指すべき?

モバイルで90点以上を目指しましょう。ただし、スコアそのものよりもCore Web Vitalsの3指標(LCP・INP・CLS)が「良好」判定であることの方が重要です。スコアは参考値であり、ランキング要因はCore Web Vitalsの実測値です。

Q. 画像はWebPとAVIFのどちらを使うべき?

ブラウザ対応を考慮するとWebPが安全です。AVIFはWebPより20〜30%圧縮率が高いですが、Safari 16以降でないと対応していません。picture要素でAVIF→WebP→JPEGのフォールバックを設定するのが理想的です。

Q. WordPressでもページ速度改善は可能?

可能です。テーマのコード最適化(Critical CSSのインライン化、JSのdefer/async)、画像のWebP変換、不要なプラグインの削除で大幅に改善できます。キャッシュプラグインに頼る前に、まずコード側の最適化を行うことが重要です。

Q. ページ速度とSEOの関係は?

Core Web VitalsはGoogleのランキング要因の1つです。ただし、コンテンツの品質や被リンクに比べると影響度は小さいため、速度改善だけで順位が大幅に上がるわけではありません。速度改善の本質的な効果はユーザー体験の向上とCVR改善にあります。

Q. サードパーティスクリプトの影響を減らすには?

Google Analytics、チャットウィジェット、広告タグなどのサードパーティスクリプトはasync属性で非同期化し、ユーザー操作後に読み込む遅延ロードも検討しましょう。GTM(Google Tag Manager)で一元管理すると、読み込みタイミングを制御しやすくなります。


ページ速度改善はコードで完結する

Core Web Vitalsの改善は、画像最適化・CSS/JSの読み込み制御・レイアウトシフト防止の3つに集約されます。いずれもフロントエンドのコード変更で対応可能で、有料の速度改善ツールは不要です。

「自社サイトのCore Web Vitalsが不良判定で改善したい」「WordPressの速度を根本的に改善したい」という場合は、コードによるページ速度改善に対応しているWeb制作チームにご相談ください。


関連記事

▶ まとめ: CROとは?コンバージョン率を改善する8つの手法と始め方

ファーストビュー改善でCVRを上げる方法

ABテストのやり方 — 始めるべき判断基準とコード実装方法

【P10倍】【30,000円OFFクーポン】【国内… 【P10倍】【30,000円OFFクーポン】【国内… ¥139,800 【新品】Windows11 ノートパソコン office… 【新品】Windows11 ノートパソコン office… ¥39,800 \数量限定★モニター台プレゼント/モニタ… \数量限定★モニター台プレゼント/モニタ… ¥12,800 【楽天1位常連・超700冠獲得】黒/白 モニ… 【楽天1位常連・超700冠獲得】黒/白 モニ… ¥13,999 【SALE】【新製品】ロジクール MX MASTER … 【SALE】【新製品】ロジクール MX MASTER … ¥18,905 【SALE】ロジクール ワイヤレスマウス ト… 【SALE】ロジクール ワイヤレスマウス ト… ¥16,910
Rakuten Web Service Center