WordPress 不要データを整理しデータベースを軽くする 基本的メンテナンス

目次

WordPressを使い続けると、記事の版(リビジョン)・書きかけの自動下書き・ゴミ箱に残った投稿・スパムコメントといったデータが、記事や設定を保存している入れ物(データベース)の中に少しずつ溜まっていきます。溜まった量が多くなると、管理画面の動作に影響が出ることがあります。

小規模なWEBサイトであれば、それほど小まめにDBのメンテナンスを行う必要はありませんが、とはいえ知識として知っておくことは重要です。そして、数百、数千という投稿があるWordPressサイトであれば、データベースの定期的メンテナンスは必ず実施したほうが良いでしょう。

当サイト記事 難易度表記について

  • 【難易度:簡単】WordPressの管理画面だけでできる・すぐ試せること
  • 【難易度:普通】少し手間がかかる(念のため、事前にバックアップを取りましょう)
  • 【難易度:やや難しい】FTPや設定ファイルへの操作が必要(これらが分からない場合や、不慣れな場合は実施するかは慎重に検討ください)
  • 【難易度:難しい】専門の知識が必要。場合によっては致命的なトラブルにもなりかねませんので自信がない場合は専門家へご相談を

まず結論:何をすればよいか

プラグインを使って、管理画面から操作するのがいちばん安全な出発点です。

  1. データベースのバックアップを取っておく(整理の前に必須)
  2. データベース管理プラグインをインストールして設定する
  3. リビジョン・自動下書き・ゴミ箱・スパムコメント・期限切れ一時データなどを整理・棚卸しする
  4. 定期実行を設定して、以後は自動で整理できるようにする

この記事の作業範囲

プラグインを使った削除は管理画面内の操作で完結し、プラグイン上で元に戻せる作業です。一方、リビジョン数の上限を設定する手順では wp-config.php(WordPressの基本設定が書かれたファイル)を編集します。このファイルは編集を誤るとWordPressが動かなくなるため、慣れていない場合は無理に進めないでください。

事前準備:バックアップを必ず取る

データベースの内容を削除する操作は、元に戻せません。整理の前に必ずバックアップを取っておいてください。

バックアップの取り方はWordPressのバックアップの取り方と、いざというときの復元をご覧ください。特にデータベースのバックアップ(エクスポート)を確認してから作業に進んでください。

手順1:データベース管理プラグインを利用する【難易度:簡単】

WordPressで構築されたWEBサイトのDBを最適化するのに一番手軽な方法としては、専用のプラグインを導入する事です。phpMyAdminなどから直接作業ができる……という方でなければ、この方法をお勧めいたします。

DBを管理するプラグインのインストール方法は、一般的なプラグイン同様……管理画面から
「プラグイン」→「新規プラグインを追加」
と選択し、プラグインを検索してインストールを行っていくことになります。今回の場合「Database Optimize」といった単語で検索すると良いかもしれません。

wordpress.org プラグインディレクトリには多数のDB管理プラグインが用意されていますが。インストールの際は以下の点を確認して選定しましょう。

  • 評価の星の数と件数(評価件数が少ないと判断材料が少ない)
  • 最終更新日(長期間更新されていないプラグインは注意)
  • 使用中のWordPressバージョンとの互換性表示

当記事執筆時点では下記のプラグインが新・メンテナンスが活発で、評価も多いものですが、実際にどれを利用されるかはご自身で慎重にご検討ください。

  • おすすめプラグイン:
    • WP-Optimize(リビジョン・期限切れトランジェント等の整理、テーブル最適化、定期実行に対応。UpdraftPlus と同じ Team Updraft 製)
    • Advanced Database Cleaner(リビジョン・不要メタ等の整理、テーブル最適化、定期実行に対応)

データベースプラグインをインストール&有効化したあとは、各設定画面に進み最適化の実行を進めていく事になります。

手順2:プラグインを利用し削除対象を把握し、整理・棚卸する【難易度:普通】

ここではプラグイン個別の作業方法は記載しませんが、多くのDB最適化プラグインの設定画面では、整理できる対象が一覧になっています。以下に対象データとその判断例を記載しますのでご参考までにご覧ください。

対象判断備考
リビジョン削除しても公開記事には影響ないが、巻き戻しができなくなる削除後は元の版に戻せなくなるので注意。
直近に大きく編集した記事がある場合は慎重に
自動下書き削除してもよい作成途中で保存していない内容が消えることがある
ゴミ箱の投稿削除してよい殆どの場合問題ありませんが、当然ゴミ箱から戻せなくなります
スパムコメント削除してよい復元できない点は認識しておきましょう
未承認コメント内容を確認してから削除してよいこちらも同様に、復元できない点は認識しておきましょう
期限切れトランジェント削除してよい再生成されるため削除しても動作に影響しにくい
孤立メタプラグインが安全と判定したもののみ慎重に。判断できない・わからない場合は無理に対応しない

