STATUS IS UPウェブサイト最適化ウィキ
18高速化
パフォーマンスと配信 / 高速化

srcset と sizes を使ったレスポンシブ画像

ブラウザが実際のレイアウトスロットに合う画像を選べるようにし、すべての訪問者に過剰に大きいオリジナルを送らないようにする。

srcset と sizes を使ったレスポンシブ画像 — ビジュアルガイド
読む
8 分
出典
6
再検証
2027-03-27
レビュー済み
ウェブパフォーマンスおよびアクセシビリティ レビュアー
短い答え

まず決断から始める。

同じ画像がレスポンシブレイアウトで異なる表示幅で現れる場合は、srcset と sizes を使います。srcset は画像候補とそれらの実際のピクセル幅を列挙し、sizes は各レイアウト条件における画像スロットの期待幅を記述します。ブラウザはそのソースサイズ見積もりを表示密度やズーム、その他の条件と組み合わせて候補を選びます。こうして、小さなモバイルカードはデスクトップ用の大きなオリジナルをダウンロードせずに済み、広いまたは高密度ディスプレイではより鮮明な候補を選べます。

コンポーネントの CSS レイアウトから始め、デバイス一覧のような一般的なリストからは始めないでください。各ブレークポイントでスロットを計測し、正直な候補を生成し、sizes をそのスロットに合わせて書きます。固定 CSS スロットでは x(密度)ディスクリプタのみを使います。狭い画面で異なるトリミングが必要な場合は、単に小さいファイルにするのではなく picture を使います。空キャッシュ再読み込みで実際のリクエストを検証してください。この事前の配信最適化はリリース前に避けられる画像転送を減らしますが、速度、可用性、画像ホストの信頼性を保証するものではありません。

ビジュアルガイド

作業をシステムとして見る。

個別の戦術に取り掛かる前に、この記事の意思決定をこのマップで結び付けてください。

SIU高速化
01正しいパターンを選ぶ
02sizes が選択にどう影響するかを理解する
03実際のレイアウトから候補を導く
04アートディレクションには picture を使う
01

正しいパターンを選ぶ

解像度スイッチング(resolution switching)は構図を同じに保ち、複数のファイル幅を提供します。これは製品写真、記事の図版、カードで一般的なパターンです。レンダリング幅がレイアウトで変わる場合は 480w や 1200w のような幅(w)ディスクリプタを使ってください。数値はファイルの実際のピクセル幅であり、端末のターゲットや CSS 指令ではありません。

密度スイッチング(density switching)は固定の CSS スロットに対して、高密度表示用により多くのソースピクセルを提供します。ディスクリプタは 1x、1.5x、2x のようになり、たとえば常に 160 CSS ピクセル幅のロゴやアイコンに適します。1 つの srcset 内で幅(w)と密度(x)のディスクリプタを混ぜないでください。

フルードスロット(可変幅)

コンポーネントが伸縮する場合は w ディスクリプタと sizes を使う。

固定スロット

レンダリングされる CSS サイズが安定している場合のみ x ディスクリプタを sizes なしで使う。

02

sizes が選択にどう影響するかを理解する

幅ディスクリプタを使う場合、ブラウザは画像をダウンロードする前に sizes を評価します。各エントリは(任意の)メディア条件と長さを組にしており、最初に一致した条件がソースサイズを供給します。最後の無条件の長さはフォールバックです。sizes は選択のヒントであり、CSS の規則ではありません。

ブラウザはそのソースサイズと候補幅を比較して実効的な密度を計算し、表示密度、ズーム、ネットワーク状況などを考慮する場合があります。数学的に最も近いファイル名を選ぶ義務はありません。正直な候補と信頼できるスロット見積もりを提供してください。最終的な選択はユーザーエージェントの判断に委ねられます。

順序が重要

最初に一致するメディア条件が勝つので、リストはその最初の一致が正しくなる順で書く。

100vw をむやみに使わない

ビューポート幅として記述した 1/3 のデスクトップカードは不必要に大きな候補を選ばせる可能性がある。

03

実際のレイアウトから候補を導く

ページ単位ではなくコンポーネントを棚卸ししてください。ヒーロー、記事図版、商品ギャラリー、検索サムネイル、フッターロゴはそれぞれ異なるスロット幅を持つことが多いです。それぞれについて狭い状態と最大レンダリング幅、アスペクト比、トリミング挙動、初期画面での可視性を記録します。

コンポーネントの有意なスロット範囲に沿って幅を生成し、詳細が正当化される場合は高密度表示用にさらに大きいオプションを用意します。ほとんど同じファイルが多数あるとビルドとキャッシュが複雑になります;極端に小さいファイルと非常に大きいファイルだけが妥協を強いるべきです。画像変換が機能する前提で進めず、生成した URL を実際にテストしてください。

有効な src のフォールバックと、配信された比率に合う width と height 値を維持してください。これらはスペースを確保しますが、レスポンシブな CSS が最終的な寸法を変えるのを妨げはしません。

