WordPressのデータベース最適化とは、不要になったリビジョン・ゴミ箱・期限切れTransientなどを整理し、必要に応じてデータベーステーブルの無駄な領域を整理する作業です。
ただし、「最適化ボタンを押せば必ず表示速度が上がる」というものではありません。まず不要データを減らし、そのうえで本当にテーブル最適化が必要かを判断するのが安全です。
30秒でわかる結論
30秒でわかる結論
- WordPressのDB最適化は「不要データ削除」と「テーブル最適化」を分けて考える
- 削除候補はリビジョン、ゴミ箱、スパムコメント、期限切れTransientなど
- プラグイン独自データや不明なoptions・postmetaはむやみに削除しない
- 最適化前には必ずデータベースをバックアップする
- MySQLのOPTIMIZE TABLEは大量削除・更新後などに有効な場合があるが、毎日実行する必要はない
- 小規模サイトでは、DB最適化より重いプラグイン・画像・キャッシュの見直しの方が効果が大きいことも多い
- 初心者は「削除対象が明確なものだけ整理する」ことを優先する
WordPressデータベースの最適化とは?
WordPressでは、記事本文、固定ページ、ユーザー情報、各種設定、コメント、リビジョン、プラグイン設定など多くの情報をMySQLまたはMariaDBへ保存します。
長期間運営すると、使わなくなったデータや一時データが蓄積することがあります。そこで不要データを整理し、必要に応じてデータベーステーブルを再編成するのが「データベース最適化」です。
最適化は2種類に分ける
- データ整理:不要なリビジョン・ゴミ箱・期限切れTransientなどを削除する
- テーブル最適化:削除後などにテーブルの格納領域を再編する
この2つを同じものとして扱わないことが重要です。 不要データを削除しても、必ずテーブル最適化が必要になるわけではありません。
データベースが大きくなる主な原因
| 原因 | 保存されるもの | 整理判断 |
|---|---|---|
| リビジョン | 記事・固定ページの過去版 | 必要数を残して整理可能 |
| ゴミ箱 | 削除前の投稿・コメント | 不要なら削除可能 |
| スパムコメント | 迷惑コメント | 確認後削除可能 |
| Transient | 一時的なキャッシュ値 | 期限切れは整理候補 |
| プラグイン設定 | 独自テーブル・options等 | 慎重に判断 |
| postmeta | 記事にひも付く追加情報 | 手動削除は慎重 |
最適化前に必ずバックアップする
データベース最適化で最も重要なのは、作業前のバックアップです。
データベースには記事本文だけでなく、サイトURL、ユーザー情報、テーマ・プラグイン設定、ウィジェット、各種オプションなどが保存されています。 誤って削除すると、サイト表示や管理画面に影響する可能性があります。
作業前チェック
- データベースのバックアップがある
- バックアップ日時が作業直前に近い
- 復元方法を確認している
- 重要サイトではアクセスの少ない時間帯を選ぶ
- 大規模変更ならステージング環境で先に試す
「自動バックアップがあるはず」で作業しない
レンタルサーバーの自動バックアップが有効でも、保存世代や復元方法はサービスによって異なります。作業前に実際に戻せる状態か確認してください。
最適化手順1.リビジョンを整理する
WordPressのリビジョンは、記事や固定ページを更新したときの過去版をデータベースへ保存する仕組みです。 誤って編集したときに以前の内容へ戻せるため便利ですが、長期間運営すると件数が増えることがあります。
例
100記事 × 10リビジョン = 1,000件のリビジョン
ただし、リビジョンをすべて削除する必要はありません。 最近の数世代を残しておけば、編集ミスから戻せるメリットを維持できます。
初心者の判断
リビジョン数が多いサイトでは整理対象になりますが、頻繁に記事を編集するサイトなら数世代は残す方が安全です。
今後の保存数を制限したい場合は、wp-config.phpでWP_POST_REVISIONSを設定する方法もあります。ただし、現在保存済みのリビジョンを自動的に一括削除する機能ではありません。
最適化手順2.ゴミ箱・スパムコメントを整理する
削除した投稿・固定ページ・コメントは、一定期間ゴミ箱へ残る場合があります。 スパム判定されたコメントもデータベースへ保存されます。
確認するもの
- 投稿のゴミ箱
- 固定ページのゴミ箱
- コメントのゴミ箱
- スパムコメント
復元する予定がなければ削除できます。 ただし会社サイトなどで過去ページを一時的にゴミ箱へ移している場合は、担当者へ確認してから完全削除してください。
最適化手順3.期限切れTransientを整理する
Transientは、WordPressやプラグインが一時データを保存するための仕組みです。 外部APIの結果や計算済みデータなどを一定時間保存し、毎回同じ処理を行わないために使われます。
永続オブジェクトキャッシュを使っていない一般的なWordPressでは、Transientがwp_optionsテーブルなどへ保存されます。
Transientのイメージ
外部APIの結果を3,600秒保存
↓
1時間以内は保存済みの値を再利用
↓
期限切れ後に再取得
期限切れTransientは削除候補です。 WP-CLIが使える環境では、期限切れだけを削除するコマンドも用意されています。
「すべてのTransientを削除」と「期限切れだけ削除」は違う
有効期限内のTransientまで削除すると、次回アクセス時に外部APIや重い処理が再実行される場合があります。初心者はまず期限切れだけを対象にしてください。
最適化手順4.使わなくなったプラグインのデータを確認する
プラグインを削除しても、そのプラグインが作成した設定値や独自テーブルが残る場合があります。
ただし、これらを手動で削除するのは慎重に行う必要があります。 テーブル名だけを見て不要と判断すると、別プラグインやテーマが利用しているデータを消す可能性があります。
削除前に確認すること
- どのプラグインが作ったデータか特定できる
- そのプラグインを今後使わない
- 公式のアンインストール手順を確認した
- バックアップがある
- 削除後に戻す方法がある
wp_optionsを目視で削除しない
「名前が分からないから不要」という理由でoptionsやpostmetaを削除しないでください。WordPress本体、テーマ、別プラグインが使用している可能性があります。
最適化手順5.データベーステーブルを最適化する
不要データを大量に削除した後などは、MySQLのOPTIMIZE TABLEによってテーブルの格納状態を再編できる場合があります。
MySQL公式では、OPTIMIZE TABLEはテーブルデータとインデックスの物理格納を再編し、未使用領域を減らしたりI/O効率を改善したりする処理として説明されています。
実行を検討しやすい場面
- 大量のリビジョンやコメントを削除した
- 大量の行を削除・更新した
- 長期間運営してDBサイズが大きくなっている
- 管理者がテーブル肥大化を確認した
毎日OPTIMIZE TABLEを実行する必要はない
InnoDBでは通常運用である程度の空き領域や断片化が発生するのは正常です。大きな変更がないサイトで頻繁に再構築しても、効果が小さい一方で処理負荷だけ増える場合があります。
OPTIMIZE TABLEでは何が起きる?
WordPressでよく使われるInnoDBでは、OPTIMIZE TABLE実行時にテーブル再構築に相当する処理が行われます。 MySQLの現行ドキュメントでは、InnoDBに対するOPTIMIZE TABLEはALTER TABLE … FORCEへマッピングされると説明されています。
大きなテーブルでは時間がかかることがあり、処理中の負荷や一時的なロックも考慮する必要があります。
| サイト規模 | 考え方 |
|---|---|
| 小規模ブログ | 頻繁な実行は不要 |
| 長期運営サイト | 大量削除後に検討 |
| EC・会員サイト | 本番負荷を考慮して慎重に実施 |
| 大規模DB | 管理者・サーバー会社と相談 |
WordPressでデータベースを最適化する方法
実際の方法は主に3つあります。
方法1.レンタルサーバーの管理機能を使う
レンタルサーバーによっては、phpMyAdminなどのデータベース管理ツールを提供しています。 テーブル最適化機能を利用できる場合があります。
ただし、操作画面や権限はサービスごとに異なるため、公式マニュアルを優先してください。
方法2.WordPressの最適化プラグインを使う
データベース最適化プラグインには、リビジョン、ゴミ箱、スパム、Transientなどを整理できるものがあります。
チェック項目を全部選ばない
「孤立メタデータ」「未使用オプション」など、初心者には判断が難しい項目もあります。意味が分からない項目は削除せず、リビジョン・ゴミ箱・期限切れTransientなど対象が明確なものから始めてください。
方法3.WP-CLIを使う
SSHとWP-CLIが利用できる環境では、公式WP-CLIのデータベースコマンドを使えます。
代表例
wp db optimize
これはデータベースを最適化するコマンドです。 また、期限切れTransientだけを削除するコマンドもあります。
WP-CLIは便利ですが、コマンド操作に慣れていない初心者が本番サイトで無理に使う必要はありません。共用レンタルサーバーでは管理画面やプラグインの方が安全な場合があります。
プラグインで削除しやすいもの・慎重に扱うもの
| データ | 初心者の判断 |
|---|---|
| 古いリビジョン | 必要数を残して削除可 |
| ゴミ箱 | 復元不要なら削除可 |
| スパムコメント | 確認後削除可 |
| 期限切れTransient | 削除候補 |
| 孤立postmeta | 慎重 |
| options内の不明データ | 手動削除しない |
| プラグイン独自テーブル | 作成元確認後に判断 |
最適化するとWordPressは速くなる?
速くなる場合はありますが、必ず体感できるとは限りません。
たとえば、wp_optionsが異常に肥大化している、大量リビジョンや不要データがある、DBアクセスがボトルネックになっている、といった場合には改善につながる可能性があります。
一方、画像が巨大、テーマやプラグインのPHP処理が重い、外部API待ちが長い、ページキャッシュが使われていない場合は、DBを少し整理しても表示速度はほとんど変わらないことがあります。
WordPress表示速度 = PHP + DB + キャッシュ + 画像 + テーマ・プラグイン + サーバー性能
最適化後に確認する
作業前後でDB容量、管理画面の反応、TTFB、ページ表示を比較してください。「最適化したから速くなったはず」と決めつけず、実測で判断します。
データベース容量はどれくらいなら問題?
「100MBを超えたら危険」「1GBなら重い」という固定基準はありません。
記事数、ECの商品数、注文履歴、会員数、アクセス解析データ、プラグイン構成によって正常な容量は大きく変わります。
判断例
- 100記事のブログで数百MBになっている → 中身を確認する価値あり
- 数万商品を持つECで1GB以上 → それだけで異常とはいえない
- 特定テーブルだけ急増 → 原因プラグインやログを確認
容量全体よりも、どのテーブルが増えているかを見る方が原因を判断しやすくなります。
特にwp_optionsが大きいときの注意
wp_optionsにはWordPress本体、テーマ、プラグインの各種設定が保存されます。 一部の値はページ表示時に自動読み込みされるため、不要な大容量データが大量に存在すると負荷へ影響する可能性があります。
ただし、wp_optionsは重要な設定を多数含むため、手動で「大きいものから消す」という方法は危険です。
options削除は作成元を特定してから
名称、サイズ、autoload状況だけでは不要と断定できません。テーマ・プラグイン公式情報を確認し、使われていないことを確実にしてから判断してください。
リビジョンを0にすれば最適化になる?
おすすめしません。
リビジョンは編集ミスから復元するための重要な機能です。 WordPress公式では保存数を制限できますが、0に近づけるほど復元できる履歴も減ります。
教科書の基準
「全部保存」か「全部削除」の二択ではなく、最近の3〜10世代など運用に必要な範囲を残す方法が現実的です。
自動最適化は設定した方がよい?
ゴミ箱や期限切れTransientなど、対象が明確なものを定期的に整理する機能は便利です。
一方で、毎日すべてのテーブルをOPTIMIZEしたり、孤立データを自動判定で削除したりする設定は、サイトによっては不要です。
自動化しやすいもの
- 古いリビジョンを一定数に制限
- スパム・ゴミ箱の定期整理
- 期限切れTransientの整理
自動削除しすぎない
EC・会員・予約サイトでは、プラグイン独自データが業務データと関係している場合があります。自動最適化の対象は必ず確認してください。
最適化する頻度は?
一般的な個人ブログや会社サイトでは、毎日データベース最適化を行う必要はありません。
| サイト | 確認の目安 |
|---|---|
| 小規模ブログ | 数か月ごと、または容量増加時 |
| 会社サイト | 保守作業時に確認 |
| 更新頻度が高いサイト | DB増加状況を見て判断 |
| EC・会員サイト | 定期監視し慎重に実施 |
固定スケジュールより、「DBサイズが急増した」「大量削除を行った」「管理画面が重くなった」といった変化をきっかけに確認する方が合理的です。
最適化しても重いときは何を見る?
ページキャッシュが有効か確認
重い処理や不要プラグインを確認
巨大画像や未圧縮画像を確認
対応バージョン・エラーを確認
重いクエリ・肥大テーブルを確認
CPU・メモリ・リソース制限を確認
DB最適化は高速化の一部です。 原因がデータベースにない場合は、別の場所を改善する必要があります。
どんなサイトで最適化が必要?
開設直後のブログ
必要度:低
記事数・データ量が少なければ、無理にDB最適化する必要はありません。
数年運営したブログ
必要度:中
リビジョンや古いプラグインデータが増えていないか確認する価値があります。
会社サイト
必要度:低〜中
更新頻度が低ければ頻繁な作業は不要です。保守時に容量とバックアップを確認します。
EC・会員サイト
必要度:高いが慎重
DBは増えやすい一方、注文・会員データも含むため、安易な自動削除は避けます。
やってはいけない最適化
- バックアップなしでDBを削除する
- 意味不明なoptionsをまとめて削除する
- プラグイン独自テーブルを名前だけで不要と判断する
- 本番ECサイトで大量削除をいきなり実行する
- 毎日OPTIMIZE TABLEを実行すれば高速になると考える
- 複数の最適化プラグインを同時に動かす
- 速度低下の原因を確認せずDBだけ触る
最適化は「削除作業」でもある
キャッシュ削除と違い、リビジョン・コメント・設定データなどを完全削除すると元へ戻せない場合があります。必ず復元できる状態を作ってから実施してください。
教科書判定
初心者は「明確に不要なデータだけ整理する」までで十分
通常のWordPressブログや小規模会社サイトでは、データベースを毎週・毎月OPTIMIZEする必要はありません。
まずはバックアップ → 古いリビジョン・ゴミ箱・スパム・期限切れTransientを確認 → 容量変化を見るという順番で十分です。
大量削除後や長期運営でテーブル肥大化が確認できた場合にだけ、レンタルサーバーの機能、信頼できるプラグイン、WP-CLIなどでテーブル最適化を検討してください。
EC・会員・予約サイトでは、削除対象が業務データと関係する可能性があるため、ステージング環境や専門担当者を利用する方が安全です。
FAQ
Q.データベース最適化で記事は消えませんか?
OPTIMIZE TABLE自体は不要な記事を選んで削除する処理ではありません。ただし、最適化プラグインでリビジョン・ゴミ箱・各種メタデータを削除する場合はデータが消えます。実行前に対象を確認し、バックアップしてください。
Q.最適化プラグインは常時有効にする必要がありますか?
必須ではありません。定期実行を使う場合を除き、必要なときだけ利用する運用もできます。複数の最適化プラグインを重ねて使う必要はありません。
Q.リビジョンは全部削除した方が軽くなりますか?
容量は減りますが、以前の編集内容へ戻せなくなります。初心者は最近の数世代を残す方が安全です。
Q.Transientは全部削除してよいですか?
通常は再生成できますが、有効期限内のTransientまで削除すると次回アクセス時に処理負荷が増える場合があります。まず期限切れだけを対象にするのが安全です。
Q.DB最適化をすると表示速度は必ず上がりますか?
必ずではありません。原因が画像、PHP、テーマ、プラグイン、外部通信などにある場合、DBを整理しても体感速度は変わらないことがあります。作業前後を実測してください。
まとめ
この記事の結論
- WordPress DB最適化は不要データ整理とテーブル最適化に分ける
- 作業前に必ずデータベースをバックアップする
- 古いリビジョン、ゴミ箱、スパム、期限切れTransientは整理候補
- 不明なoptions・postmeta・プラグイン独自テーブルは安易に削除しない
- 大量削除後などにOPTIMIZE TABLEを検討する
- 小規模サイトで頻繁なテーブル最適化は不要
- 表示速度はDB以外の要因にも左右される
- 初心者は「何を消すか分かるものだけ」を対象にする
WordPressのデータベース最適化は、積極的に削除する作業ではなく、不要なものを見極めて整理する保守作業です。 バックアップを確保し、対象が明確なデータから少しずつ進めてください。
「WordPressのデータベースとは?MySQL・MariaDBを初心者向けに解説」「WordPressのリビジョンとは?削除・制限方法を解説」「WordPressのキャッシュを削除する方法」もあわせて確認してください。