遅延読み込み
リソースを必要になるまで読み込まず、初期表示速度とパフォーマンスを向上させる手法
遅延読み込みとは
遅延読み込み (Lazy Loading) は、画像、コンポーネント、モジュールを必要になるまで読み込まず、初期表示速度を向上させる手法である。ファーストビューに不要なリソースの読み込みを後回しにし、LCP を改善する。
画像の遅延読み込み
画像の遅延読み込みの例を示す。
<!-- ✅ ネイティブ lazy loading -->
<img src="photo.webp" loading="lazy" alt="Photo" width="800" height="600" />
<!-- ❌ ファーストビューの画像は lazy にしない -->
<img src="hero.webp" fetchpriority="high" alt="Hero" width="1200" height="600" />
loading="lazy" はビューポートに近づいた時に画像を読み込む。ファーストビューの画像 (LCP 要素) には使わない。
React コンポーネントの遅延読み込み
React コンポーネントの遅延読み込みのコード例を示す。
import { lazy, Suspense } from 'react';
const HeavyChart = lazy(() => import('./HeavyChart'));
function Dashboard() {
return (
<Suspense fallback={<div>Loading chart...</div>}>
<HeavyChart />
</Suspense>
);
}
React.lazy + Suspense でコンポーネントを動的にインポートし、必要になるまで JavaScript バンドルを読み込まない。ルートごとにコード分割すれば、ページ遷移時に必要なチャンクだけ読み込まれる。
遅延読み込みの対象
遅延読み込みの対象を以下にまとめる。
| 対象 | 方法 |
|---|---|
| 画像 | loading="lazy" |
| React コンポーネント | React.lazy + Suspense |
| ルート | 動的 import でコード分割 |
| iframe | loading="lazy" |
| サードパーティスクリプト | 操作やスクロールを契機に script を動的挿入 |
最後の行だけは性質が違う。async と defer は取得自体を後回しにする指定ではなく、どちらも HTML の解析と並行してダウンロードされ (解析はブロックしない)、async は取得できた時点で、defer は解析が終わった時点で実行される。つまり初期読み込みの帯域は消費する。チャットウィジェットや計測タグのように後回しでよいものを本当に遅らせたいなら、スクロールや最初の操作を契機に script 要素を動的に挿入する。
注意点
- ファーストビューの要素を lazy にしない (LCP が悪化)
- CLS を防ぐため、画像に
width/heightを指定する。未読み込みの画像は幅と高さが 0 として扱われるため、サイズ未指定で高さが 0 になった画像は表示領域と交差せず、読み込まれないまま残ることがある - 読み込みを開始する距離を決めるのはブラウザで、開発者が数値で指定する手段はない。回線が細い環境ではスクロール直後に一瞬空白が見えることを前提に置く
- 遅延が効くのは JavaScript が有効なときだけで、無効時は通常どおり即座に読み込まれる (画像の要求時刻からスクロール位置を推測されるのを防ぐための仕様)
windowのloadイベントは lazy 画像の読み込みを待たない。画像が出そろってから動かしたい処理や E2E テストは、個々の画像のloadで判断する
現場での応用を知るには関連書籍も役立つ。
この記事は役に立ちましたか?
関連用語
コード分割
JavaScript バンドルを複数のチャンクに分割し、必要な部分だけを読み込む最適化手法
Intersection Observer
要素がビューポートに入ったことを非同期で検知する Web API
画像最適化
Web ページの画像サイズを削減し、表示速度と Core Web Vitals を向上させる技術群
LCP
ビューポート内の最大コンテンツ要素が表示されるまでの時間を測定する Core Web Vitals の指標
CLS
ページの読み込み中に発生する予期しないレイアウトのずれを測定する Core Web Vitals の指標
OpenCV
画像 / 動画を処理するためのオープンソースライブラリ。コンピュータビジョンの定番
関連する記事
本についてくるダウンロード素材を使い倒す
プログラミングの本には、サンプルコードや練習用データのダウンロード特典がついていることがあります。素材の探し方と、完成版コードの使い方を解説します。
あなたの「積ん読」は投資ポートフォリオである
積ん読を罪悪感の対象ではなく、知識への分散投資として捉え直す視点を提案します。積ん読の戦略的な管理方法と、必要なときに引き出す仕組みづくり。
IT パスポート参考書の選び方 - 完読できる 1 冊と過去問の組み合わせ
IT パスポート試験の参考書選びを「完読できるか」を軸に整理。イラスト型 / 絞り込み型 / 丁寧解説型などテキストの個性の見分け方、過去問題集との組み合わせ、年度版とシラバス対応の注意点を 2026 年 8 月時点の定番書で解説します。