WordPress の画像最適化プラグイン「EWWW Image Optimizer」(以下、EWWW)を、無料版のまま使うときの設定をまとめます。

クライアントが自分で記事を書いて画像をアップロードするサイトでは、どんな大きさの画像が来ても、サーバー側で自動的に整える仕組みが必要です。EWWW は、アップロードした画像の縮小・圧縮・WebP 変換を自動で行ってくれます。設定画面のタブが多いので、どこをどう設定したかを残しておきます。

画像サイズの考え方や、テーマ側(functions.php)の設定は、別の記事「WordPressの画像管理|アップロード画像を最適なサイズで表示する仕組み」にまとめています。

WordPressの画像管理|アップロード画像を最適なサイズで表示する仕組み | CODE-PLUS(コードプラス) クライアントがどんな大きさの画像をアップロードしても、WordPressで最適なサイズを表示する仕組みを解説します。画像サイズの登録、メディア挿入時の初期サイズを「大」に固定するコード、srcsetの効き方、縮小の目安、altの付け方までまとめまし...  続きを読む

前提

  • 使用するのは無料版(ローカルモード)。圧縮 API キーと「簡単 IO」は使わない
  • サーバーは Apache(mod_rewrite が使える環境)
  • 画像の遅延読み込みは、テーマ側の JavaScript で行っている(EWWW の遅延読み込みは使わない)
  • 確認したバージョンは EWWW Image Optimizer 7.1.3

設定画面を「詳細モード」にする

初期状態では、設定画面が簡単モードになっていて、項目が一部しか表示されません。画面上部の「ルディクロスモード」ボタンを押すと、すべてのタブ(ローカル・高度な設定・リサイズ・変換など)が表示されます。

EWWWの初期状態の「必須」タブ。最大画像サイズが0のまま

上の画像は、設定前の「必須」タブです。「最大画像サイズ」が 0 のままで、WebP の配信方法にリライトルールの警告が出ています。

「必須」タブ

設定後の「必須」タブ。最大画像サイズ2560px、WebPルールの検証済み

項目 設定 理由
メタデータを削除 オン EXIF(撮影情報や位置情報)を削除して、容量を減らす
Image Detective オフ ログイン中の管理者向けの確認機能。常用しない
最大画像サイズ 幅 2560/高さ 2560 アップロードした画像を、長い辺 2560px までに縮小する
不足している寸法を追加 オフ EWWW の遅延読み込みが必要な機能のため
遅延読み込み オフ テーマ側の遅延読み込みと重なるため
WebP 変換 オン 対応ブラウザには WebP 画像を配信する
WebP の命名モード 追加(.jpg.webp) 元の拡張子を残したまま、.webp を付けたファイルを作る
WebP の配信方法 リライトルール .htaccess のルールで、対応ブラウザにだけ WebP を返す
JS WebP リライト・Picture WebP リライト・強制 WebP オフ リライトルールで配信できているため不要

最大画像サイズ

WordPress 本体にも、2560px を超える画像を縮小する機能(big_image_size_threshold)があります。ただし、本体の機能は元画像を残したまま、縮小版を -scaled という別ファイルで作ります。

EWWW の「最大画像サイズ」は、元画像そのものを指定の大きさまで縮小します。サーバーに巨大な元画像が残らないので、こちらを使い、テーマ側で本体の機能を止めています(設定は画像管理の記事で紹介しています)。

WebP の配信方法

設定前の画面では、「mod_headers が抜けているようです」という警告が出ていました。画面の説明にあるとおり誤検出のこともあり、「リライトルールを挿入する」ボタンでルールを追加したところ、「WebP ルールが正常に検証されました」と表示され、右側の確認用の画像も「WEBP」に変わりました。

ボタンを押すと、次のようなルールが .htaccess に追加されます。

<IfModule mod_rewrite.c>
	RewriteEngine On
	RewriteCond %{HTTP_ACCEPT} image/webp
	RewriteCond %{REQUEST_FILENAME} (.*).(jpe?g|png|gif)$
	RewriteCond %{REQUEST_FILENAME}.webp -f
	RewriteCond %{QUERY_STRING} !type=original
	RewriteRule (.+).(jpe?g|png|gif)$ %{REQUEST_URI}.webp [T=image/webp,L]
</IfModule>
<IfModule mod_headers.c>
	<FilesMatch ".(jpe?g|png|gif)$">
		Header append Vary Accept
	</FilesMatch>
</IfModule>
AddType image/webp .webp

HTML の画像 URL は .jpg のままで、WebP に対応したブラウザにだけ、サーバーが .jpg.webp のファイルを返します。HTML を書き換えないので、テーマ側の JavaScript で画像を入れ替えている場合でも影響がありません。

「ローカル」タブ

「ローカル」タブ。JPG・PNG・GIFはピクセルパーフェクト

項目 設定
JPG・PNG・GIF 最適化レベル ピクセルパーフェクト
PDF・SVG・WebP 最適化レベル 無圧縮
WebP 変換モード ローカル
バックアップ元 無効

無料版で選べるのは「ピクセルパーフェクト」(見た目を変えない可逆圧縮)までです。それより強い圧縮は、有料の圧縮 API キーが必要です。

