ブログ

  1. トップ
  2. ブログ
  3. WordPressのリビジョン管理で投稿IDとデータベースを最適化

WordPress

WordPressのリビジョン管理で投稿IDとデータベースを最適化

皆さま、こんにちは。
CMSのWordPress(ワードプレス)のデフォルト機能に、エントリーの下書きを保存したり書いている途中のエントリーを自動保存してくれるリビジョンという機能があります。パソコンの再起動などトラブルがあったときや修正前の原稿に戻したいというときに過去に保存されたファイルを利用して復元できるので大変便利な機能です。リビジョンがあって助かった!という経験がある方も多いと思います。

■WordPress公式サイトでのリビジョン説明ページ
https://ja.wordpress.org/support/article/revisions/

ただ、リビジョン機能があることで生じる点もあります。この自動保存されている記事は1つのファイルとして作成→データベースに保存されているので、データベース内のファイルがどんどん大きくなるという現象が私たちの知らない間に起こっています。ユーザーごとにファイルが作られる仕組みなので、複数人がファイルを更新するとより多くのファイルが保存されます。

また、そのリビジョンファイルにもIDが振られるので、WordPressのパーマリンクにIDを自動付与した場合、公開されている記事数を上回って数字が大きくなっていってしまう、ということも起こってしまいます。

リビジョンを初期設定のままで動かしていると、データベースが重くなる&投稿IDが大きな数字になる、という側面がありますので、ある程度は管理するほうがよいです。データベースが重くなるとサーバー移転のときもトラブルが起こりやすいともいわれています。

そこで今回はリビジョン機能を管理して、メリットを享受しつつ、無駄な部分をカットする方法をご紹介します。


1.リビジョン機能のメリット

改めて、WordPressのリビジョンのメリットをリストアップします。

  • WordPressの投稿・固定ページを自動保存してくれる
  • 自動保存したファイルを使って復元できる
  • 1つの記事を複数人で更新していてもいつ何をどう直したか確認できる

復元の上手い使い方は、例えばキャンペーン等があって1つのページを更新したけれどキャンペーンが終わったら戻したい、そんなときにはリビジョンで切り替えると便利です。

自動保存された投稿は管理画面上で差分がわかる形で確認することができます。

2.リビジョン機能が引き起こす課題

WordPressの公式機能なのでそのままリビジョンを活用してもデメリットというほど大きな問題は起こらないのですが、知っておくとWEBサイト運用時に出てくる課題を解決しやすくなります。リビジョンが引き起こす課題は以下の通りです。

  • 投稿IDの数字が大きくなっていってしまう
  • (記事数が多い、ユーザーが多いWEBサイトほど)データベースのバックアップに時間がかかるようになる
  • データベースの使用量が増える

多くのライターさんや編集者がそれぞれにユーザーIDを持っていて、WordPress上で記事の修正・編集をするといったメディアサイトの場合は特に運用年数が増えるほどデータベースに保存されたファイルが溜まるので問題が大きくなる傾向にあります。

最初からリビジョンを上手く管理していると、問題になることなくスムーズなWEBサイト運用ができます。

ではどのように管理するのか?ですがいくつかパターンがあるので順番にご対応いただければより快適な運用に近づくと思います。

  1. リビジョン数の制限
  2. 過去に保存されたリビジョンの削除
  3. リビジョン機能の完全オフ
  4. 投稿IDの任意付与、変更

コードをWordPress内のファイルに書くことでできるもの、プラグインを使った方が楽なものとそれぞれに便利な方法がありますので、ご紹介していきます。

3.リビジョン機能の管理①リビジョン数の制限

WordPressがデータベースに自動保存する数を自身で決めることができます。

WordPress内の”wp-config.php”ファイル内に以下のコードを書き込みます。

define( 'WP_POST_REVISIONS', 3 );

上記で3となっているのは、自動保存数の上限を3としているからです。みなさまの運用に合わせてこれを5にしたり1にしたり変更することが可能です。どれくらい過去の保存ファイルへ戻るか、復元したいかによって選択してください。

数字のほか、公式ページで解説されている以下のような設定も可能です。

WP_POST_REVISIONS
true (デフォルト), -1: すべてのリビジョンを保存
false, 0: リビジョンを保存しない (各投稿1つの自動保存を除く)
int (1以上の整数): 各投稿につき、指定された数のリビジョン (プラス自動保存1つ) を保存する。古いリビジョンは自動的に削除される。

全く保存しない、機能をオフしたいときは”false”を設定ください。

このコードを入れておくことでリビジョン数は好みに調整でき、管理が可能ということなので、これからWordPressで構築する際には、入れておきたいコードですね。


4.リビジョン機能の管理②過去に保存されたリビジョンの削除

さて、これまでに保存されてしまったリビジョンを削除してデータベースの容量やサーバーの負荷を軽くしたいときは、プラグイン「WP-Optimize」を使うと手軽です。

「WP-Optimize」は評価も高く、2023年1月現在の段階では更新も定期的にされているので安心して使えるプラグインといえます。


https://ja.wordpress.org/plugins/wp-optimize/

「WP-Optimize」は日本語化されており、リビジョン以外にもスパムコメントなどを削除し、データベースを最適化できます。長く運用されているのであれば利用をおすすめします。

[最適化を実行する]ボタンを押すとすぐ実行されるので、再考のうえ、実行ボタンを押してください。

ほかにも過去のリビジョンを削除・最適化できるプラグインはいくつもありますので、使いやすそうなものを選んでご利用ください。

5.リビジョン機能の管理③リビジョンの間隔を調整する

デフォルトでは1分で自動保存されるのですが、この間隔を変更するコードもあります。

 define('AUTOSAVE_INTERVAL', 300); 

上記コード内の数値の単位は秒です。1分=60秒を変更したい、間隔を空けたいときは数値を60より大きい数にしてください。

6.リビジョン機能の管理④投稿IDの任意付与、変更

投稿数が多くなってくると投稿IDの数字が大きくなってくるのが気になってくることもあります。運営者は気にならなくてもご訪問されたユーザーさんが気にされることもあります(1つ前の記事に戻ったはずなのにURL内の数字が全然違う、など)。

これにもリビジョンが関わっているので、リビジョンの制限で対応できるのですが、これまでに付与されたIDについてはプラグイン「Search & Replace」等を活用することでで投稿IDを変更できます。


https://wordpress.org/plugins/search-and-replace/

すでに検索エンジン等にインデックスされている場合はリダイレクト設定が必要になります。工数が多くなるのでたくさん記事があるなら現実的ではないかもしれませんが、記事の再投稿等で自動付与されてしまったIDも変更できますので、このようなプラグインがあることは様々な場面でお役に立つかもしれません。

URLが変わった場合のリダイレクト設定は過去記事に詳しく書いております。
過去記事:記事の削除や集約、URL変更などで集客を無駄にしない「リダイレクト設定」

まとめ

WordPressのリビジョン機能は過去へ遡って記事を復元できる大変便利な機能です。トラブルのときしか活用できていないなという方もいらっしゃると思いますが、修正前の記事に簡単に戻せるというのは運用上で便利なこともたくさんあります。

ただ大規模なサイト、長期運用しているサイト、ログインユーザー数の多いサイトではデータベースに負荷をかけるということもいわれていますので、うまく保存数や間隔を調整して機能と付き合っていきたいですね。