サイトの表示が年々遅くなる、管理画面の動作が重い、バックアップに時間がかかるようになった。これらの症状は、データベースの肥大化が原因のことがあります。しかもデータベースの操作は、失敗するとサイトが復旧不能になる領域です。この記事では、何が容量を食っているのかという原因と、安全に整理する手順を解説します。
肥大化の原因は投稿数ではなく蓄積された不要データ
まず原因を特定します。記事数が原因であることは、ほとんどありません。
主な原因は4つ
| 原因 | 内容 | 影響の大きさ |
|---|---|---|
| リビジョン | 投稿の編集履歴が無制限に保存される | 最も大きい |
| スパムコメント | 未承認・スパム判定のコメントが蓄積 | 大きい |
| トランジェント | 期限切れの一時データが残り続ける | 中程度 |
| 削除済みプラグインの残骸 | アンインストール後も設定が残る | 中程度 |
リビジョンは1記事で数十件になる
WordPressは、投稿を保存するたびに編集履歴を自動保存します。初期設定では保存件数に上限がないため、1つの記事に数十件のリビジョンが蓄積します。100記事あれば数千件のデータになり、これが本文と同じ形式で保存されています。(記事1本の裏に、その何十倍もの下書きが眠っています)
スパムコメントは削除しないと残り続ける
スパム判定されたコメントは、削除するまでデータベースに保存されます。コメント欄を開いたまま数年運用していると、数万件に達することがあります。
削除したプラグインの設定が残る
プラグインを削除しても、そのプラグインが作成したデータベースのテーブルや設定値は残ることがあります。過去に試して削除したプラグインの数だけ、不要なデータが蓄積しています。
作業前に必ずやることはバックアップだけではない
データベースの操作は、他のどの作業より慎重に進める必要があります。
データベース操作は失敗すると復旧できない
ファイルの削除であれば再アップロードできますが、データベースの誤った操作は投稿・設定・顧客データを一度に失う可能性があります。プラグインが自動でやってくれる作業であっても、実行しているのはデータベースへの削除処理です。
作業前のチェック
- ファイルとデータベースの両方をバックアップする
- バックアップの保存先がサーバー外になっているか確認する
- バックアップファイルが実際にダウンロードできるか確認する
- WordPress本体とプラグインを最新にしておく
- 問題が起きても対応できる時間帯に実施する
- 作業前のデータベース容量を記録しておく
最適化プラグインの「不要データを削除」は、一度実行すると取り消せません。何が削除対象になっているかを画面で確認してから実行してください。全項目に一括でチェックを入れるのは避けます。
安全に減らせるものから順に処理する
影響の小さいものから着手します。
スパムコメントとゴミ箱の削除
最も安全で、効果が出やすい作業です。管理画面の「コメント」からスパムと未承認を一括削除し、投稿のゴミ箱も空にしてください。これだけで容量が半分になるサイトもあります。
リビジョンの保存件数を制限する
今後のリビジョンを無制限に保存しない設定にします。wp-config.php に保存件数の上限を定義する方法が一般的で、3件程度に制限すれば実用上の支障はありません。この設定はファイル編集を伴うため、不安がある場合は保守担当に依頼してください。
既存のリビジョンを削除する
過去に蓄積したリビジョンは、最適化プラグインで一括削除できます。ただし削除すると編集履歴から復元できなくなります。直近の履歴を残す設定にして、古いものだけ削除するのが安全です。
期限切れトランジェントを削除する
トランジェントは一時的なデータを保存する仕組みですが、期限切れのデータが自動で消えず残ることがあります。期限切れのものだけを削除する処理は、比較的安全です。
触ってはいけないもの
| 対象 | 扱い | 理由 |
|---|---|---|
| 投稿・固定ページ本体 | 削除しない | 公開中のコンテンツ |
| 使用中プラグインのテーブル | 削除しない | 機能が停止する |
| 問い合わせ履歴 | 内容を確認してから | 顧客情報が含まれる |
| ユーザーデータ | 削除しない | ログインできなくなる |
| 正体不明のテーブル | 調査してから | 使用中の可能性がある |
データベースの最適化と削除は別の作業
混同されやすい2つを区別します。
最適化はデータを消さずに整理する処理
データベースの最適化は、削除済みデータが残した隙間を詰めて効率を上げる処理です。データそのものは消えないため、削除より安全です。WordPress公式も、パフォーマンス改善の観点からデータベースの管理に触れています(出典 WordPress Developer Resources Optimization)。
削除は不要データを実際に消す処理
リビジョン削除・スパム削除は、データを実際に消します。取り消せないのはこちらです。プラグインの画面で両者が並んでいることが多いため、何を実行しようとしているか確認してください。
最適化だけでは容量は大きく減らない
不要データを削除せずに最適化だけ実行しても、効果は限定的です。順序としては、削除してから最適化する流れになります。
肥大化を防ぐ運用に切り替える
一度整理しても、対策しなければ元に戻ります。
コメント欄を閉じる
企業サイトでコメント欄を開いておく必要はほとんどありません。閉じればスパムの蓄積が根本的に止まります。肥大化対策として最も効果が高く、副作用のない対応です。
リビジョンの上限を設定したままにする
上限設定は一度行えば継続して効きます。設定後も、テーマの入れ替えやサーバー移転で設定が失われることがあるため、年1回は確認してください。
使わないプラグインは停止ではなく削除する
停止中のプラグインもファイルとデータが残ります。半年以上使っていないものは、バックアップを取ったうえで削除してください。データベースの容量とセキュリティの両面で効果があります。
問い合わせ履歴の保存期間を決める
フォームの送信内容をデータベースに保存している場合、それは年々増え続けます。個人情報を含むため、保存期間を決めて定期的に削除する運用にしてください。容量対策であると同時に、情報管理上も必要です。
それでも重い場合は原因が別にある
データベースを整理しても改善しないケースです。
表示速度の原因は画像であることが多い
ページの表示が遅い原因は、データベースより画像であることの方が圧倒的に多くなります。PageSpeed Insightsで指摘項目を確認し、画像関連の指摘が出ていればそちらが先です。
管理画面だけ重い場合はプラグイン過多を疑う
訪問者から見た表示は速いのに管理画面だけ重い場合、プラグインの数や、管理画面で動作する処理が原因です。プラグインを一時的に停止して切り分けてください。
サーバーの性能が限界の場合もある
アクセスが増えている、あるいは最安プランのまま数年運用しているといった場合、サーバー側がボトルネックになっていることがあります。データベースを整理する前に、まず何が遅いのかを切り分けるのが順序です。
最後に
データベースの肥大化は、記事数ではなくリビジョンとスパムコメントの蓄積が主な原因です。安全な順序は、バックアップ、スパムとゴミ箱の削除、リビジョンの上限設定、既存リビジョンの削除、最適化です。そしてコメント欄を閉じることが、最も効果が高く副作用のない予防策になります。データベース操作は取り消しが効かないため、必ずバックアップを確認してから着手してください。
Web管理では、月額1万円からWordPressサイトの運用保守を代行しています。データベースの診断と整理、リビジョン設定、不要プラグインの棚卸しまで対応可能です。「年々重くなっている気がするが原因が分からない」というご相談も歓迎します。

