WordPressデータベースのクリーンアップ方法|サイト高速化のための最適化手順とおすすめプラグイン5選
WordPressサイトを快適に、そして高速に運用したいなら、データベースから不要なデータを取り除く「クリーンアップ」は欠かせません。
WordPressデータベースのクリーンアップは、ページの表示速度を改善するために非常に効果的なメンテナンス作業です。キャッシュの活用、画像の最適化、JavaScriptの遅延読み込み、未使用CSSの削除といった他のパフォーマンス対策と併せて定期的に行うことで、より大きな効果が得られます。
WordPressのデータベースには、投稿や固定ページなどのコンテンツだけでなく、コメント、リンク、ポートフォリオ項目、フォームの送信内容、プラグイン設定、テーマ設定、メディア設定など、サイト運営に関わるあらゆる情報が保存されています。
しかし、放置しておくとデータベースには不要になったデータが次々と蓄積され、肥大化の一途をたどります。その結果、データベースのサイズが増え、情報の取得に時間がかかるようになり、サイト全体の表示速度が低下してしまいます。
データベース最適化の目的は、こうした不要なデータを削除し、サイトの効率を高めてページ表示を速くすることです。ここでは、まずWordPressのデータベースが肥大化する理由を確認し、その後、実際のクリーンアップ方法をご紹介します。
WordPressのデータベースが肥大化する理由
WordPressをインストールすると、11個のコアテーブルからなるデータベースが自動的に作成されます。これらのテーブルには、サイト設定、投稿、固定ページ、コメント、リンク、ユーザー情報などが格納されます。
サイトを更新したり新しいコンテンツを追加するたびに、データベースは少しずつ大きくなっていきます。例えば以下のようなケースです。
- 固定ページを新規作成 – ページのコンテンツを保存するためにwp_postsテーブルに新しい行が追加される
- コメントを受信 – コメントを保存するためにwp_commentsテーブルに新しい行が追加される
- 画像をアップロード – 画像URLを定義するためにwp_postmetaテーブルに新しい行が追加される
プラグインやテーマのコアファイル自体はwp-contentディレクトリに保存されますが、それらの設定や生成されたコンテンツは、専用のデータベーステーブルや追加の行としてデータベース内に保存されます。
つまり、新しいプラグインやテーマを有効化するたびにデータベースは大きくなります。問題なのは、ほとんどのプラグインやテーマが、無効化・削除されても自分が追加したテーブルや行をデータベースから削除してくれないことです。
さらに、スパムコメント、過剰な投稿リビジョン、未使用のメディアファイル、期限切れの一時オプション(トランジェント)なども、データベースを急速に膨らませる原因となります。
作業前のバックアップの重要性
データベースのクリーンアップや最適化でサイトが壊れることは基本的にありませんが、変更を加える前には必ずサイト全体のバックアップを作成することを強くおすすめします。誤って残すべきデータを削除してしまった場合でも、バックアップから復元できる安心感があります。
筆者自身のブログでは、BlogVaultを使って毎日自動バックアップを行い、必要に応じて同ツールで個別のバックアップも作成しています。

実践したいデータベースクリーンアップの5つの習慣
良いクリーンアップ習慣を身につければ、データベースが必要以上に肥大化するのを防げます。
対策1:コメントスパムを防ぐ
スパムコメントなどの不要なコメントは、データベースサイズを大幅に増加させます。トラックバックとピンバックを無効化し、Akismet、Antispam Bee、CleanTalkなどのアンチスパムプラグインを導入することで、コメントによる影響を抑えられます。
スパムが深刻な問題になっている場合は、筆者のようにコメント機能自体を完全にオフにしてしまうのも一つの選択肢です。

