WordPressを長く運営していると、メディアライブラリがどんどん膨れ上がっていきます。
過去に使っていたけれど記事から外した画像や、アップロードだけして未使用のまま残っているファイル…。
こうした不要メディアはディスク容量を圧迫するだけでなく、バックアップサイズまで大きくしてしまいます。
私もバックアップの転送が遅くて調べてみたら「未使用画像が何百枚も残っていた」という経験がありました。
そこで役立つのが wp-cli でのメディア検出&削除です。
未使用メディアを検出する
wp-cli にはメディアを一覧する wp media list コマンドがあります。
このとき --status=inherit を指定すると「投稿に紐づいていないメディア」を洗い出せます。
wp media list --status=inherit --format=ids
--status=inherit→ 親投稿を持たない添付ファイル(孤立した画像など)--format=ids→ IDだけを出力するので削除に使いやすい
このコマンドを実行すると、未使用のメディアID一覧が取得できます。
不要メディアを削除する
検出したIDをそのまま wp media delete に渡せば削除できます。
wp media delete $(wp media list --status=inherit --format=ids)
- ゴミ箱を経由せず完全削除したい場合は
--forceを追加
wp media delete $(wp media list --status=inherit --format=ids) --force
私は最初に実行したとき、一気に数千件の画像が削除されて驚きました。
「こんなに使ってない画像あったのか…」と実感できる瞬間です。
注意点
未使用メディアを削除する前に、いくつか気をつけるポイントがあります。
- 必ずバックアップを取る → 誤削除すると復元が大変
- カスタムフィールドやテーマ内で使われている画像に注意 → 投稿に直接紐づいていなくても実際には使っているケースあり
- テスト環境で試すのが安心 → 本番サイトでいきなり実行しない
私は一度、記事には使っていないけれど「固定ページの背景画像」として呼び出していたファイルを削除してしまったことがあります…。
本当に不要かどうかは慎重に判断してください。
まとめ
wp media list --status=inheritで未使用メディアを検出wp media deleteでまとめて削除可能- サイトの軽量化やバックアップ時間の短縮に効果的
- ただし誤削除防止のため、必ずバックアップとテストを
WordPressを長期運用している方にとって、メディア整理は「見えない負荷」を減らす大事な作業です。
一度試してみると、メディアライブラリがスッキリして気持ちよく運用できますよ。

コメント