AI生成画像をブログ用に一括WebP最適化|9枚を9.83MB→0.38MBにした実測とスクリプト

2026.06.09 約 9 分で読めます

9枚で 9.83MB。AI でアイキャッチを作っていると、画像はあっという間にこのくらい重くなります。さすがにこのままブログには載せられないので、リサイズと WebP 変換のスクリプトで一括最適化してみました。結果は 0.38MB、96% 減。しかも9枚まとめて0.57秒です。この記事では、そのスクリプトを全文そのまま置いておきます。「96% も削って画質は平気なの?」という不安にも、実際に目で見て確かめた結果でお答えします。

結論:9.83MB→0.38MB。スクリプト1本で96%軽くなった

結論から言うと、AI生成画像の最適化は、1回スクリプトを作ってしまえば毎回ほぼ手間ゼロになります。やることはたった2つ。

  • 表示幅に合わせてリサイズ:元は1536px幅。ブログ本文に合わせて1200pxに縮める
  • WebP に変換:見た目はそのままで、ファイルサイズだけが大きく減る

この2つを9枚にまとめてかけた実測が、9.83MB → 0.38MB(96%減)。時間は0.57秒でした。手作業なら15分以上かかる作業が、文字どおり一瞬で終わります。順に説明していきます。

なぜ最適化が要るのか(重い画像はLCPを悪化させる)

そもそも、なぜ画像を軽くする必要があるのか。画像が重いとページの表示が遅くなり、Core Web Vitals という指標、とくに LCP(一番大きい要素が表示されるまでの時間)が悪化します。この指標は検索評価にも効いてきます。

WebP は同じ画質でも JPEG より 25〜34% 小さい形式です(Google 公式の数値)。重いページで画像を WebP に変えるとダウンロードが軽くなり、LCP の改善につながりやすいと web.dev も説明しています。とくに AI が作るイラストや図の PNG は、写真より WebP で激しく縮みます。今回も、効いたのはまさにそこでした。

実測:AI生成画像9枚を変換した結果

では実際の数字を見てください。すべて今日このブログ用に作った本物の画像9枚を、そのまま変換しています。

画像beforeafter削減
img-011,138 KB42 KB96%
img-022,288 KB164 KB93%
img-031,025 KB37 KB96%
img-04832 KB18 KB98%
img-05792 KB12 KB98%
img-06877 KB14 KB98%
img-071,279 KB64 KB95%
img-08848 KB11 KB99%
img-09984 KB25 KB97%
合計9.83 MB0.38 MB96%

9枚で0.57秒、1枚あたり64ミリ秒。準備も拍子抜けするほど軽くて、変換ライブラリの sharp は導入に4.4秒しかかかりません。追加の設定もいりませんでした。

コピペできる変換スクリプト(全文)

Node.js と sharp で動きます。src フォルダに PNG を入れて実行すると、out に WebP が出てきます。

// 事前に: npm install sharp
import sharp from "sharp";
import { readdir, stat, mkdir } from "node:fs/promises";
import path from "node:path";

const SRC = "./src";        // 元PNGを入れるフォルダ
const OUT = "./out";        // WebPの出力先
const MAX_WIDTH = 1200;     // 本文の表示幅に合わせる
const QUALITY = 80;         // WebP品質(80で十分)

await mkdir(OUT, { recursive: true });
const files = (await readdir(SRC)).filter((f) => f.endsWith(".png"));

for (const f of files) {
  const inPath = path.join(SRC, f);
  const outPath = path.join(OUT, f.replace(/\.png$/, ".webp"));
  await sharp(inPath)
    .resize({ width: MAX_WIDTH, withoutEnlargement: true })
    .webp({ quality: QUALITY })
    .toFile(outPath);
  const before = (await stat(inPath)).size;
  const after = (await stat(outPath)).size;
  console.log(`${f}: ${Math.round(before/1024)}KB → ${Math.round(after/1024)}KB`);
}

たった20行ほどです。MAX_WIDTH を自分のブログの本文幅に、QUALITY を好みに変えれば、もうそのまま使えます。

手作業 vs スクリプト

同じことを手作業でやるとどうなるか。画像を1枚ずつ開いて、リサイズして、WebP で書き出して、名前を付け直す。やったことのある人なら分かると思いますが、これが地味に時間を取られるんです。

指標手作業(見積もり)スクリプト(実測)
9枚の変換時間約15〜20分0.57秒
合計サイズ9.83 MB0.38 MB
手順開く→リサイズ→書き出し→改名コマンド1回

正直に書くと、手作業の15〜20分は「1枚1〜2分 × 9枚」の見積もりで、人をストップウォッチで測った数字ではありません。一方、スクリプト側の0.57秒とサイズ96%減はどちらも実測です。ここは分けて受け取ってください。

画質は大丈夫か:96%減でも実用な理由

96%減と聞くと、さすがに画質が壊れていないか不安になりますよね。わたしも気になったので、一番情報量の多い1枚(2.2MB→164KB)を目視で確認しました。文字もちゃんと読めて、目立つ劣化はなし。ブログのアイキャッチ用途なら、幅1200px・品質80でまったく困りませんでした。

ただ、数字に驚いても、必ず1枚は自分の目で確かめてください。これは前にAI生成画像の検証記事でも書きましたが、画像は最後に目視するのが結局いちばん安全です。

向かない場面・注意

  • 削減率は元画像次第:今回は PNG のイラストなので96%という極端な値です。元が写真の JPEG なら、削減は25〜34%くらいに収まります
  • 大きく見せたい写真:作品写真を大きく見せたいときは、品質80・幅1200pxだと物足りないことがあります。そこは品質か幅を上げて調整します
  • 古い環境の互換性:ごく古いブラウザは WebP 非対応です。いまの主要ブラウザは対応済みですが、要件次第で JPEG も用意しておきます

念のため補足すると、「いつでも96%減る」ではなく、「AIが作るイラストPNGは劇的に減る」という話です。そこは誇張せずに受け取ってください。

まとめ

  • AI生成画像は重い。ブログに載せる前に一括最適化する仕組みを1つ作っておくと、毎回ラクになる
  • リサイズ+WebP変換で、今回は9.83MB→0.38MB(96%減)・0.57秒
  • スクリプトは20行ほど。sharp の導入も4.4秒で済む
  • 削減率は元画像次第。写真JPEGなら25〜34%が目安
  • 削減率の数字に驚いても、必ず1枚は目視で画質を確認する

上のスクリプトはコピペでそのまま動きます。AI でアイキャッチを量産しているなら、最初に1本だけ用意しておくと、あとがずっとラクになりますよ。自動化の仕組みづくりについてはこちらの記事でも触れています。

画像も含めてブログ運用を仕組み化したい方へ

画像の最適化も含めて、ブログ運用をまるごと仕組みにしてしまいたい。そんなときは、AI を使った業務効率化の設計・導入支援もしています。まずは30 分の無料相談から始められます。 → サービス詳細はこちら

こま

こま

元SE × AI開発 × 業務自動化の実践者

SE 4年 + プログラミング歴 8年。業務自動化と AI 組み込み開発を仕事にしながら、現場で使えるものだけを書いています。 最新のAIの現場を発信中!!