※この記事内の一部リンクにはアフィリエイトリンク(PR)が含まれます。
「編集ミスで記事が消えた」「データベースが肥大してサイトが重くなった」──そんな悩みを抱えていませんか?WordPressのリビジョン機能は便利ですが、放っておくとバックアップ時間やDBクエリの遅延、さらには機密情報流出のリスクにもつながります。本稿では、初心者でもわかる言葉でリビジョンの仕組みから実務で役立つ最適化手順、プラグイン選び、必要な場合のカスタム開発まで、具体的に解説します。
結論を先に言うと、まずは「保存数を制限」し、「投稿タイプごとの方針」を決め、定期的に不要リビジョンをクリーンアップするだけで大半の問題は解決します。既存プラグインで足りない要件があれば、カスタムプラグインで安全に実装するのが最も確実です。必要な場合はこちらのサービスで対応できます:WordPress専用プラグインを開発します 既存プラグインで無理な機能を実装します | ココナラ
WordPressリビジョン機能とは?仕組みをやさしく理解する
WordPressのリビジョン機能は、投稿や固定ページの編集履歴をスナップショットとして保存し、誤編集や誤削除から復元できる仕組みです。編集を「保存」「更新」すると、その時点のコンテンツがwp_postsテーブル内にpost_type=revisionとして保存され、元の投稿とはpost_parentで紐づきます1。
この仕組みにより、過去の状態を差分で比較したり、編集履歴から元に戻したりが簡単になります。一方で、すべてを無制限に保存するとデータベース容量が増えるので、運用ポリシーの策定が重要です1。
リビジョンが保存される場所と基本フロー(wp_posts/post_type=revisionの意味)
リビジョンはwp_postsテーブルにpost_type=revisionとして保存されます。各リビジョンは投稿本体と同様のカラム(post_content、post_title、post_date など)を持ち、post_parentカラムで元の投稿IDとリンクします。これが「親子関係」です。1
管理画面からは差分表示や復元が可能で、内部的にはIDとタイムスタンプ、作成者情報によってどのリビジョンがいつ作られたかが追跡できます。この構造を理解すると、どのクエリが重くなるか、どのデータが削除対象かを判断しやすくなります。
オートセーブとの違いを一目でわかる図解
オートセーブは編集中の短期的な一時保存で、通常は1つのオートセーブが上書きされていきます(編集中の保護目的)。リビジョンは明示的な「保存」「更新」「公開」操作で複数保存されます。オートセーブはリビジョン一覧に表示されないこともあるため混同しないようにしましょう2。
つまり、オートセーブは「作業中の保険」、リビジョンは「履歴の記録」。両者を使い分けることで誤操作に強い運用ができますが、どちらもDB容量に影響する点は同様です。
リビジョンとSEO・運用に与えるメリットとリスク
リビジョンはミスの復元や複数人での編集履歴の追跡に有効で、サイト運営の安全弁として重要です。公開前に戻せるので、誤って重要な部分を消してしまった際の復旧が簡単になります。
しかし、リビジョンが増えすぎるとバックアップ時間が長くなり、DBのサイズ増加はサイト速度や検索エンジン評価に間接的に悪影響を及ぼすことがあります。不要なリビジョンは定期的に整理する必要があります3。
復元・差分確認でミスを防ぐ利点と、古い復元が招く落とし穴
差分確認機能は誰がいつ何を変えたかを可視化するため、特に編集チームが多い場合に威力を発揮します。復元履歴があれば誤った編集をすぐに元に戻せます。
ただし「古いリビジョンを誤って復元してしまう」ケースもあり得ます。公開後に古い表現や古い情報が戻ってしまうとSEOやユーザー体験にマイナスになるため、復元時は差分をしっかり確認する運用ルールが必要です。
機密データがリビジョンに残るリスクと対策
投稿メタにAPIキーや非公開情報が含まれる場合、リビジョンにもコピーされる可能性があります。最近のWordPress(6.x系)では投稿メタのリビジョン保存の仕組みが導入・拡張されており、メタをリビジョン対象から除外する設計を考える必要があります4。
対策としては、機密メタを保存しない、リビジョン保存時にメタを除外するフックを実装する、あるいは重要情報はオプションテーブル等別領域に保存するルールを採ると良いでしょう。
データベースでどう保存されるか?wp_postsとwp_postmetaの関係図解
リビジョンの中身はwp_postsにあり、関連するカスタムフィールド(メタ)はwp_postmetaに保存されます。リビジョンが作成されると、そのリビジョン用のpost_idが生成され、関連メタはそれぞれのpost_idに紐づけて保存されるため、リビジョン1件につき関連メタが増えていきます5。
この構造を理解すると、特にメタが多い投稿タイプはリビジョン管理がDB肥大化の原因になりやすいことがわかります。メタリビジョンが有効になっている場合は、どのメタを保存するか明示的に制御しましょう4。
投稿本体とリビジョンの親子関係(post_parentの扱い)
リビジョンはpost_parentフィールドで元の投稿IDを参照します。これにより、どの投稿に紐づく変更履歴かを簡単に辿れます。DBクエリでリビジョンを検索する場合はpost_parentを条件に入れるのが基本です。
運用上は、削除やアーカイブを行うときにpost_parentを正しく扱わないと、元投稿に紐づくリビジョンだけ削除されず残ってしまうことがあるため注意が必要です。
投稿メタのリビジョン保存(WP 6.x以降の挙動と注意点)
WordPress 6.x以降では、投稿メタのリビジョン保存に関するフレームワークが整備され、プラグインやテーマがメタのリビジョン保存を制御しやすくなっています。ただしコアの挙動変更に伴い、既存プラグインとの互換性を必ず確認してください4。
ポイントは「どのメタをリビジョンするか」を明確に定義することです。無闇に全メタを保存するとDBが膨張するので、必要なメタだけを保存する設計が重要になります。
リビジョン増加がもたらすDB負荷とパフォーマンス悪化の実例
実務で見られる典型的な問題は、頻繁に更新されるページや大量のカスタムフィールドを持つ投稿タイプでリビジョンが急増し、バックアップサイズが大きくなって復元時間が延びるパターンです。これにより運用コストが増え、障害時の復旧が遅れます3。
さらに、DBクエリが重くなるとページ生成時間が伸び、結果としてユーザー体感も悪化します。大規模サイトでは定期的なクリーンアップとインデックス最適化が不可欠です5。
バックアップや復元時間、クエリ遅延に直結する理由
バックアップはDB全体やテーブル単位で行われるため、リビジョンが増えればその分バックアップ対象が膨らみます。差分バックアップでも、頻繁な更新があると差分量が大きくなりがちです。
また、管理画面やフロントの一部機能がリビジョンを参照する設計になっていると、不要なJOINやWHERE句が増えてクエリ遅延を招くことがあります。クエリ計画とインデックスを確認して、不要なアクセスを減らすことが肝要です。
セキュリティスキャンや運用ノイズになるケース
リビジョンが大量にあると、マルウェアスキャンやログ解析でノイズが増え、本当に重要な通知を見逃すリスクがあります。スキャン対象を絞るか、リビジョンを別ストレージに退避する運用も検討しましょう5。
運用上は「スキャン対象」「バックアップ対象」それぞれに対してポリシーを定め、リビジョンは要不要に応じて除外・アーカイブするのが現実的です。
リビジョンを最適化する簡単3ステップ(今すぐできる具体策)
対策はシンプルです。1) WP_POST_REVISIONSでグローバル上限を設定する、2) wp_revisions_to_keepフィルターで投稿タイプ別に調整する、3) 不要なリビジョンを安全に削除する、の3つを順に実施してください。
これだけでDB肥大化の多くを防げます。以下に各ステップの具体的なやり方と安全な値の目安を示します。
STEP1:WP_POST_REVISIONSでグローバル上限を設定する方法(安全な値の目安)
wp-config.phpに次のように追記して上限を設定できます(例:最新5件を保持)。define('WP_POST_REVISIONS', 5);。0にするとリビジョンを無効化できますが、オートセーブは別途動く点に注意してください1。
推奨値はコンテンツの性質により変わりますが、更新頻度が高いブログ系は3〜5、ノウハウ記事や長期保存が必要なページは10〜20程度を目安にしてください。
STEP2:wp_revisions_to_keepフィルターで投稿タイプ別に差をつける例
functions.phpにフィルターを入れて投稿タイプごとに保持数を変えることができます。例:投稿は5、カスタム投稿タイプは0にするなど運用ルールを反映できます。1
実運用では、まず方針(頻繁更新記事=少なめ、長期保存=多め)を決めてからフィルターを設定すると手戻りが少ないです。カスタム実装が必要な場合は専門家に相談するのも手です。
STEP3:不要リビジョンを安全に削除する手順と推奨プラグイン
不要リビジョンの削除はWP-OptimizeやBetter Delete Revisionなどのプラグインで安全に実行できます。削除前には必ずフルバックアップを取り、スクリプト実行後にサイト全体の動作を確認してください6。
大量にある場合は段階的に削除し、バックアップからのリストアチェックを行うのが安全です。WP-CLIを使える環境ならコマンドベースで制御するのも有効です。
プラグインで管理するメリットと用途別おすすめ(比較と選び方)
GUIで設定できるプラグインは導入が簡単で、安全に運用ルールを反映できます。特にコードに自信がない場合は、まずは信頼できるプラグインで運用を固めるのがおすすめです。
選定基準は「最終更新日」「WP/PHP互換性」「サポート体制」「必要機能(投稿タイプ別設定、メタリビジョン対応、スケジュール削除)」の4点です。導入前に必ずテスト環境で動作確認してください。
軽量に上限を設定したい場合の選択肢
簡単に上限をGUIで設定したいなら「Simple Revision Control」が使いやすく、投稿タイプ別に保存数を指定できます7。
ただしプラグインごとに機能差があるため、メタリビジョンやスケジュール削除が必要な場合は別の選択肢も検討してください。
定期クリーン・DB最適化・メタリビジョン対応プラグインの使い分け
総合的な最適化を求めるならWP-Optimizeのようなツールが便利で、リビジョン削除だけでなくDBテーブルの最適化やキャッシュ機能を併せて使えます6。
大量のリビジョンを検出して削除するだけが目的ならBetter Delete Revisionのような専門プラグインを使う選択肢もあります。必要に応じて使い分けましょう。
導入前チェックリスト(互換性・最終更新・バックアップ)
導入前に確認すべきは:1) WordPressとPHPのバージョン互換性、2) プラグインの最終更新日とレビュー、3) 変更前のフルバックアップ、4) テスト環境での挙動確認、の4点です。これだけで不具合の多くを防げます。
特にカスタムフィールドや他プラグインと連携している場合、プラグインが想定している保存対象を理解しておくことが重要です5。
既存プラグインで足りない機能はどうする?カスタム開発の進め方
既存プラグインで要件を満たせない場合は、カスタムプラグインで機能を実装するのが最も確実です。要件定義→実装→テスト→デプロイという順序で進め、安全なDB操作とフック設計を重視します。
例えば「特定のメタだけリビジョン保存する/除外する」「リビジョンを別テーブルに退避する」といった要件は、既存ツールでは対応が難しいことが多いのでカスタム開発が有効です。私のサービスでもこうした要件の実装を承っています:WordPress専用プラグインを開発します 既存プラグインで無理な機能を実装します | ココナラ
要件定義〜実装〜検証までの安全な手順
要件定義では「どの投稿タイプ・どのメタを対象にするか」「リビジョンの保持ルール」「バックアップポリシー」を明確にします。実装段階ではフック(wp_save_post_revision、wp_after_insert_postなど)を適切に利用して安全に処理します4。
テストでは影響範囲を網羅的にチェックし、パフォーマンス試験や復元試験も行います。リリース後はログと監査で挙動を確認する運用も組み込みましょう。
実例:特定メタをリビジョン対象から除外するカスタム実装の考え方
考え方としては、保存処理のタイミングでリビジョンに含めたくないメタをフィルターで弾く方法が基本です。具体的には保存イベントでメタを一時的に除外し、リビジョン保存後に元に戻すなどのパターンがあります4。
安全面ではDBトランザクションやロールバック設計を入れておくと安心です。要件が複雑な場合は、既存プラグインを拡張する方法よりも専用プラグインを作る方が保守しやすい場合が多いです。
カスタム開発の相談・依頼はこちら(WordPress専用プラグインを開発します)
既存プラグインで対応できない要件や、運用に合わせた細かな制御が必要な場合はカスタム開発が最短ルートです。設計から実装、互換性確認、テストまで一貫して対応可能です。まずは要件をご相談ください:WordPress専用プラグインを開発します 既存プラグインで無理な機能を実装します | ココナラ
無料相談で現状の問題点と優先度を整理し、見積りとスケジュールをご提案します。小さな改善から大きな機能追加まで柔軟に対応します。
実務で使える運用チェックリストとバックアップ設計
運用チェックリストは「保持ポリシー」「バックアップ頻度」「定期クリーン」「復元テスト」「スキャン対象設定」を含めるのが基本です。これをルール化してチームで共有すると事故が減ります。
バックアップ設計は差分バックアップとフルバックアップのバランスが重要で、頻繁に更新するサイトほど差分を細かく、長期保管が必要なサイトは定期フルを残すと良いです。
コンテンツ種別ごとの保持方針テンプレート(頻繁更新/長期保存/無効化)
例としてテンプレートを作ると運用が楽になります。頻繁に更新するニュース記事は最新3〜5件、長期保存が必要なノウハウ記事は10〜20件、商品データなどはリビジョン無効など、用途ごとに明確に分けましょう1。
こうした方針をコードやプラグイン設定に落とし込み、定期的に運用レビューをすることで現状に合わせて柔軟に変更できます。
バックアップ設計:差分とフルの使い分け・リストア確認の頻度
差分バックアップは短時間で済みますが、累積差分が大きくなるとリストアに時間がかかるため、週に1回はフルバックアップを残すのが一般的な目安です。重要サイトではフルの頻度を上げてください。
リストア確認(復元テスト)は最低でも四半期ごとに実施し、実際に復元できることを確認する運用ルールを組み込みましょう。これで万が一の際の不安を減らせます。
表:表タイトルを考える
以下は「リビジョン最適化のステップと推奨ツール」をまとめた表です。手順ごとに優先度とチェック項目を一目で確認できます。
| ステップ | 目的 | 推奨ツール/方法 | 優先度 |
|---|---|---|---|
| WP_POST_REVISIONS設定 | グローバルな保存数制御 | wp-config.phpに define(‘WP_POST_REVISIONS’, 5); を追加 | 高 |
| 投稿タイプ別フィルター | コンテンツ種別ごとに差をつける | wp_revisions_to_keep フィルター実装 | 高 |
| 不要リビジョン削除 | DB容量削減・バックアップ短縮 | WP-Optimize / Better Delete Revision / WP-CLI | 中 |
| メタリビジョン制御 | 機密メタの保護 | カスタムプラグインで除外ルール実装 | 中〜高 |
| 復元テスト | バックアップの信頼性確認 | 定期的なリストア検証(四半期) | 高 |
この表を基に運用計画を作成し、手順ごとに担当者と頻度を決めると、実行性が高まります。
よくある質問に答える(Q&A形式)
以下は運用担当者やオーナーからよく寄せられる質問とその回答です。短く実践的な答えを心がけました。
Q:リビジョンを完全に無効にしても安全ですか?/A:状況別の推奨
短答:ケースバイケースです。小規模で更新が少ないサイトなら無効化しても問題ない場合がありますが、編集ミスからの復元が必要な場合は無効化しない方が安心です。
推奨:運用上、復元の必要性があるなら上限を低めに設定する(3〜5)か、投稿タイプ別に無効化するのが現実的です1。
Q:古いリビジョンをWP-CLIで安全に削除するには?/A:具体コマンド例と注意点
短答:WP-CLIでの削除は効率的ですが、実行前に必ずフルバックアップを取ってください。コマンド例は状況により異なりますが、慎重にフィルターをかけて削除しましょう。
注意点:削除対象を誤ると復元不能になるため、まずはテスト環境でコマンドを試し、ログを残す運用を行ってください。大量削除は段階的に行うのが安全です5。
Q:投稿メタが増える場合の最善策は?/A:フィルターとプラグインの組合せ提案
短答:重要なメタだけリビジョン対象にし、不要なメタは除外しましょう。WP 6.xのメタリビジョン制御を活用しつつ、必要ならカスタムプラグインで厳密な制御を実装します4。
運用例:商品データのように頻繁に変わるが復元が不要なメタはリビジョン無効、主要なコンテンツ説明などは保持する、といったルールを作り、プラグイン設定で反映します。
まとめと今すぐやるべき3つのアクション(効果が出る優先順)
最後に、今すぐ実行して効果が出る優先順のアクションをまとめます。まずは現状を可視化し、小さく始めて確実に改善していきましょう。
以下の3つを順に実施すれば、安全性とパフォーマンスの両方で改善が見込めます。
即実行:WP_POST_REVISIONSの確認・バックアップ
まずはwp-config.phpを確認し、WP_POST_REVISIONSの設定が適切か確認してください。設定がない場合はまずバックアップを取り、define('WP_POST_REVISIONS', 5);などで上限を入れるのが手軽で効果的です。
同時にフルバックアップを取得し、復元手順が機能することを確認しておきましょう。これで万が一の時にも安心です。
優先実施:投稿タイプ別方針の決定と自動クリーン設定
次に、コンテンツ種別ごとの方針を決めて、wp_revisions_to_keepフィルターかプラグインで反映します。頻繁更新記事は少なめ、長期保存記事は多めが基本です。
自動クリーンのスケジュールを組んで定期的に不要リビジョンを削除すれば、継続的にDBを健全に保てます。
必要時:カスタム開発で業務要件を満たす(ご相談はこちら)
既存プラグインで対応できない業務要件がある場合は、カスタムプラグインで要件を実装するのが安全で確実です。メタの細かな扱いや大規模データのアーカイブなどは専門家に任せると安心です:WordPress専用プラグインを開発します 既存プラグインで無理な機能を実装します | ココナラ
まずは現状の問題点を整理することから始めましょう。要件に合わせた提案と見積りを用意しますので、お気軽にご相談ください。
- 1. Revisions – Documentation – WordPress.org https://wordpress.org/support/article/revisions/
- 2. Restore a revision of a page or post – WordPress.com Support https://wordpress.com/support/page-post-revisions/
- 3. WordPress Revision History: Complete Technical Guide – IsItDownOrJustMe https://isitdownorjustme.net/web/wordpress-revision-history/
- 4. Framework for storing revisions of Post Meta in 6.4 – Make WordPress Core https://make.wordpress.org/core/2023/10/24/framework-for-storing-revisions-of-post-meta-in-6-4/
- 5. Revisions in the WordPress database – PublishPress https://publishpress.com/blog/revisions/revisions-in-the-wordpress-database/
- 6. WP-Optimize – WordPress.org https://wordpress.org/plugins/wp-optimize/
- 7. Simple Revision Control – WordPress.org https://wordpress.org/plugins/simple-revision-control/











WordPressで困っていませんか?ここに気軽に相談してください