コンテンツにスキップ

PNG vs WebP vs AVIF|画像フォーマットの選び方と変換方法

カテゴリ:画像・パフォーマンス

Web サイトの表示速度を左右する最大の要因のひとつが画像フォーマットの選択です。2026 年現在、主要な選択肢は PNG / JPEG / WebP / AVIF の 4 つ。本記事ではそれぞれの特徴・用途・ブラウザ対応状況を整理し、最適なフォーマットの選び方を解説します。

フォーマット比較表

フォーマット圧縮方式透過アニメーション画質ファイルサイズブラウザ対応
PNG可逆 (ロスレス)APNG最高 (劣化なし)全ブラウザ
JPEG非可逆 (ロッシー)品質調整可小〜中全ブラウザ
WebP可逆 / 非可逆JPEG より良いJPEG の 25-35% 小95%+
AVIF非可逆 / 可逆WebP より良いWebP の 20% 小92%+

どのフォーマットを選ぶべきか

PNG を選ぶケース

  • ロゴ・アイコン・スクリーンショットなど劣化が許されない場合
  • テキストが含まれる画像 (圧縮でボケると読みにくくなる)
  • 透過が必要でかつ IE11 対応が必要な場合 (ほぼ不要)

JPEG を選ぶケース

  • 写真・グラデーションが多い画像で 最大互換性 が必要な場合
  • メール添付や旧デバイスに配信する場合

WebP を選ぶケース (推奨)

  • Web サイトのほとんどの画像 — JPEG と比べ 25〜35% 小さくなる
  • 透過 + 圧縮の両立 (PNG の代替)
  • アニメーション (GIF の代替 — はるかに小さい)
  • ブラウザ対応率 95%+ なのでほぼ問題なし

AVIF を選ぶケース (最先端)

  • 最小ファイルサイズ を追求する場合 — WebP よりさらに 20% 小さい
  • 高品質な写真をなるべく軽くしたい場合
  • ブラウザ対応率 92%+ (Safari 16+, Chrome 85+, Firefox 93+)

実装パターン: picture 要素で出し分け

最も堅実なのは <picture> 要素で複数フォーマットを指定する方法です。ブラウザが対応する最初のソースを選びます。

<picture>
  <source srcset="image.avif" type="image/avif">
  <source srcset="image.webp" type="image/webp">
  <img src="image.jpg" alt="Description" loading="lazy">
</picture>

この方法なら AVIF 対応ブラウザは AVIF を、WebP のみ対応なら WebP を、どちらも非対応なら JPEG をロードします。

ツールで変換する

DevLab の画像フォーマット変換ツール を使えば、ブラウザだけで PNG ⇄ WebP ⇄ JPEG ⇄ AVIF の変換ができます。品質スライダーでファイルサイズと画質のバランスを確認しながら変換可能。サーバーへのアップロードも不要で、プライバシーも安心です。

関連: EXIF ビューア で撮影メタデータの確認や位置情報の削除、画像 → Base64 変換 でインラインの Data URL 生成もできます。

まとめ

  • 迷ったら WebP — バランス最良
  • さらに小さくしたいなら AVIF (picture でフォールバック)
  • 劣化不可なら PNG
  • 最大互換性が必要なら JPEG

❓ よくある質問

いま AVIF に全面移行しても大丈夫ですか?
主要ブラウザは対応済みですが、単独で置き換えるのではなく picture 要素で AVIF・WebP・JPEG を並べるのが安全です。AVIF はエンコードが重く、小さな画像では WebP に負けることもあります。ビルド時間と配信サイズの両方を測ってから、効く画像だけ AVIF にするのが現実的です。
ロゴやアイコンはどの形式が良いですか?
まず SVG を検討してください。ベクタなので拡大しても劣化せず、単純な図形なら PNG より小さく、CSS で色を変えられます。写真的なグラデーションを含むロゴや、SVG を受け付けない配信先だけラスタに落とし、その場合は透過が要るので PNG か WebP を選びます。
WebP に変換したのにファイルが大きくなりました。
可逆モードで変換した可能性が高いです。写真を可逆 WebP にすると PNG に近い挙動になり、元の JPEG より大きくなります。写真は非可逆(品質 75〜85 前後)、透過つきの図版は可逆、と入力の性質で切り替えてください。すでに強く圧縮された JPEG からの再エンコードでも増えることがあります。