WordPressでBolg投稿していると、気付かないうちにデータが蓄積していきデータベースを圧迫する機能を発見しました。
それが「リビジョン」自動保存機能。
「下書き保存」で保存されていく機能ですが、自身が「下書き保存」を選択しなくても機能してしまっており、データ量が増えていきます。
WordPressの自動保存機能を無効化することで、データ量を減らすことができます。自動保存は、投稿やページを編集中に一定の間隔で自動的に保存する機能ですが、必要のない場合やデータ量の増加を抑えたい場合には無効化することができます。
長期でWordPressのサイトを運営していく場合はデータベースを圧迫しない為に、不要なデータは削除していくことが必要になってきます。
この不要なデータをしっかり管理することによってAll-in-One WpMigrationでサイト移動や復元に必要なデータも軽くすることができます。
対応前は「342.41MB」から対応後は「292.87MB」とデータサイズを「49.54MB」節約できました。自身のサイトは現状20記事ほどなので、元々のデータ量が少ないですが100記事以上になると塵も積もればでデータベースが圧迫されていきます。
リビジョンの影響確認
WordPress管理画面→設定→パーマリンク→共通設定→カスタム構造で%post_id%の設定をしている場合、リビジョンが増えるたびにpost_idの数字も増えていきます。
25記事目の記事ですがcategoryカテゴリー後のpost_idポストアイディが5904となっています。
自分で「下書き保存」クリックしてIDの数字が上がるのは仕方ないですが、自動保存が機能していると倍で数字が増えていきます。
自動保存のリビジョンは便利な機能ですが、データ容量や記事IDをコントロールしたい場合は止める必要があります。
方法は2種類で
- コメントアウト
- コード追記
- プラグイン
このどれかで対応できます。
コメントアウトで対応
wp-config.phpファイルの編集
WordPressのルートディレクトリにあるwp-config.phpファイルを編集します。ファイル内で次のコードを探し、コメントアウト(//で始める)または削除します。
define('AUTOSAVE_INTERVAL', 60); // 自動保存間隔(秒)
コードをコメントアウトするか削除することで、自動保存が無効になります。
コード追加で対応
プラグインは不要でfunctions.phpにコードを記述することによって停止することができます。
※functions.phpを操作するのでバックアップは忘れずに!
WordPress管理画面→外観→テーマエディター→子テーマ→functions.phpを開きます。
自動保存停止コード
functions.phpに下記コードを入力して「ファイルを更新」
// 投稿の自動保存を無効にする
add_action('wp_print_scripts',function(){
wp_deregister_script('autosave');
});
これで、リビジョンが自動保存されることを防ぐことができます。
※投稿入力している時に「下書き保存」が点灯し保存しましたとでますが、リビジョンは増えません。
投稿後の不要なリビジョン削除
データベースの容量が大きくなると「サイトの動作が重くなる」「契約の上限に達すると画像や記事のアップロードができなくなる」などデメリットがあります。
リビジョンの削除はDB(データベース)・SQLの知識が必要になり、データ破損などのリスクがあるためプラグインを使った安全な方法を紹介します。
プラグインは項目選択しクリックでの操作なので簡単に不要なデータを削除できます。
WP-Optimize(プラグイン)
インストール
WordPress管理画面→プラグイン→新規追加→キーワード→WP-Optimizeを入力。
▪インストールするプラグイン
プラグイン名: WP-Optimize – Cache, Clean, Compress.
作者: David Anderson, Ruhani Rabin, Team Updraft
「今すぐインストール」→「有効化」
WordPress管理画面→WP-Optimizeを選択。
「すべての投稿リビジョンをクリーン」の「最適化を実行する」をクリック。
これで不要になったリビジョンデータは削除されます。
データベーステーブルの最適化
WordPressのデータベースの最適化し不要なデータを削除できます。
この機能でデータベースの軽量化ができます。SQLの知識がなくてもワンクリックで最適化してくれます。
※念のために最適化する前にバックアップを取っておきましょう。
チェック項目に「無視して InnoDB テーブルを最適化します。」と不安を煽る文章になっていますが、自身で試してみた結果問題なく最適化できました。
データベース以外の「画像」「キャッシュ」の機能もついていますが自身は別のプラグインで対応。
「画像」→「EWWW Image Optimizer」「キャッシュ」→「Autoptimize」を使用しているので使っていません。
「WP-Optimize」はデータベースの最適化を目的として使用していくのがいいと思います。
データベースをプラグインではなくSQLやPHPで管理したいといった方は下記の本をおススメします。
画像と圧縮・キャッシュに関しては下記記事で解説してますのでサイト全体最適化の参考になさって下さい。