正直なディスクリプタ

800w と表記された候補は実際に 800 ピクセル幅でなければならない。

コンポーネント契約

スロットと候補計画をテンプレートやデザインの変更とともに維持する。

04

アートディレクションには picture を使う

アートディレクションはファイルサイズだけでなく構図を変えます。広い横長の写真は、狭い画面で主題を見えるようにするために縦長の切り抜きが必要になることがあります。picture 要素はメディアごとのソースオプションを提供し、その後に img のフォールバックを置けます。ブラウザは各 source の media、type、srcset 情報を考慮し、img は代替テキスト、寸法、フォールバック動作を担います。

各トリミングは編集上とアクセシビリティ上のレビューを行ってください。モバイル用の切り抜きが製品の詳細や alt テキストで言及している人物を削る可能性があります。alt は img に置き、画像が伝える情報や機能を説明してください。装飾目的の画像のみ alt="" を使ってください。リンクされた画像やボタン画像では外観ではなく動作を説明します。構図が変わらない場合に picture を導入しないでください:単純な幅ベースの srcset の方が簡潔です。

適切な使用例

多くの要素が詰まったデスクトップヒーローは、スマートフォンで別の縦長トリミングを必要とする。

フォーマット別ソース

picture の source は type ヒントを与えつつ、幅広く使える img フォールバックを保てる。

05

高コストな読み込みやマークアップの間違いを避ける

よくある無駄は sizes="100vw" をすべての画像にコピーすることです。それは狭い全幅のフィギュアには合うかもしれませんが、幅が制限されたコンテナやデスクトップカードには合いません。その逆の失敗はリデザイン後に sizes が古いままであることです。CSS と sizes を一緒に更新してください。

初期表示コンテンツで重要な画像を遅延読み込み(lazy-load)してはいけません。遅延読み込みはフォールド下の画像に推奨され、視認可能なヒーローは優先的に読み込むべきです。fetch-priority は本当に重要な画像を優先できますが、広範囲の high-priority や preload ルールはパフォーマンスを損なう可能性があります。ファイル名やキャッシュ結果を証拠として頼りにしないでください。

コールドキャッシュの回帰

CMS、プロキシ、またはキャッシュが誤ったディスクリプタや意図しない画像リクエストを隠すことがある。

画像内のテキスト

重要なページテキストをアートディレクティッドな切り抜きにのみ依存させないでください。

06

リクエスト、トリミング、修正をテストする

グリッドのブレークポイントをまたぐ幅(その直上と直下を含む)で代表的なページをテストしてください。高密度設定、広いデスクトップ、スロットを変える状態も含めます。レンダリングされた寸法、トリミング、代替テキスト、視覚的なシャープネスを確認します。

Chrome DevTools では Network を開き、キャッシュを無効にしてリロードするか「Empty Cache And Hard Reload」を使い、画像リクエストをフィルタして URL、転送サイズ、ヘッダ、イニシエータ、タイミングを検査します。スロットルして遅延や無駄な処理を露呈させてください。ビューポート、デバイススケールファクタ、スロット、候補、転送バイト数、期待結果を記録します。

テンプレート、ブレークポイント、CDN、アセットパイプラインが変わるときは、これをリリースゲートにしてください。狭く修復してください:sizes を訂正し、ディスクリプタを直し、切り抜きを再生成し、フォールバックを復元するか不要な preload を削除します。空キャッシュ再読み込みで再テストしてください。

推測ではなく観察

Network パネルは実際に要求された候補を記録する。

検証の範囲

これは画像配信の挙動を検証するものであり、オリジンの容量、CDN の可用性や全体的な稼働率は検証しない。

07

SIU(可用性)レジリエンス管理として適用する

レスポンシブ画像は不要な転送を減らしますが、リクエスト成功を保証するものではありません。オリジンエラー、変換の未提供、サードパーティホスト、および CDN 障害には別個の継続性と回復計画が必要です。

SIU の観点では、テスト記録を使って配信の回帰を早期に検出し、責任あるテンプレートや変換ルールを特定し、リリース前に最小限の安全な修正を行ってください。可用性の事前検証とロールバック計画を併せて用意します。

所有権

失敗チェックごとにコンポーネントと画像パイプラインの所有者を割り当てる。

実行 / 検証