対策2:投稿リビジョンの数を制限する
WordPressのリビジョン機能は、下書きの保存や投稿・固定ページ・カスタム投稿タイプの公開のたびに履歴を記録します。また、60秒ごとに自動保存(オートセーブ/オートドラフト)も行われます。
リビジョン機能は過去の下書きと比較できて便利ですが、リソースの浪費にもなりかねません。1つの投稿につき自動保存は1つしか残りませんが、リビジョンの保存数には上限がないため、1つの記事に対して何百ものバージョンが蓄積される可能性があります。
現実的な対処法として、リビジョンの保存数に上限を設けましょう。wp-config.phpに以下の1行を追加すれば、リビジョンを3件までに制限できます。
define( 'WP_POST_REVISIONS', 3 );また、以下のように記述するとリビジョン機能自体を無効化できます。
define( 'WP_POST_REVISIONS', 0 );効率重視でリビジョンを完全に無効化するサイトオーナーもいますが、これはおすすめしません。下書き記事のバックアップが一切残らなくなるためです。望ましいのは、保存数を制限した上で、公開済みコンテンツの古いリビジョンを削除する運用です。
対策3:不要なプラグイン・テーマを削除する
使っていないプラグインやテーマをサイトに放置する癖はつけないようにしましょう。使用していないのであれば、ファイルを削除し、データベースからもデータを取り除くべきです。
一部のプラグインやテーマには、設定画面にアンインストール時に全データを削除するオプションがありますが、残念ながら大多数の製品はデータを残したままになります。手動での削除も可能ですが、WP-OptimizeやPlugins Garbage Collectorのようなデータベース最適化ツールを使えば、未使用テーブルを自動で検出してくれるため、より安全かつ簡単に作業できます(詳細は後述します)。
対策4:未使用のメディアを削除する
サイトで使われていないメディアも、データベースには保存されたままになっています。プラグインやテーマが有効化の際に画像などを取り込むのに、後から削除してくれることはほとんどないため、これは避けにくい問題です。結果として、関連付けられていないアイコン、スクリーンショット、未使用のサムネイルなどが大量に溜まってしまいます。
WordPressのメディアライブラリでも「添付されていないメディア」は確認できますが、一件一件必要性をチェックするのは時間がかかります。そこでおすすめなのがMedia Cleanerというプラグインです。未使用のメディアを自動で検出し、ワンクリックでまとめて削除できます。筆者の場合、このプラグインが数分で1,200枚を超える未使用画像を見つけてくれました。

対策5:各データベーステーブルを最適化する
phpMyAdminなどのデータベース管理ツールの操作に慣れているなら、Optimize Table機能を使ってストレージ容量を削減し、I/O効率を改善できます。経験豊富なユーザーであれば、MySQLのOPTIMIZE TABLEステートメントで直接実行することも可能です。
難しく感じる方もご安心ください。人気のデータベースクリーンアップ系プラグインを使えば、ボタンひと押しでこの最適化を実行できます。

プラグインでデータベースをクリーンアップする
多くのサイトオーナーにとって、専用プラグインの活用が最も手軽で実用的なデータベースクリーンアップの方法です。ここでは特におすすめの5つをご紹介します。
1. WP-Optimize

WP-Optimizeは、データベースクリーンアップ、ページキャッシュ、画像圧縮、CSS・HTML・JavaScriptの圧縮(ミニファイ)を1つのプラグインで提供するオールインワン型の最適化ソリューションです。
データベース最適化機能では、テーブルの最適化に加えて、投稿リビジョン、自動保存された下書き、ゴミ箱に入った投稿、メタデータの削除が可能です。スパムコメント、ピンバック、トラックバック、期限切れトランジェントも一括で除去できます。最適化は手動で実行できるほか、日次・週次・隔週・月次でスケジュール登録することも可能です。

特に便利なのがデータベーステーブルスキャナー機能です。使用されていないテーブルを検出し、それぞれのレコード数とデータサイズを一覧表示します。対応するWordPressプラグインへのリンクも表示されるため、不要なテーブルはボタンひとつで削除できます。

2. WP Rocket

WP Rocketは、ページキャッシュ、画像の遅延読み込み、CSS・JavaScriptの最適化、そしてデータベース最適化まで備えた総合的なパフォーマンス改善プラグインです。
データベースクリーンアップページからは、投稿リビジョン、オートドラフト、ゴミ箱の投稿、スパムコメント、ゴミ箱のコメント、トランジェントを削除できます。データベーステーブルの最適化も行えます。