※記事下部にてより詳しく解説いたします

テーブルの最適化(オーバーヘッド)について

プラグインによっては、不要データの削除に加えて「テーブルの最適化」という項目を用意していることがあります。データを削除したあとのデータベースには、使われていない空き領域(「オーバーヘッド」と表示されることがあります)が残る場合があり、これを整理して切り詰める操作です。

ただし効果は、使っているデータベースの形式によって変わります。いまのWordPressで広く使われているInnoDBという形式は、空き領域をそのまま再利用する設計のため、最適化を実行しても体感できる差が出ないことが多く、プラグイン側で最適化の項目が無効(実行できない)になっている場合もあります。古い形式(MyISAM)が中心の構成では、削除後の最適化で領域が整理されることがあります。

運営の現場でも、データベースのサイズに効いているのは多くがリビジョンと期限切れトランジェントで、まずこの行データを削除するだけでサイズ表示が下がるのを確認できることが多いです。テーブルの最適化はそのうえで余裕があれば、という位置づけで十分です。いずれも管理画面のプラグイン上から実行でき、SQLを直接さわる必要はありません。

長く使われたデータベースは定期的に整理・棚卸しをしましょう
長く使われたデータベースは定期的に整理・棚卸しをしましょう
(イメージ)

手順3:リビジョン数の上限も設定しておく【難易度:やや難しい】

プラグインで不要データを削除&最適化しても、記事を書き続ければリビジョンは増えていきます。WordPressのデフォルト設定ではリビジョンが無制限に残っていくので、これまで手をつけていなければ「リビジョンを一定件数だけ残す」設定をしておくことをお勧めいたします。

リビジョン数を制御する設定は、wp-config.php(WordPressの基本設定が書かれたファイル)に追記する事で反映させる事ができます。このファイルの役割や編集の注意点は、WordPress公式の解説(wp-config.php)にもまとまっています。

ここから先は設定ファイルを直接編集する操作です。慣れていない場合は無理に進めないでください。

wp-config.php の編集を誤るとWordPressが起動しなくなります。FTPまたはサーバーのファイルマネージャーを使ったことがない場合や、不安を感じる場合は、この手順はスキップして専門家にご相談ください。

wp-config.php に追加する行

define( 'WP_POST_REVISIONS', 10 );

⚠️ コードを手入力するときの注意

