随想ノオト
テクノロジー · 読了 9分 · 0

WebページのJPEGとWebP:読み込み速度と画質の差を比較する

結論: 写真系はWebP、互換性が不安な場面はpictureタグでJPEGをfallback提供すれば両立できる。 Webページの表示速度は、直接的にユーザーの離脱率と検索順位に影響します。そしてページ重量の半分以上を占めることが多いのが画像ファイルです。「とりあえずJPEGで書き出す」という判断をずっと続けてきた方も…

by 編集部

結論: 写真系はWebP、互換性が不安な場面はpictureタグでJPEGをfallback提供すれば両立できる。

Webページの表示速度は、直接的にユーザーの離脱率と検索順位に影響します。そしてページ重量の半分以上を占めることが多いのが画像ファイルです。「とりあえずJPEGで書き出す」という判断をずっと続けてきた方も多いでしょう。

WebPへの移行はコストが高そうに見えますが、判断そのものはシンプルです。この記事では、公式に示されている削減率、自分の画像で確かめる手順、そしてfallbackの実装までを順に整理します。


JPEGとWebPの基本的な違い

JPEGは1992年にJoint Photographic Experts Groupが策定した規格で、長らくWebの写真フォーマットの標準として使われてきました。一方、WebPはGoogleが2010年に発表し、2020年代に入ってブラウザ対応が急速に広がったフォーマットです。

JPEG
  • 広い互換性
  • 写真に適切
  • 圧縮時に劣化あり
WebP
  • 平均25–34%軽量
  • 可逆圧縮も可能
  • IE非対応(2026年時点)
AVIF
  • 更に高圧縮率
  • ブラウザ対応が拡大中
  • エンコードが重い

2026年6月時点でのブラウザ対応状況は、Can I use「WebP」によると、Chrome・Firefox・Safari・Edgeのすべてで有効です。唯一の例外はInternet Explorerですが、Microsoftは2022年6月にIEのサポートを終了しており、現時点で対応を気にするケースはほぼありません。

圧縮率はどれくらい変わるのか

Googleの公式ドキュメントでは、WebPの可逆圧縮はPNGより26%小さく、非可逆圧縮は同等のSSIM品質でJPEGより25〜34%小さいとされています。まずはこの範囲を見積もりの基準にするのが確実です。

ただし削減率は画像の内容で変わります。手元の画像でどうなるかは、Squooshで確かめるのが最短です。Squooshはブラウザ上で動作するGoogleのオープンソースツールで、エンコード設定を細かく変えながらリアルタイムで画質を比較できます。

確かめる手順

  1. 代表的な画像を3種類選ぶ(写真・UIスクリーンショット・フラットなイラスト)。傾向が大きく違うため、1枚だけで判断しない
  2. 左右の比較ビューでJPEGとWebPを同じquality値(まずは80)に揃える
  3. 画面下部に出るファイルサイズと削減率を記録する
  4. スライダーを動かし、劣化が気になる手前のquality値を探す

写真は輪郭が緩やかなので削減率が出やすく、フラットなイラストや文字を含むUIスクリーンショットは元から軽いぶん差が小さく見えることがあります。自分のサイトで使う画像で測るのが唯一確実な方法です。

Lighthouseで読み込み速度の影響を確認する

ファイルサイズの差は、実際のページ読み込みにどう反映されるのでしょうか。Chrome DevToolsに内蔵されているLighthouseで計測するのが最も手軽です。

計測の手順は次の通りです。

  1. Chrome DevToolsを開く(F12 または Cmd+Option+I)
  2. 「Lighthouse」タブを選択
  3. 「Performance」にチェックを入れて「Analyze page load」を実行
  4. レポートの「Opportunities」セクションに「Serve images in next-gen formats」が出たら改善余地あり

改善幅は回線速度・CDN構成・画像の元サイズで大きく変わるため、一般的な目安を当てにせず、置き換え前後で同じ条件のLighthouseスコアを比べてください。判断材料になるのは差分だけです。

LCPについてはWebフォントとシステムフォントのLCPへの影響でも詳しく扱っていますが、画像とフォントはLCPの主要因として並列に対策を進めると効果的です。

pictureタグで互換性を担保する

「WebPに移行したいが、古い環境向けのfallbackも残したい」という場合は、<picture>タグを使います。

<picture>
  <source srcset="hero.webp" type="image/webp">
  <img src="hero.jpg" alt="ページのメイン画像" width="1200" height="630">
</picture>

ブラウザはWebPに対応していれば<source>を、対応していなければ<img>のJPEGを読み込みます。記述量は増えますが、一度テンプレートに組み込めば運用上の手間はほぼありません。

静的サイトジェネレーターやCMSでの自動変換

Next.jsのnext/imageコンポーネント、またはAstroの組み込み画像処理は、アップロードされたJPEGを自動でWebP(あるいはAVIF)に変換してHTMLを出力します。WordPress 6.5以降も同様の自動変換機能を搭載しています。手動でファイルを管理しているプロジェクトほど、ツールへの移行を検討する価値があります。

フォーマット選択の判断フロー

どのフォーマットをいつ選ぶべきか、以下の基準を参考にしてください。

シーン 推奨フォーマット 理由
写真・グラデーション豊かな画像 WebP (lossy) 高圧縮でも画質劣化が目立ちにくい
イラスト・スクリーンショット WebP (lossless) または PNG シャープなエッジを保持
アニメーション WebP (animated) または GIF GIFより大幅に軽量
透過(アルファチャンネル)が必要 WebP または PNG JPEGは透過非対応
古いCMSで変換が難しい環境 JPEG + pictureタグ 互換性最優先