スケジューリング機能を使えば、データベース最適化を自動化することも可能です。自動クリーンアップは日次・週次・月次から選択できます。

3. Plugins Garbage Collector

データベース内の残留テーブルを探す際に筆者がよく使うのがPlugins Garbage Collectorです。WP-Optimizeのテーブルスキャナーと同様に、未使用のテーブルをハイライト表示し、レコード数とデータサイズを確認できます。さらに、WordPressのテーブル構造のチェックや、隠れたデータベーステーブルのスキャンにも対応しています。
ただし、現在インストールされているプラグインは正しく「有効」と判定される一方、未使用テーブルがどのプラグイン由来のものかまでは特定しにくい点には注意が必要です。

4. WP Sweep

WP Sweepは、投稿リビジョン、自動下書き、スパムコメント、孤立データ、重複したメタ情報などをクリーンアップできるデータベース最適化プラグインです。テーブルの最適化オプションも備えています。
筆者のブログではリビジョンを3件までに制限しているのですが、WP Sweepで確認したところ、それでも2,179件ものリビジョンが残っており、データベース全体の11.15%を占めていました。
他のプラグインと比較すると、WP Sweepは孤立データや重複メタ情報をより細かく検出してくれるのが強みです。一方でスケジュール実行機能はないため、すべてのクリーンアップを手動で行う必要があります。とはいえ、これは必ずしも欠点ではなく、毎回内容を確認しながら作業できるというメリットにもなります。

5. Perfmatters

Perfmattersは、ページ読み込み時間を短縮するための数十種類のツールを備えたWordPress向けセキュリティ&パフォーマンスツールボックスです。メインのオプションページでは、投稿リビジョンの制限や完全な無効化が可能で、自動保存の間隔もデフォルトの1分から2〜5分へ変更できます。
データベース最適化ページでは、投稿リビジョン、オートドラフト、ゴミ箱の投稿、スパムコメント、ゴミ箱のコメント、トランジェントのクリーンアップに対応しています。テーブルの最適化も可能で、日次・週次・月次のスケジュール実行にも対応しています。

まとめ
WordPressデータベースの最適化は、WordPressサイトにおける最重要メンテナンス作業のひとつです。データベースから不要なデータを除去すれば、サイズを縮小でき、ページの表示速度も向上します。
筆者のおすすめはWP-Optimizeです。未使用データの削除に加え、削除済みプラグインが残した未使用テーブルのスキャンまで行える、現時点で最も完成度の高いソリューションだからです。すでにWP RocketやPerfmattersなどのパフォーマンス系プラグインを利用している方は、手持ちのツールに含まれるデータベース最適化機能を活用するとよいでしょう。
皆さんのサイト高速化を応援しています!
-
WordPressのデータベース接続エラーを解決する5つの対処法
「Error establishing a database connection(データベース接続確立エラー)」は、WordPressがウェブサイトのデータベースからデータを取得できなくなった際に表示されるエラーメッセージです。WordPressでは、メタ情報・投稿データ・ログイン情報・プラグイン設定・固定ページのデータなど、サイト運営に必要なほぼすべての情報がデータベースに保存されています。一方で、テーマファイルや画像、WordPress本体のコアファイルはデータベース外に保存されます。サイトへのアクセスがあるたびにPHPがデータベースへクエリを発行して必要なデータを取得しますが、この仕組
-
WordPress がハッキングされた?ハッキングされた WordPress サイトをスキャンしてクリーンアップ
あなたのWordPressはハッキングされていますか?それとも、あなたのウェブサイトに何か問題があると思いますか? WordPress がハッキングされている疑いがある場合に最初にすべきことは、Web サイトをスキャンすることです。 これにより、ハッキングに関する疑いが確認され、サイトを正常な状態に戻すための最善の行動方針を決定するのに役立ちます。 ハッキングされたWordPressサイトについてパニックに陥っているウェブサイト管理者から毎日メールが届きます.一部のユーザーは、ウェブ ホストがアカウントを一時停止したため、ウェブサイトにアクセスできなくなりました。また、wp-