WebパフォーマンスとCore Web Vitals

ブラウザが画面を描画する仕組み(レンダリングパイプライン)と、UX向上のための重要指標である Core Web Vitals の最適化アプローチを図解で学びます。

学習をスタートする

🗺️ ロードマップ

1

レンダリングパイプラインとCore Web Vitals

Webサイトの表示速度や操作時の応答性は、ユーザーの離脱率や検索エンジンの評価(SEO)に決定的な影響を与えます。 パフォーマンスを最適化するには、ブラウザが裏側でどのようにページを描画しているか(レンダリングパイプライン)を理解することが近道です。 第1章では、ブラウザの描画プロセスと、Googleが提唱するユーザー体験の重要指標 Core Web Vitals(コア・ウェブ・バイタル) の関係を図解します。 1. ブラウザのレンダリングパイプライン(図解) ブラウザがサーバーからHTML、CSS、JavaScriptを受け取り、画面にピクセルとして描画するまでのステップです。 1. DOM / CSSOMの構築: HTMLを解析してドキュメントツリー(DOM)を作り、CSSを解析してスタイルツリー(CSSOM)を作ります。 2. Render Treeの構築: 画面上に表示される要素とスタイルを結合した「レンダーツリー」を作ります( の要素は除外されます)。 3. Layout (レイアウト/リフロー): 各要素が画面のどの位置にどのサイズで配置されるかを計算します。 4. Paint (ペイント): 要素の背景色、テキスト、境界線などのピクセルデータを塗る処理(ラスタライズ)を行います。 5. Composite (コンポジット/レイヤー合成): 要素をレイヤーに分け、GPUを使って重ね合わせて最終的な画面を描画します。 2. Core Web Vitals の3大重要指標 Googleがユーザー体験(UX)を評価するために定めた、特に重要な3つのパフォーマンス指標です。 1. LCP (Largest Contentful Paint) - 最大コンテンツの描画時間 * 意味: ページ内で最も大きいコンテンツ(ヒーロー画像やメインの見出しなど)が表示されるまでの時間。 * 目安: 2.5秒以下 が「良好 (Good)」。 * 改善アプローチ: 画像の最適化、サーバーの応答時間(TTFB)の短縮、レンダリングをブロックするCSS/JSの削減。 2. INP (Interaction to Next Paint) - 次の描画までの応答性 * 意味: ユーザーがクリックやキー入力をした際、ブラウザが次の画面(描画フレーム)を更新するまでの遅延時間。 * 目安: 200ミリ秒以下 が「良好 (Good)」。 * 改善アプローチ: JavaScriptの重い処理の最適化(メインスレッドの占有時間を減らす)、 の活用、不要なスクリプトの削減。 3. CLS (Cumulative Layout Shift) - 累積レイアウトシフト * 意味: 読み込みの途中で、画像や広告が遅れて表示されることで画面のレイアウトがカクッとズレる視覚的な不安定さ。 * 目安: 0.1以下 が「良好 (Good)」。 * 改善アプローチ: 画像や広告枠にあらかじめ / を指定しておく、コンテンツの動的挿入を避ける。 まとめ * ブラウザの描画は DOM/CSSOM構築 → Render Tree構築 → Layout → Paint → Composite というパイプラインを辿る。 * JavaScriptやCSSによるパイプラインの再実行(特に Layout の再計算)を減らすことが高速化に繋がる。 * LCP (表示速度)、INP (応答性)、CLS (視覚的安定性) を最適化することが、優れたUXとSEO評価の両立において重要である。 次の章では、LCPやCLSに最も影響を与える「画像の最適化」について、具体的な実装方法を交えて学びましょう!

2

画像最適化と表示速度向上

Webサイトの総ファイル容量のうち、大半を占めるのが「画像データ」です。画像を適切に最適化することは、表示速度(LCP)の向上や、レイアウトシフト(CLS)の防止において最も効果的な手段の1つです。 第2章では、モダンな画像形式の選定方法、CLSを防ぐコーディング、そして表示速度を高めるリソース読み込み制御のテクニックについて図解します。 1. モダンな画像フォーマットの選定 従来の JPEG や PNG と比較して、画質をほとんど落とさずにファイル容量を大幅に削減できる次世代の画像フォーマット(WebP、AVIF)の採用が推奨されます。 フォーマット 特徴 圧縮率(JPEG比) 透過・アニメーション 推奨用途 WebP 現在の標準的な次世代フォーマット。ほぼすべての主要ブラウザで対応。 約 30% 削減 対応 一般的な写真やイラスト AVIF WebPよりさらに圧縮率が高い新世代フォーマット。 約 50% 削減 対応 高解像度の写真やグラフィカルな画像 SVG ベクター形式。解像度に依存しない。 極めて軽量(コード) 対応 ロゴ、アイコン、単純なイラスト 2. CLS(レイアウトシフト)を防ぐ width と height 画像が読み込まれる前に、ブラウザはその画像が表示される領域の大きさを把握できません。そのため、画像が後から読み込まれた瞬間に周囲のコンテンツが押し下げられ、レイアウトシフト(CLS)が発生します。 これを防ぐには、HTMLの タグに と 属性を必ず指定 します。 CSSの との併用 HTMLに と を設定しておくと、ブラウザは自動的にアスペクト比を計算し、CSSでレスポンシブ対応()にしても、読み込み前の領域確保が維持されます。 3. リソース読み込みの優先度制御(図解) すべての画像を一度に読み込むと、ブラウザの通信帯域が圧迫され、ページの初期表示(LCP)が遅れてしまいます。表示位置に合わせて読み込みの優先度を適切に割り振る必要があります。 ファーストビュー(画面内)の画像:優先度を上げる ファーストビューにある画像(特にLCPの対象となるヒーロー画像)には、 を指定してはいけません。むしろ、最優先で読み込むようにブラウザに指示を出します。 スクロールしないと見えない画像:遅延読み込み(Lazy Loading) 画面外にある画像は、ユーザーがスクロールしてその領域に近づくまで読み込みを遅らせることで、無駄な通信とCPU消費をカットします。 まとめ * 画像ファイルは WebP や AVIF などの次世代フォーマットに変換して使用する。 * と を指定することで、ブラウザがアスペクト比を計算し、レイアウトシフト(CLS) を100%防ぐことができる。 ファーストビューの重要画像には を付与し、それ以外の画像は * で遅延読み込みさせることで、初期表示速度(LCP)を最大化できる。