上のコードをコピーする際、ブログや記事によっては全角スペースや全角クォート(" " ' ')が混入していることがあります。必ず半角のシングルクォート(')と半角スペースを使ってください。全角文字が混ざるとWordPressが動作しなくなります。

設定値の意味

動作
10(整数)最新10件のリビジョンだけ残す
true(デフォルト)上限なし
false または 0リビジョンを保存しない(自動保存は1件残る)

5〜10程度にしておくと、「少し前の版に戻す」という実用的な用途を保ちながら無限増加を防げます。ただし、執筆中に何度も上書き保存をするような作業フローの場合、もう少し上限を増やしていった方が良いでしょう。完全に無効化すると誤って上書きした記事を元に戻せなくなるため、0の設定は正直オススメいたしません。

追記する場所

/* That's all, stop editing! Happy publishing. */ と書かれた行よりもに追記してください。このコメント行より後に書いても効かない場合があります。

wp-config.phpへ設定を追加したあとは、WordPressの本番環境にFTPなどでアップロードし、一旦管理画面にアクセスして正常に表示されることを確認してください。そのうえで、投稿のリビジョンが指定した件数までしか残っていない事を確認しておきましょう。(表示が崩れたりエラーが出た場合は、追記した行を元に戻してください。)

リビジョンは各記事の右側メニュー内「投稿」タブに表示されています。
リビジョンは各記事の右側メニュー内「投稿」タブに表示されています。

手順4:DB管理プラグインで最適化の定期実行を設定する【難易度:簡単】

プラグインによっては、データベースの整理を定期的に自動実行するスケジュール設定ができます。週1回程度の自動最適化を設定しておくと良いでしょう。

※設定できる内容や画面はプラグインによって異なります。プラグインのサポートページや公式ドキュメントを確認してください。

補足:データベースに溜まっていくデータについて解説

【手順2】の表に記載した各対象について、もう少しだけ詳しく解説いたします。

リビジョン(投稿の版)

WordPressは記事を保存するたびに「どの時点にどんな内容だったか」を記録しています。これがリビジョンです。デフォルトでは上限がなく、保存のたびに増え続けます。たくさん加筆修正した記事では、1本の記事に対して数十件のリビジョンが溜まっていることもあります。リビジョンの仕組みはWordPress公式のリビジョン解説にもまとまっています。

リビジョンはデータベースの投稿テーブル(wp_posts)に本文と同じ場所に保存されているため、件数が増えるとデータベース全体のサイズを押し上げます。

自動下書き(auto-draft)

記事の編集画面を開いただけで、WordPressは自動的に「下書き」をデータベースに作成します。保存せずに閉じた場合でもしばらく残ります。作成から1週間ほど経過したものはWordPressの定期処理で自動的に削除される動作ですが、環境によっては残り続けることがあります。

ゴミ箱に残った投稿・固定ページ

削除した投稿や固定ページは、すぐに消えず「ゴミ箱」に移動します。デフォルトでは30日後に自動削除されますが、それまでの間はデータベースに残っています。

スパム・未承認コメント

コメント機能を有効にしているサイトでは、スパムや未承認のまま放置されたコメントが溜まりやすいです。大量になるとデータベースのサイズに影響することがあります。

期限切れトランジェント(一時データ)

プラグインやWordPress自体が「キャッシュのような一時データ」をデータベースの設定テーブル(wp_options)に書き込むことがあります。これをトランジェントと呼びます。有効期限が設定されているものは期限後に削除されますが、期限切れになったあとも削除されないまま残るケースがあります。

WordPress 5.8以降、期限切れトランジェントの定期的なクリーンアップ処理がコアに追加されましたが、プラグインの使い方次第で大量に溜まることがあります。

孤立メタ(概念として)

プラグインを削除すると、そのプラグインが書き込んでいたデータが投稿メタ(wp_postmeta)に残ることがあります。親の投稿が削除されたのにメタだけが残るケース(孤立メタ)も生じます。どのデータが不要かの判断が難しく、誤って削除するとプラグインの動作に影響が出る場合もあるため、この記事では「プラグインが対応している場合にのみ、プラグインが安全と判断したものを削除する」にとどめます。手動でのSQL操作は扱いません。

つまずきやすい点

最適化をしてみたが「削除件数がゼロだった」と言う事も?

もともと不要データが少ない状態か、以前に整理済みである可能性があります。定期的に実行していれば件数が少ないのは問題ありません。

「実行後に管理画面の動作が変わらない」

データベース以外に原因がある場合があります。プラグインの数・PHP/サーバーのスペック・キャッシュなど、別の要因の可能性があります。表示速度そのものを見直したい場合はWordPressの表示速度を改善する(初心者向け)もあわせてご覧ください。管理画面が重くて困っている場合は「WordPressの管理画面が重いときの対処法」を参照してください。

「wp-config.php を保存したらサイトが壊れた」

追記した行を削除(または元の内容に戻す)すれば、多くの場合は復旧します。FTPでファイルを取得して前後を確認してください。編集前に元のファイルをコピーしておくと、問題があってもすぐ元しやすくなります。

やってはいけないこと

  • バックアップなしに削除を実行する。 削除したデータは元に戻せません。
  • phpMyAdminやSQLで直接データを削除する。 誤って必要なデータを消すとWordPressが動かなくなります。失敗したときの影響が大きい危険な操作のため、当サイトでは手順を掲載していません。自分で判断できない場合はフォームからご相談ください。操作前のバックアップ状況と、整理したい対象を教えていただくと状況の把握が早くなります。
  • 「すべて削除」をよく確認せずに実行する。 未承認コメントの中に正規の問い合わせが混じっているケースがあります。

よくある質問

  • リビジョンを削除すると記事の内容自体も消えますか?
    • 消えません。リビジョンは「過去の版の記録」であり、公開中の記事本文とは別に保存されています。削除するのは過去の版の記録だけです。ただし削除後は、過去の版に戻す操作はできなくなります。
  • ゴミ箱に入れてからまだ日が浅い記事を誤って消してしまいました。復元できますか?
    • WordPressの管理画面上でゴミ箱に残っている間は、「ゴミ箱」画面から「復元」ができます。このページの手順でゴミ箱を空にした後は復元できません。
  • スパムコメントを削除してもすぐにまた溜まります。
    • 削除はあくまで既存の溜まりを掃除する操作です。スパム流入の根本的な抑制は、スパム対策プラグインやコメント機能自体のオン・オフを検討してください。
  • WP_POST_REVISIONS を設定したら、既存の大量のリビジョンはどうなりますか?
    • 設定してもすでに溜まっているリビジョンは自動的には削除されません。過去分の削除は、プラグインで別途実行する必要があります。

※ 本記事は一般的な対処方法の解説です。WordPressやサーバーの構成によって手順や結果は異なります。ファイルやデータベースの操作は、誤るとサイトが表示できなくなることがあるため、作業前に必ずバックアップを取り、ご自身の判断と責任の範囲で行ってください。無理に進めず、専門スタッフや保守契約担当者にご相談ください。ご相談先がない場合は、当サイトへお気軽にご相談ください。

今すぐ相談する(ご相談無料)