NGINXでConvert for Mediaプラグインを使う
WebPやAVIFといった次世代画像ファイル形式にする密かに進んでいます。WordpressでWebPやAVIFにするときに、NGINXでは追加設定がいります。今回はConvert for Mediaを利用します。他のプラグインを使ったところ、画像のコンバート数の制限があり、Convert for Mediaへ辿り着きました。
WebPになぜするべきか
次世代画像フォーマットは非常に軽く、アクセス速度が速くなるためです。 数百KBのファイルが、数十KBのファイルに変わりレスポンスが早くなります。ストレージ容量の効率化、アクセス速度の高速化が期待できるため、自身は次世代画像フォーマットは積極的に使います。
Convert for Mediaの追加
WordPressよりConvert for Mediaプラグインの検索を行いインストールし、プラグインを有効化ます。

有効化するとメディアタグにConvert for Mediaの欄が増えますので、こちらをクリックして設定できます。

NGINXの設定
NGINXでは追加設定が必要になります。以下の設定を/etc/nginx/conf.d/default.confなどの、NGINXの設定ファイルに設定をしましょう。
# BEGIN Converter for Media
set $ext_avif ".avif";
if ($http_accept !~* "image/avif") {
set $ext_avif "";
}
set $ext_webp ".webp";
if ($http_accept !~* "image/webp") {
set $ext_webp "";
}
location ~ /wp-content/(?<path>.+)\.(?<ext>jpe?g|png|gif|webp)$ {
add_header Vary Accept;
expires 365d;
try_files
/wp-content/uploads-webpc/$path.$ext$ext_avif
/wp-content/uploads-webpc/$path.$ext$ext_webp
$uri =404;
}
# END Converter for Media
NGINXを再起動して設定を有効化すれば完了です。
systemctl restart nginx
Convert for Mediaを実行する
デフォルトの設定を確認します。
WebPがチェックされています。

uploadsが選択されていることを確認します。画像がアップロードされているフォルダです。


Start Bulk Optimizationをクリックして実行します。WebP画像へのコンバートが走ります。画像枚数制限がないの優秀ですね。

もし失敗したら
デフォルトの設定では元のファイルは削除されません。NGINXで設定した内容を削除してリスタートすれば、元の状態に戻せます。
失敗しても焦らず修正しましょう。
恐らく、NGINXのパスが異なると思いますので、正しいパスに書き換えて実行すると動作すると思います。
終わりに
NGINXでConvert for Mediaを使って、WebP化する方法をご紹介しました。画像サイズを縮小し、レスポンスが速くなることが期待できますので、是非お試しください。
よろしければTwitterフォローしてください。