なお、操作手順を伝える場面では静止画にするか短い録画にするかで扱うファイルの種類自体が変わります。その判断軸と保存形式はスクリーンショットとスクリーンレコードの使い分けにまとめています。


実装のつまずきポイントと回避策

CMSのメディアライブラリが古いままになりがち

WebPへの切り替えを決めたあとも、過去にアップロードしたJPEGが残り続けることがあります。一括変換にはcwebpコマンドラインツールやImageMagickが使えます。

# ディレクトリ内のJPEGをまとめてWebPに変換(quality 82)
for f in *.jpg; do cwebp -q 82 "$f" -o "${f%.jpg}.webp"; done

quality値の設定に迷う

WebPとJPEGのquality値は計算方法が異なるため、同じ数値でも結果は一致しません。数値を横並びで揃えても意味がないので、Squooshで目視確認しながら、劣化が気にならない下限を画像の種類ごとに決めるのが確実です。

AVIFはもう使えるのか

2026年6月時点でAVIFは主要ブラウザで対応済みですが、エンコード時間がWebPの数倍かかる場合があり、ビルドパイプラインによっては導入ハードルが高めです。高画質・高圧縮を両立したい静的アセットには有効ですが、量産が必要な場面ではWebPが現実的な選択です。


FAQ

Q. WebPに変換すると画質が落ちますか? A. 非可逆圧縮(lossy)の場合は若干の劣化が生じますが、quality値80以上では人間の目には判別しにくいレベルに抑えられます。可逆圧縮(lossless)オプションを選べば劣化なしに変換できます。

Q. すでに公開しているサイトはどこから手をつければいいですか? A. Lighthouseの「Opportunities」セクションに表示される最大サイズの画像から着手するのが最短です。LCPに直結する上位3〜5件の画像をWebP化するだけで、スコアに変化が出ることが多いです。

Q. <picture>タグを書くのが面倒です。省略する方法はありますか? A. Next.jsのnext/image・Astro・WordPress 6.5以降など、フレームワークやCMSが自動で変換・出力する仕組みを使うのが最も現実的です。手書きが避けられない場合はスニペットをエディタに登録しておくと負担が減ります。

Q. SVGやPNGはこの比較に入らないのですか? A. SVGはベクター形式であり、写真系の画像には不向きです。PNGは可逆圧縮ですが、写真ではWebPのlosslessより容量が大きくなる傾向があります。透過が必要なアイコン・UIパーツに限り、PNGまたはWebP(lossless)が適切です。


Webパフォーマンス関連の記事一覧も合わせて確認すると、全体の改善ポイントが整理しやすくなります。

#Web開発 #フロントエンド #WebP #JPEG #画像最適化

関連する記事

テクノロジー · 12分 · 1

WebフォントとシステムフォントのLCPへの影響:読み込み遅延と見た目の変化を測定する

結論: WebフォントはLCPを平均数百ms悪化させる。font-display戦略とpreloadの組み合わせが最速の改善策。 Webフォントを使えばブランドの個性が出る。しかし何も考えずに導入すると、LCP(Largest Contentful Paint)スコアが静かに悪化していきます。 その悪化幅は「どうせ誤差…

テクノロジー · 11分 · 11

WebアプリでHTTPが使われる場面:HTTPSとの使い分けと判断基準

結論: 本番でユーザーデータを扱う限りHTTPSが原則。HTTPは開発環境と信頼済みの閉域網に限る。 HTTPSがほぼ無料で使える時代に、「HTTPで十分な場面がまだ存在する」と言うと、驚かれることがあります。 実際には全部をHTTPSにすれば安全というほど単純ではなく、アーキテクチャの構造上HTTPが現れる箇所があり…

テクノロジー · 9分 · 5

ローカル開発環境とクラウド開発環境、プロジェクト規模で使い分ける判断軸

結論: 3人以下・長期運用ならローカル、4人以上・短命プロジェクトはクラウドが合う。 開発環境の選択は「どちらが優れているか」という問いではなく、「このプロジェクトに何が合うか」という問いです。 「クラウドなんて大げさ」と考えられがちです。ただし人数が増えるほど、環境構築の手順書を配って回る手間が効いてきます。定義済み…

テクノロジー · 10分 · 26

Gitコミットの粒度と後悔:何行動で1コミットにすべきか

結論: 「1コミット=1つの論理的変更」。バグ修正とリファクタは必ず分けて積む。 Gitのコミット粒度をどう決めるか——これはコードの品質と同じくらい開発体験に直結する問いです。 「とりあえずまとめてコミット」を続けたある日、障害対応でrevertが必要になり、関係のない変更まで巻き込んでしまった経験は、多くのエンジニ…

テクノロジー · 9分 · 6

ブラウザのタブを閉じるべきタイミング:メモリ消費と生産性の実測値

結論: タブは「用途の終わったものをその場で閉じる」が唯一の正解。保留は後悔の始まりです。 ブラウザのタブは増えるのに、減ることは稀です。気づけば20枚、40枚と積み上がり、PCのファンが唸り始める。しかし実際のところ、タブの枚数は何枚から「問題」になるのでしょうか。そして、生産性への影響は本当に計測できるものなのでし…

テクノロジー · 11分 · 2

APIドキュメントの読み方:必須項目と実装に必要な情報の抽き出し方

結論: 認証・エンドポイント・リクエスト形式・レート制限・エラーコードの5点を先に読めば、実装で詰まる確率は大きく下がる。 APIドキュメントを初めて開いたとき、ページ数の多さと用語の密度に圧倒された経験は多くの人が持っているでしょう。最初から全部読もうとすると、実装に入れないまま1時間が過ぎることもあります。 重要な…

コメント

最初のコメントを残してみませんか。

コメントは承認後に表示されます。