実践的なTo‑Doガイド。

  1. 01

    各コンポーネントを分類する

    それが可変(fluid)、固定スロット、アートディレクション、装飾的、機能的、あるいは重要な可視コンテンツのどれかをマークする。

    検証: スロット範囲、トリミングルール、所有者を棚卸し記録にする。
  2. 02

    スロットを測定する

    狭い、中間、広いの状態で本番に近いグリッドを検査する。

    検証: 制限、ギャップ、サイドバーを含む CSS ボックス幅が記録されている。
  3. 03

    ディスクリプタを選ぶ

    可変スロットには w と sizes、固定スロットには x を使用する;両者を混ぜない。

    検証: すべての srcset が一種類のディスクリプタを使っている。
  4. 04

    CSS から sizes を書く

    最初に一致する条件と無条件のフォールバックを使ってスロットを記述する。

    検証: テストしたすべてのビューポートで一致値が妥当である。
  5. 05

    アセットを検証する

    すべての候補が存在し、宣言された内在幅に合致することをチェックする。

    検証: 直接のリクエストが意図したファイルと有効なフォールバックを返す。
  6. 06

    スペースを確保する

    配信される比率に合う width と height 値と、比率を保持するレスポンシブ CSS を提供する。

    検証: 画像到着が原因で不要な周囲コンテンツの移動が発生しない。
  7. 07

    アートディレクションをレビューする

    メディアごとの切り抜きと img の代替テキストをチェックする。

    検証: 重要な被写体が見えるままであり、代替テキストが正確である。
  8. 08

    優先度を意図的に設定する

    フォールド下の画像を遅延読み込みし、広範な high-priority や preload ルールは避ける。

    検証: 真に可視なヒーローは不要な競合なしに迅速に要求される。
  9. 09

    コールドキャッシュの証拠を取得する

    DevTools の画像フィルタ、キャッシュ無効のリロード、代表的なビューポートを使う。

    検証: リリース証拠は選択された候補、スロット、転送サイズ、トリミングを記録している。
  10. 10

    修正計画を立てる

    テンプレートと画像パイプライン変更のための対象を絞った修正またはロールバックを割り当てる。

    検証: 各失敗に所有者が割り当てられ、修正後のコールドキャッシュ再テストが成功している。
議論のテーマ

トレードオフを比較し、非公開データは共有しないでください。

これらのプロンプトをチームやサイトオーナーコミュニティで使ってください。手法や学びは共有して構いませんが、認証情報や顧客データ、非公開インフラの詳細を貼り付けないでください。

  1. 01

    あなたのサイトでダウンロードされたピクセル数と通常のレンダリングスロット幅の差が最も大きいコンポーネントはどれか、そして安全にそれを測定するにはどうするか?

  2. 02

    デザイナー、CMS 担当者、フロントエンドチームは、モバイル用トリミングを単なるリサイズではなくアートディレクションと判断する際にどう決めているか?

  3. 03

    レスポンシブ画像の回帰を、顧客データを共有せずにリリース審査で承認またはロールバックしやすくするための証拠は何か?

人気/信頼できる資料

出典資料を開く。

WHATWGImages in the HTML Standard ↗

ディスクリプタ、ソースサイズ選択、フォールバック、ブラウザの選択に関する一次ルール。

レビュー日 2026-09-27
MDN Web DocsUsing responsive images in HTML ↗

srcset、sizes、密度スイッチング、アートディレクション、テストに関する実践的ガイド。

レビュー日 2026-09-27
web.devResponsive images ↗

寸法、読み込み、ディスクリプタ、レイアウト制約に関する Google のガイダンス。

レビュー日 2026-09-27
MDN Web Docspicture HTML picture element ↗

メディアと type の選択、アートディレクション、sizes、フォールバックに関するリファレンス。

レビュー日 2026-09-27
Chrome for DevelopersInspect network activity ↗

リクエスト、転送、スロットリング、フィルタ、空キャッシュ再読み込みの手順。

レビュー日 2026-09-27
W3C Web Accessibility InitiativeImages Tutorial ↗

意味のある画像、装飾的、機能的、テキストを含む画像の取り扱いに関するガイダンス。

レビュー日 2026-09-27

出典ポリシー レスポンシブ画像の構文やブラウザ選択に関する記述は、下記に示す公式仕様とドキュメントに基づいています。マークアップ、候補幅、およびレンダリングされたレイアウトは、サイトの実際のテンプレートでリリース前に検証してください。

簡単な補足

よくある質問

srcset を使うたびに sizes は必須ですか?

幅(w)ディスクリプタには sizes が必要です。ブラウザは可変スロットのソースサイズ見積もりを必要とします。固定サイズの密度 srcset は x ディスクリプタを使い、sizes は不要です。1 つの srcset で幅(w)と密度(x)を混ぜてはいけません。

sizes は画像の CSS 幅を変えますか?

いいえ。sizes はプリロードの選択ヒントです。レンダリングボックスを決めるのは CSS とコンポーネントのレイアウトなので、レイアウトが変わるときは sizes を保守する必要があります。

すべてのレスポンシブ画像で picture を使うべきですか?

いいえ。構図が変わらずサイズだけが変わる場合は幅ベースの srcset が適切です。メディア条件で異なるトリミングやフォーマット特有のソースが必要なときに picture を使い、汎用的な img フォールバックを残します。

Status Is UP Editorial Team · Uptime Enablement 編集者

レビュー: ウェブパフォーマンスおよびアクセシビリティ レビュアー。公開 2026-09-27、更新 2026-09-30。