LESSON / WP LOAD

レスポンシブ画像と読み込み速度を最適化する

画像形式、表示サイズ、srcset・sizes・picture・遅延読み込みを使い、必要以上に大きな画像を送らない方法を学びます。

目安 60分 コース進捗 0 / 12

GOAL

このレッスンでできるようになること

  • 用途に合う画像形式を選べる
  • srcsetとsizesを設定できる
  • 遅延読み込みを使う画像を判断できる

画像はWebページの通信量を大きくしやすいファイルです。CSSで小さく表示するだけでは、元の大きな画像をダウンロードする量は減りません。

画面幅と用途に合う画像を用意し、ブラウザが適切な候補を選べるHTMLを書きます。

画像形式と表示サイズを決める

  • 写真:WebPまたはJPEG
  • 透過を含む写真や複雑な画像:WebPまたはPNG
  • ロゴや単純な図形:SVG
  • 小さなアイコン:既存のアイコンセットやSVGを検討

書き出し時は実際の表示幅と高解像度画面を考慮します。元画像を保持し、公開用画像だけを圧縮してください。

幅と高さをHTMLへ指定する

widthheightを指定すると、画像が読み込まれる前にブラウザが縦横比を確保できます。CSSでは縦横比を保って親幅へ収めます。

次の画像は、「幅と高さをHTMLへ指定する」で扱うコードや構成をブラウザで表示した結果です。

「幅と高さをHTMLへ指定する」で扱うコードや構成の表示結果
「幅と高さをHTMLへ指定する」で扱うコードや構成をブラウザで表示した結果
<img
 src="images/feature-800.webp"
 alt="管理画面で記事を編集している様子"
 width="800"
 height="600"
>

srcsetとsizesで候補を渡す

ブラウザへ複数の画像候補を渡すと、画面と表示幅に合う画像を選択できます。

画面幅に応じて小・中・大から適切な画像を選択するレスポンシブ画像
画面幅に応じて小・中・大から適切な画像を選択するレスポンシブ画像

同じ構図で解像度が異なる画像はsrcsetへ並べ、sizesでレイアウト上のおおよその表示幅を伝えます。ブラウザが画面幅や解像度に応じて候補を選びます。

<img
 src="images/feature-800.webp"
 srcset="images/feature-480.webp 480w,
         images/feature-800.webp 800w,
         images/feature-1200.webp 1200w"
 sizes="(max-width: 767px) calc(100vw - 32px),
        50vw"
 alt="管理画面で記事を編集している様子"
 width="1200"
 height="900"
>

pictureで構図や形式を切り替える

スマートフォンでは縦長、パソコンでは横長のように構図を変える場合はpictureを使います。単に解像度だけを変える場合はimgのsrcsetを使います。

次の図では、「pictureで構図や形式を切り替える」の仕組みや関係を確認できます。

「pictureで構図や形式を切り替える」の仕組みや関係を示す図
「pictureで構図や形式を切り替える」の仕組みと関係
<picture>
 <source media="(max-width: 767px)" srcset="images/hero-sp.webp">
 <img src="images/hero-pc.webp" alt="サービスを利用しているチーム" width="1440" height="720">
</picture>

画面外の画像を遅延読み込みする

最初の画面より下にある画像にはloading="lazy"を使えます。最初に表示される主要画像まで遅延させると、表示が遅くなる場合があります。

次の図では、「画面外の画像を遅延読み込みする」の仕組みや関係を確認できます。

「画面外の画像を遅延読み込みする」の仕組みや関係を示す図
「画面外の画像を遅延読み込みする」の仕組みと関係
<img src="images/gallery.webp" alt="制作事例の一覧" width="960" height="640" loading="lazy">

Networkで転送量を確認する

次の図では、「Networkで転送量を確認する」の仕組みや関係を確認できます。

「Networkで転送量を確認する」の仕組みや関係を示す図
「Networkで転送量を確認する」の仕組みと関係
  1. キャッシュを無効にしてページを再読み込みする
  2. NetworkのImgで取得した画像と容量を確認する
  3. 画面幅を変えて選ばれる画像候補を確認する
  4. 404や縦横比の崩れがないか確認する
  5. 圧縮前後で見た目と容量を比較する

CHECK POINT

完了条件