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を付けない