WordPressの画像をWebPで配信する方法|SWELLに変換機能はない

WordPressの画像をWebPで配信する方法の記事のアイキャッチ。JPEGとPNGのファイルがWebPに変わる様子とブラウザ画面

WordPressの記事にJPEGやPNGの画像をアップロードしたあと、「WebPに変換した方がいい」と聞いて設定を探したのに、SWELLの管理画面にもWordPress本体にも、それらしい項目が見当たらない――ということがあります。

結論から言うと、SWELLというテーマには画像をWebPに変換する機能そのものがありません。テーマ本体のソースコード(v2.16.0)を検索しても、画像形式のWebPを扱う箇所は2か所だけで、どちらも変換処理ではありませんでした。実際、このmoreo note本番環境で稼働中のプラグイン9本(All-in-One WP Migration and Backup・CloudSecure WP Security・Contact Form 7・Highlighting Code Block・Microsoft Clarity・SEO SIMPLE PACK・Site Kit by Google・WP Multibyte Patch・XML Sitemap & Google News)をWordPressのREST APIで確認しても、画像最適化やWebP変換を行うものは1本もありませんでした。SWELLと素のWordPressだけの組み合わせでは、画像がJPEGやPNGのまま配信される状態は、ふつうに起こります。

この記事では、WebP配信の仕組みがWordPress本体・テーマ・プラグイン・サーバーのどこの仕事なのかを、公式情報とソースコードの実測で切り分けます。ロゴやファビコンは透過が必要なためPNGを推奨した別記事があります(SWELLでファビコンとロゴを設定する記事)。画像を1枚だけ手動でWebPに変換したい場合は、Macでの変換方法を別記事にまとめています(Macのスクリーンショット形式を変える記事)。

WordPressの画像をWebPで配信するときの役割分担。WordPress本体は画像を受け取るところまで、SWELLテーマは表示の担当、JPEGやPNGをWebPに変換するのはプラグイン、配信を速くするのはサーバーが担当することを示した図
変換だけは、誰も自動ではやってくれない
目次

WordPressの画像をWebPにするのは、どこの仕事か

WordPressの画像をWebPで配信する流れは、1つの機能にまとまっているわけではなく、4つの役割に分かれています。

担当 やること やらないこと
WordPress本体 WebP画像のアップロードを受け付ける(5.8以降) JPEGやPNGを自動でWebPに変換する処理は持たない
SWELLテーマ 表示速度に関わる設定(画像等のLazyloadなど)を提供する 画像形式そのものを変換する機能は持たない
プラグイン JPEG/PNGからWebPへの変換・自動化を担う 導入しない限り、この変換は誰も行わない
サーバー(Xserverなど) 静的ファイルのキャッシュや軽量化を担う WebPへの変換そのものは行わない(Xアクセラレータの場合)

この役割分担を知らずに「SWELLの設定のどこかにあるはず」と探し続けると、存在しない設定を探すことになります。次の章から、それぞれの担当を公式情報とソースコードの実測で確認していきます。

WordPress本体の「WebP対応」は変換ではない

WordPress公式のMake WordPress Coreブログ(2021年6月7日公開の記事)には、5.8で追加されたのはWebP画像をアップロードして使えるようになったことだけで、変換機能ではないと明記されています。原文でも”cannot currently convert images to WebP”とはっきり書かれています。

2024年2月23日公開の6.5のリリース記事で、image_editor_output_formatというフィルターフックがコアに追加されました。画像編集時にJPEGをWebPに変換するマッピングを設定できますが、公式のフックリファレンスにはデフォルトのマッピング配列は空だと明記されていて、何もしなければ変換は起きません。プラグイン側がopt-inで設定して初めて動く仕組みです。

自動でWebP・AVIF変換を有効にするには、Modern Image Formats(旧webp-uploads)という別プラグインの追加導入が必要です。「WordPress 5.8以降WebP対応」という説明だけを見ると自動で変換されるように読めますが、実際は「アップロードは通る」までで、変換は別の担当です。

なお、WordPress 6.7ではHEIC画像を自動でJPEGに変換する機能が既定で有効になりました。変換先はJPEGでありWebPではないため、この話とWebP対応の話を混同しないでください。

SWELLテーマ自体にWebP変換機能は無い

SWELLの公式サイトやマニュアルに、WebP変換について書かれたページは見当たりません。そこでテーマ本体のソースコード(ローカル環境のv2.16.0・style.cssで確認)を直接検索して確かめました。

「webp」で検索すると17件ヒットしますが、うち15件は「webpack」というJavaScriptのビルドツール名の一部で、画像形式のWebPとは無関係でした。画像形式のWebPを数えるときは、拡張子ではなくMIMEタイプのimage/webpで絞り込む必要があります。

image/webpでヒットするのは、次の2か所だけです。

ファイル:行 内容
classes/Json_Ld.php 構造化データ(schema.org)の型名WebPageの一部。画像形式のWebPとは無関係の同綴りです
classes/Customizer/Sanitize.php:98,119 カスタマイザーの画像アップロード欄(ロゴ・ファビコンなど)で許可するMIMEタイプの一覧にwebpが含まれているだけ

