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

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

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

by 編集部

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

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

実のところ編集部もそうでした。最初はWebPへの移行コストを過大に見積もっていましたが、実際に計測してみると、移行の判断は思ったよりシンプルで、効果は確実に出ることがわかりました。この記事ではその実測プロセスと判断基準を共有します。


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のサポートを終了しており、現時点で対応を気にするケースはほぼありません。

圧縮率の実測:同じ画像でどれだけ差が出るか

実際に3種類の画像(風景写真・UIスクリーンショット・イラスト)で変換テストを行いました。変換にはSquooshを使用しています。Squooshはブラウザ上で動作するGoogleのオープンソースツールで、エンコード設定を細かく変えながらリアルタイムで画質を比較できます。

画像の種類 JPEG (quality 80) WebP (quality 80) 削減率
風景写真 (1920×1080) 412 KB 289 KB -30%
UIスクリーンショット (1280×800) 198 KB 134 KB -32%
フラットイラスト (800×600) 87 KB 58 KB -33%

いずれもvisual diffでは人間の目に判別できる劣化は確認できませんでした。Googleの公式発表では「WebPはJPEGより25〜34%小さい」とされており、この実測値は概ねその範囲に収まっています。

余談ですが、Squooshのスライダーを動かしながら「これ以上圧縮したら気になるな」という閾値を探す作業は、思ったより没入感があります。デザイナーの方と一緒にやるとなおさら議論が深まります。

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」が出たら改善余地あり

Lighthouseが報告するLCP(Largest Contentful Paint)の改善幅は、ページ内の最大画像をWebPに置き換えた場合、0.3〜0.8秒程度の短縮が見込まれることが多い印象です(回線速度・CDN構成によって変動します)。

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のquality 80はJPEGのquality 80より実際の画質が高い(同じ数値でも計算方法が異なるため)という点は注意が必要です。WebPではquality 75〜82が、JPEGのquality 85相当の見た目に近い、と実測上は感じています。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パフォーマンス関連の記事一覧画像最適化タグも合わせて確認すると、全体の改善ポイントが整理しやすくなります。


関連する記事

テクノロジー · 12分 · 0

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

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

テクノロジー · 11分 · 2

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

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

テクノロジー · 9分 · 4

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

結論: 3人以下・長期運用ならローカル、4人以上・短命プロジェクトはクラウドが合う。 TOC 開発環境の選択は「どちらが優れているか」という問いではなく、「このプロジェクトに何が合うか」という問いです。 最初は「クラウドなんて大げさ」と思っていたのですが、実際に5人チームでGitHub Codespacesを使い始めて…

テクノロジー · 10分 · 3

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

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

テクノロジー · 9分 · 0

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

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

テクノロジー · 10分 · 0

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

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

コメント

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

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