CreaTools LogoCreaTools
Tips

Web画像、迷ったらWebPにしろ

2025-11-28

結論:迷ったらWebP

用途形式
写真WebP
透過画像WebP
アニメーションWebP
ロゴ・アイコンSVG

**WebPはJPGより30%、PNGより50%軽い。**対応ブラウザは97%以上。

「IE対応が必要」と言われたら、pictureタグでフォールバック。


1枚500KBを超えたら対策必須

サイズ判断
100KB以下OK
100〜500KB圧縮を検討
500KB以上即座に対策

ページ全体で1MBを超えると、モバイルで体感できるレベルで遅くなる。


私がやらかした失敗

クライアントから「サイトが重い」とクレーム。

調べたら、4000×3000pxの写真をそのままアップしていた。1枚3MB。

表示サイズは800px。1920pxで十分なのに、元画像をそのまま使っていた。

**表示サイズの2倍が目安。**それ以上は無駄。


解像度の目安

用途横幅
フルワイド背景1920px
記事内画像800〜1200px
サムネイル400px

Retinaディスプレイ対応で2倍。ただし3000px超えは過剰。


圧縮ツール

Squoosh(squoosh.app)がおすすめ。

  • ブラウザで完結
  • 圧縮前後を並べて比較できる
  • WebPへの変換も可能

「80%品質」でほぼ劣化なし。50%まで下げると目に見えて荒くなる。


pictureタグでフォールバック

WebP非対応ブラウザ向け。

<picture>
  <source srcset="image.webp" type="image/webp">
  <img src="image.jpg" alt="説明" width="800" height="600">
</picture>

ブラウザが上から順に対応形式を探す。


widthとheightは必ず書く

書かないと、画像読み込み時にレイアウトがガタつく(CLS)。

<!-- ✓ 必ず書く -->
<img src="image.jpg" alt="説明" width="800" height="600">
img {
  max-width: 100%;
  height: auto;
}

Core Web Vitalsに直結。SEOに影響する。


遅延読み込み

ファーストビュー外の画像は遅延読み込み。

<!-- ファーストビュー外 -->
<img src="image.jpg" alt="説明" loading="lazy">

<!-- ファーストビュー内(遅延させない) -->
<img src="hero.jpg" alt="説明" loading="eager">

**ヒーロー画像にlazyを付けると逆効果。**表示が遅れる。


チェックリスト

□ 形式はWebP(またはSVG)か?
□ 1枚500KB以下か?
□ 解像度は表示サイズの2倍以下か?
□ widthとheightを書いたか?
□ ファーストビュー外にloading="lazy"を付けたか?

まとめ

  • 迷ったらWebP(97%対応、30%軽い)
  • 1枚500KB超えたら即対策
  • 解像度は表示サイズの2倍まで
  • widthとheightは必須(CLS対策)
  • ヒーロー画像にlazyを付けない