2つ目は、すでにWebP形式の画像を持っている場合にアップロードを弾かない、という許可リストの役割にとどまります。JPEGやPNGをWebPに変換する処理、配信時に自動で切り替える処理は、テーマ全体を通して0件でした。image_editor_output_formatimagewebpcwebpといった関数・フックも、SWELL本体には見当たりません。

SWELLには「高速化」設定に画像の遅延読み込み機能がありますが、これは画像が表示されるタイミングを遅らせる機能で、画像の形式そのものを変えるものではありません。この設定については、5章で改めて触れます。

プラグインを入れずに、アップロードする前に変換する

ここまで「変換はプラグインの仕事」と書いてきましたが、やり方はもう1つあります。WordPressに上げる前に、手元でWebPにしてしまう方法です。

このmoreo noteが、実際にその方法で運用しています。メディアライブラリの画像289件を調べたところ、241件(83%)がすでにWebPでした。直近にアップロードした30件はすべてWebPです。前述のとおり、変換系のプラグインは1本も入れていません。

Mac標準の sips ではWebPを書き出せない

先に、行き止まりを1つ潰しておきます。Macには sips という画像変換コマンドが最初から入っていますが、WebPの書き出しには対応していません。実際に試すと、次のように止まります。

$ sips -s format webp input.png --out output.webp
Error: Can't write format: org.webmproject.webp
Error 13: an unknown error occurred

(macOS 26・sips-316 で実行して確認。2026年9月時点)

cwebp を入れて、1枚だけ変換してみる

Googleが配布している cwebp を使います。Homebrewが入っていれば1行です。

brew install webp

入ったら、画像を1枚だけ変換してみます。

cwebp -q 85 input.png -o output.webp

-q は画質で、0〜100です。85前後にすると、見た目を保ったままかなり軽くなります。手元の図解(PNG・1,666×944)で試したところ、1,623KBが104KBになりました。約16分の1です。

フォルダごとまとめて変換する

記事1本ぶんの画像をまとめて変換するなら、こちらです。画像を置いたフォルダで実行します。

find . -maxdepth 1 \( -iname '*.png' -o -iname '*.jpg' -o -iname '*.jpeg' \) \
  -exec sh -c 'cwebp -quiet -q 85 "$1" -o "${1%.*}.webp"' _ {} \;

for f in *.png *.jpg; do ... と書きたくなりますが、macOSの標準シェル(zsh)では、該当するファイルが1枚も無いとそこで止まりますno matches found: *.jpg)。上の find を使う書き方なら、対象が無くても止まらず、ファイル名に空白が入っていても通ります。どちらも実際に動かして確認しました。

Claude Code に頼む場合

コマンドを覚えなくても、Claude Codeに頼めば同じことをしてくれます。画像の入ったフォルダで起動して、次のように伝えます。

このフォルダのPNGとJPEGを、画質85でWebPに変換して。
元のファイルは消さずに残して。
変換前と変換後のサイズを一覧で見せて。

「元のファイルは消さずに」と「サイズを見せて」を必ず付けます。元が残っていれば失敗しても戻せますし、サイズの一覧があれば、実際に軽くなったかどうかをその場で確認できます。

アップロード前とプラグイン、どちらを選ぶか

どこで変換するか向いている人手間
アップロードする前(手元)これから画像を増やす段階。既存が少ない最初に1回だけ準備する
アップロードした後(プラグイン)過去の画像が大量にある入れれば以降は自動。過去分もまとめて変換できる

すでに何百枚もアップロード済みなら、プラグインのほうが早いです。過去分もまとめて変換できます。これから増やしていく段階なら、アップする前に変換しておけば、プラグインを1本増やさずに済みます。

変換を担うのはプラグイン|EWWW・Converter for Media・Imagifyの無料枠を比べる

画像をWebPに変換する役割は、プラグインが担っています。2026年8月26日時点の各公式サイトの情報をもとに、主要な3つのプラグインの無料枠を比べました。

プラグイン 無料版でできること 主な要件
EWWW Image Optimizer ローカル変換が基本。非対応サーバーはクラウドAPI経由でも無料枠あり WordPress 6.8以上/PHP 7.4以上
Converter for Media(旧WebP Converter for Media) JPEG・PNG・GIFの変換・自動化・一括変換すべて無料対応 WordPress 4.9以上/PHP 7.4以上/GDまたはImageMagick拡張が必要
Imagify 無料プラン(Starter)は月20MB・約200枚まで 1画像あたり最大2MB

出典はEWWW Image Optimizer公式ページConverter for Media公式ページImagifyの料金ページです(いずれも2026年8月26日確認)。

Imagifyは料金ページにWebP・AVIF変換が機能として掲載されている一方、無料プランでどこまで使えるかはページ上に明記されていませんでした。無料枠の条件だけで比べるとConverter for Mediaがもっとも制限が緩い結果になりますが、サーバー上で処理するかクラウドAPI経由にするかといった運用方針によっても向き不向きは変わります。どれか1つに決め打ちせず、実際に導入して変換速度や管理画面の使い勝手で選ぶのが確実です。