WebP 変換モードの「ローカル」は、サーバーで WebP を作る方式です。画面に「サーバーの CPU を2倍使用します」と書かれているので、共用サーバーで大量の画像を一括変換するときは、時間帯を選ぶと安心です。

「高度な設定」タブ

「高度な設定」タブ。最適化するフォルダーにwp-contentを指定

項目 設定 理由
定期的な最適化 オフ 1時間ごとの自動処理は使わず、必要なときに一括最適化する
メディアフォルダを含める オン 一括最適化のときに、メディアライブラリの画像も対象にする
オリジナルを含める オン WordPress が縮小する前の元画像も最適化する
最適化するフォルダー wp-content/ の絶対パス テーマの images フォルダなど、メディアライブラリ以外の画像も対象にする
画像を除く wp-content/gallery/originals/ 元データとして残しておきたいフォルダを除外する
画像をシャープにする オフ 縮小時の処理が重くなるため
JPG 品質レベル・WebP 品質 空欄 WordPress 標準(JPG 82)と EWWW 標準(WebP 75)のまま使う

「最適化するフォルダー」には、サーバー上の絶対パスを書きます。相対パスでは動かないので、画面に表示されている public_html までのパスをもとに入力します。

「リサイズ」タブ

「リサイズ」タブ。既存の画像と他の画像のリサイズを許可

項目 設定 理由
既存の画像をリサイズ オン すでにアップロード済みの大きな画像も、一括最適化で 2560px までに縮小する
他の画像をリサイズ オン テーマの images フォルダなど、メディアライブラリ以外の画像も縮小の対象にする
オリジナルを保持 オフ 縮小前の元画像をサーバーに残さない
リサイズを無効化 すべてオフ テーマで登録した画像サイズは、すべて作成・最適化する

一覧に表示される画像サイズ(medium_large など)は、テーマや WordPress が登録しているサイズです。使わないサイズはテーマ側で作成を止めているので、ここでは何も無効にしていません。

「変換」タブ

「変換」タブ。オリジナルを削除のみオン

項目 設定
オリジナルを削除 オン
GIF を PNG に変換・PNG を JPG に変換・BMP から JPG への変換・JPG を PNG に変換 オフ

形式の変換は自動では行わず、必要な画像だけ手作業で変換します。たとえば、写真なのに PNG で保存されている画像は、JPG にするだけで容量が大きく減ります。ただし、透過のある PNG やイラストまで一律に変換されると困るので、自動変換はオフにしています。

「簡単 IO」は使わない

「必須」タブにある「簡単 IO」(英語版では Easy IO)は、画像を CDN 経由で配信し、表示サイズに合わせた縮小や AVIF 変換まで自動で行うサービスです。便利ですが有料で、2026年10月時点の料金は、いちばん安い Standard プランで月 8 ドル(年 80 ドル)です。30日間の無料トライアル(クレジットカード不要)はありますが、無料プランはありません。

また、テーマ側で data-src 属性と JavaScript を使って画像を入れ替えている場合、その画像の URL まで CDN 用に書き換わるかはわかりません。無料版のローカルモードで十分な効果が出ているので、今回は使わないことにしました。

設定後の確認

設定を保存したら、次の順で確認します。

  1. 「ローカル画像を最適化」ボタンから一括最適化を実行し、既存の画像を縮小・圧縮する
  2. 適当な画像をアップロードし、メディアライブラリで長い辺が 2560px 以下になっていることを確認する
  3. ブラウザの開発者ツールで画像のレスポンスを見て、Content-Type が image/webp になっていることを確認する
  4. PageSpeed Insights で、「画像配信を改善する」の削減見込みが減っていることを確認する

まとめ

  • 最大画像サイズを 2560px にして、巨大な元画像がサーバーに残らないようにする
  • 圧縮は無料版のピクセルパーフェクトで、WebP はリライトルールで配信する
  • 遅延読み込みや画像の自動変換は、テーマ側の仕組みと重ならないようにオフにする
  • 有料の「簡単 IO」は、テーマの画像の仕組みとの相性もあり、使わない

画像サイズの登録や、メディア挿入時の初期サイズの固定など、テーマ側の設定は「WordPressの画像管理|アップロード画像を最適なサイズで表示する仕組み」をご覧ください。

関連記事

WordPressの画像管理|アップロード画像を最適なサイズで表示する仕組み | CODE-PLUS(コードプラス) クライアントがどんな大きさの画像をアップロードしても、WordPressで最適なサイズを表示する仕組みを解説します。画像サイズの登録、メディア挿入時の初期サイズを「大」に固定するコード、srcsetの効き方、縮小の目安、altの付け方までまとめまし...  続きを読む WordPressのLCP・TBTをプラグインのJS/CSS整理で改善した施策 | CODE-PLUS(コードプラス) WordPressのLCP・TBTをプラグインのJS/CSS整理で改善した施策 | CODE-PLUS(コードプラス) WordPressのPageSpeedスコアが17というかなり厳しい状態から、プラグインのJS/CSSの整理だけで57まで改善できました。特にTBT(Total Blocking Time)は5.1秒 → 170ms、LCPは6.45秒 → 2.3...  続きを読む