← 作品一覧へ | WordPress プラグイン一覧 | ブログ
最終更新: 2026年9月22日 | 執筆: Takahiro Nishii
revision 投稿タイプだけを対象にすれば安全です。件数が多い場合は、削除前にプレビューとバックアップができるプラグインを使うのが現実的です。筆者は長年運用するサイトの DB 肥大化を実際に経験し、この課題を解決するために Revision Autopilot を開発・公開しました。
wp_posts を覗くと、記事本体の何十倍もの行が「リビジョン(過去版)」で埋まっていたのです。これが、このプラグインを作るきっかけでした(詳しい経緯は 開発ストーリー に書いています)。
WordPress は記事を更新するたびにリビジョン(過去版)を wp_posts に保存します。数年運用すると、リビジョンだけで数万行に達し、バックアップや移行が重くなることがあります。
本記事では、安全な削除手順とプラグイン選びのポイントを、実際の管理画面とあわせて解説します。
WordPress のリビジョンとは?削除して大丈夫?
リビジョンは「過去の下書き・公開版のコピー」です。post_type = revision として保存され、通常の一覧には出ません。
公開中の記事本体は別レコードなので、リビジョンだけを削除しても公開記事は消えません。
一方、リビジョンをすべて消すと過去版への復元はできなくなります。削除前にバックアップ(エックスサーバーの自動バックアップや All-in-One WP Migration 等)を取ってください。
手動でリビジョンを減らす方法(限界あり)
wp-config.php で今後の保存数を制限する
define('WP_POST_REVISIONS', 5);
これはこれから作られるリビジョンの上限であり、既存のリビジョンは削除されません。既に溜まった山はそのまま残ります。
phpMyAdmin で直接 DELETE する
技術者向けですが、SQL を一歩間違えると公開記事を巻き込んで消すリスクがあります。おすすめしません。プラグインまたは WP-CLI の方が安全です。
プラグインで削除すると何が変わるか
- 削除対象が
revisionに限定される(公開記事を巻き込まない) - 件数・容量を確認してから実行できる
- 投稿タイプ別(投稿のみ・固定ページのみ等)に絞れる
- 削除後に OPTIMIZE で
wp_postsの空き領域を詰められる
Better Delete Revision の代替は?
かつて人気だった Better Delete Revision は、2022 年に WordPress.org から削除されています(セキュリティ上の問題が指摘されました)。 そのため現在は、メンテナンスされている代替プラグインを選ぶ必要があります。放置され最新の WordPress で動くか分からないものは避けたいところです。
| 選び方のポイント | 理由 |
|---|---|
| WordPress 標準 API で削除 | wp_delete_post_revision() なら postmeta も整合する |
| nonce・権限チェック | CSRF や権限昇格のリスクを下げる |
| 削除前プレビュー | 誤削除の不安を減らす |
| 最近の更新・WP 7 対応 | 動作保証が明記されているか |
おすすめ: Revision Autopilot の使い方
筆者が開発した Revision Autopilot は、上記のポイントを満たす無料プラグインです。 WordPress.org 公式ディレクトリで公開中のため、管理画面のプラグイン検索からそのままインストールできます。
- 管理画面 → プラグイン → 新規追加 → 「Revision Autopilot」で検索し、インストール・有効化する
- 管理画面 → ツール → Revision Autopilot を開く
- リビジョン総数と推定容量、投稿タイプ別の内訳を確認する
- 「投稿のみ」「固定ページのみ」など、タイプ別に削除する(または全削除)
- 開いたパネルに出る削除件数を確かめて、同じ数字が書かれた確定ボタンを押す
- 削除が終わったら、テーブルの最適化を実行して空き領域を詰める
手順5は、うっかり押せないようにするための2段階です。最初のボタンは削除しません——何件消えるのかを書いたパネルを開くだけです。その中の確定ボタンにも同じ件数が並びます。この確認は JavaScript を切っていても働きます。
大量のリビジョンも1クリックで
リビジョンが数万件あっても、押すボタンは1回で済みます。内部で自動的にバッチ処理し、進捗バーを見ながら削除が進むので、大量削除でタイムアウトする定番の悩みが起きません。1回のリクエストで消すのは最大1000件までと決まっていて、残り何件かは毎回サーバが数え直します。途中で気が変わったら中止できます。すでに消えたぶんはそのまま残り、もう一度実行すれば続きから進みます。
人が見ていない場面でも
同じ操作は、管理画面を開かずにも呼べます。サーバに SSH で入れる環境なら wp revision-autopilot delete --all を cron に置けますし、--dry-run は何も触らずに対象だけ報告します。WordPress 6.9 以降なら Abilities API 経由でも同じ操作を呼べるので、エージェントに任せることもできます。画面・コマンド・ability の3経路は同じコードの上に乗っているので、どこから呼んでも結果は同じです。
もちろん、管理画面だけで完結させても構いません。コマンドラインは必須ではありません。
リビジョン削除で DB はどれくらい軽くなる?
目安は「リビジョンの post_content の合計サイズ」です。数千件・長文ブログでは数百 MB になることもあります。
ただし、削除直後の効果を体感しやすいのはバックアップ時間の短縮とphpMyAdmin 上の行数減少です。OPTIMIZE TABLE でテーブル断片化の整理もできます。
よくある質問
リビジョンを削除すると SEO は下がる?
いいえ。検索エンジンが見るのは公開 URL のコンテンツであり、内部の revision レコードは通常インデックスされません。
自動でリビジョンを作らないようにできる?
WP_POST_REVISIONS を false または数値に設定すれば抑制できます。ただし、編集ミス時の復元手段は減るため、運用方針に応じて選んでください。
マルチサイトでも使える?
Revision Autopilot はマルチサイト非対応です。単一サイト向けとしてご利用ください。
日本語で使える?
はい。日本語の翻訳を同梱しているので、サイトの言語設定が日本語なら管理画面も日本語で表示されます。
Takahiro Revision Cleanup を使っているが、乗り換えるべき?
はい。2本は Revision Autopilot に統合され、旧プラグインは役目を終えました。こちらを有効化してから、旧プラグインを停止・削除してください。書き出すものはありません——どちらも同じリビジョンを読んでいるので、最初に開いた画面の数値は同じに見えるはずです。
リビジョン整理は「一度やれば終わり」ではなく、大きな更新の後に繰り返すメンテナンスです。まずは件数だけ確認し、必要なときだけ削除する運用が安全です。