SWELLの「画像等のLazyload」設定を先に決めておく

SWELLの「高速化」設定には、遅延読み込み機能というテーマ独自の設定があります。ソースコード(lib/menu/settings/speed.php)を見ると、「画像等のLazyload」という項目で、loading="lazy"属性を使う方式とlazysizes.jsというスクリプトを使う方式を、ラジオボタンで切り替えられるようになっています。

画像変換プラグインの多くは、独自の遅延読み込み機能を持っています。SWELL側とプラグイン側の遅延読み込みが両方オンになっていると、どちらの処理が優先されるかが分かりにくくなります。どの方式が何と具体的に衝突するのかはソースコードを読むだけでは特定できないため、プラグインを導入したあとはSWELL側の方式を切り替えながら、表示崩れや読み込みの遅れが出ないかを自分の目で確認しておくと安心です。

STEP
外観 → カスタマイズ → 高速化を開く

WordPress管理画面から「外観」→「カスタマイズ」→「高速化」と進みます。

STEP
「画像等のLazyload」の項目を確認する

遅延読み込み機能の中の「画像等のLazyload」で、現在どちらの方式が選ばれているかを確認します。

STEP
プラグイン導入後にもう一度表示を確認する

WebP変換プラグインを導入したあとは、SWELL側の方式を一度切り替えて、画像の表示や読み込みに変化が出ないかを実際のページで確認します。

Xserverで「反映されない」ときに見る場所|XPageSpeedとXアクセラレータは別物

プラグインでWebP変換を設定したのに、サイトを見ても画像がWebPで配信されている様子がない。Xserverを使っている場合、原因としてよく挙がるのが「XPageSpeed」と「Xアクセラレータ」という2つの機能です。この2つを混同すると、原因の切り分けを誤ります。Xserverの公式マニュアル2ページを取得して確認しました。

機能 WebPという語の有無(公式マニュアル内) 実際の内容
XPageSpeed 出現しない(0回) CSS・JSの圧縮、画像の軽量化
Xアクセラレータ 出現する(2回) 静的ファイルの2分間キャッシュ

出典はXPageSpeedの公式マニュアルXアクセラレータの公式マニュアルです(いずれも2026年8月26日確認)。Xアクセラレータの実際の内容は、.webpを含む静的ファイル(CSS・JS・画像・動画・フォント)をサーバー側で2分間キャッシュする機能で、WebPへの変換ではありません。

正直に書いておくと、XPageSpeedのマニュアルには「最適な画像タイプへの変換、軽量化」という表現があり、この一文だけを読むとWebPへの変換をしてくれそうに見えます。ただし本文中に「WebP」という語そのものは一度も出てきません。Xserver自身が公開しているConverter for Mediaの紹介ページでも、XPageSpeedはプラグインほど細かい設定はできないと説明されていて、Xserver側も画像の変換はプラグイン任せという立場だと読めます。

「プラグインで設定したのに反映されない」という症状の実体は、XPageSpeedとの競合ではなく、Xアクセラレータによる最大2分間のキャッシュの反映待ちである可能性が高いです。

STEP
プラグイン側の変換が実行されているか確認する

プラグインの管理画面で、画像が実際にWebPへ変換・保存されているかを確認します。

STEP
ブラウザのキャッシュを疑う

シークレットウィンドウ(プライベートブラウズ)で開き直し、ブラウザ側の表示が古いままになっていないかを確認します。

STEP
数分待ってから再確認する

Xアクセラレータは静的ファイルを最大2分間キャッシュします。設定した直後は、少し時間を置いてから再確認します。

STEP
XPageSpeedはWebP変換の機能ではないと理解しておく

XPageSpeedをオフにしても、WebP変換の競合が解消されるわけではありません。原因を探す場所を誤らないための前提として押さえておきます。

まとめ|あなたのサイトの画像が変わらないのは、担当者がまだいないだけ

WordPressの画像をWebPで配信する仕組みは、1つの機能にまとまっているわけではありません。WordPress本体はアップロードを受け付けるだけ、SWELLは変換機能を持たない、変換を担うのはプラグイン、配信の軽量化を担うのはサーバーです。

あなたのサイトの画像がいまもJPEGやPNGのまま配信されているとしたら、それはSWELLの設定が足りないからではなく、変換を担当するプラグインが、まだ導入されていないからです。ブラウザの開発者ツールで、自分のサイトの画像を1枚確認してみてください。

SWELLの設定をひととおり見直したい場合は、SWELL完全マスターガイドにまとめています。担当を1つ決めれば、あなたのサイトの画像はもう迷わず配信されます。

ホームページ制作のご相談はこちらから

新しくサイトをつくりたい、いまのサイトを直したい。そんなときは、お気軽にお声がけください。

ホームページ制作・WordPress構築・SWELLのカスタマイズ・コーディングサポートを承っています。

WordPressの画像をWebPで配信する方法の記事のアイキャッチ。JPEGとPNGのファイルがWebPに変わる様子とブラウザ画面

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次