Pocket
LINEで送る

珍しくwordpress関連の記事投稿になります。最近、作成・運営・管理しているWordPressのサイトの1つでエラーが起きました。

原因の発見に至るまで何時間もかかったのですが、最終的に、多すぎるリビジョン数が動作不良の原因とわかりました。

Fatal errorの原因は多すぎるリビジョン数だった

調べる中でこの内容に関連する記事が見つからず、同様のエラーに直面されている方も多数おられると思い記事にすることにしました。

最初にまとめ

今回の経験でわかったことを記載してみます。

多すぎるリビジョン数が原因と思われる症状

  • 特定のページの編集画面を開くと、編集画面が表示されるのに数秒かかる(リビジョンが多いと読み込むのに時間がかかる)
  • ビジュアルエディタ、HTMLエディタの切り替えができない(特定のページのみエディタの動作がおかしい)
  • 特定のページの編集画面が開けない(Fatal errorや、画面真っ白になるパターンもあるかも)

WordPressのバージョンアップやプラグインのインストール&更新をしておらず、特定のページだけ上記の症状がでた場合は、リビジョン数が原因かもしれませんので、確認してみてください。

WordPressのリビジョンとは?

執筆・編集した記事の内容をデータベースに保存して差分を見たり、復元できる機能。とても便利な機能だが、増えすぎるとWordPressサイトのパフォーマンス低下だけでなく、今回のように原因不明のエラーとなる可能性がある。

 

原因発見に至るまで

以下、原因発見に至るまでの流れです。

編集画面を開くとFatal error

ある日、とあるWebサイトの共同運営者より

-------------------------------------

今朝一度、スケジュールページを編集したのですが、その後編集できなくなってしまいました。
他のページは編集用のページが開け、編集用のダッシュボードも開けます。
このページだけ「固定ページを編集」をクリックすると以下のエラーメッセージが出ます。

Fatal error: Unknown: Cannot use output buffering in output buffering display handlers in Unknown on line 0

-------------------------------------
と連絡が来たため、ログインして確認すると、確かに同じエラーがでました。

 

特にWordpressのバージョンアップや、プラグインのインストール・更新をしていないのに、いきなりエラーが出ていることに、違和感を感じました。

 

常套手段のプラグインの全停止

エラー原因を特定するため、一旦、

  • プラグインUpdraftPlus BackupでWordPress全体のバックアップ(これ重要です)
  • プラグイン一覧画面の設定画面のキャプチャ(後でもとに戻す時に見るため)

を行った後、常套手段のプラグインの全停止を行うと、このエラーは解消され、通常の編集画面が表示されるようになりました。

その後、徐々にプラグインを有効化していき、さまざまなパターンを検証した結果、2つのプラグインを有効化すると上記のエラーがでることがわかりました。でもこのプラグインは主力で使っているプラグインでこれが使えないのはかなり厳しい。。。

 

ビジュアルエディタ、HTMLエディタのタブ切り替えができない

このプラグインが原因か?でも何も更新してないのに突然なぜ?と違和感を感じながら、編集可能になったページを編集してみると、ビジュアルエディタ、HTMLエディタのタブ切り替えができないことが発覚。

 

なぜ???となったとき、多すぎるリビジョン数が目に入ってきました。

 

wordpress-fatal-error-revision00

このページは、1ページの内容・データ量も多く、これだけ過去のリビジョンをとっていたら重そうだな、と思い、新規で固定ページを作り(もちろんリビジョンは0)、同じ記事内容をコピペしたところ、ビジュアルエディタ、HTMLエディタのタブ切り替えが問題なくできました。

最後の最後で多すぎるリビジョン数が原因のエラー判明

もしや・・・、と思い、原因と思われた2つのプラグインを有効化すると、リビジョンは0で同じ内容を入れた新規ページは問題なく編集画面を表示できることが確認できました。

結果的に、このFatal errorの原因は、多すぎるリビジョン数と判明しました。

 

対処法-リビジョンを削除する

エラー原因がリビジョン数と特定できたら、対処するのは簡単です。

リビジョンを削除するプラグインを導入する

「wordpress リビジョン削除」と検索すると、様々な対処法がでてきます。

初心者でも簡単かつ安全に対処できるのは、データベースのメンテナンスプラグインを使った方法です。

リビジョンを削除できるプラグイン

いろいろ調べてみると、リビジョンを削除できるプラグインは数種類あります。

どれも高い評価が付いています。

私が使ったのは、Optimize Database after Deleting Revisions です。

選択理由は、

  • 今回はリビジョンを削除するだけなので、シンプルなプラグインで十分
  • リビジョンの削除方法が全削除、何日前以前のを削除、残すリビジョン数を指定など選べる(他のプラグインもできるかも?)

です。

ここでは、私が使ったOptimize Database after Deleting Revisionsについて、簡単に解説したいと思います。

Optimize Database after Deleting Revisionsでリビジョンを削除する手順

①まずサイト全体をバックアップする

万が一、うまく行かなかったときに、後戻りできるように、プラグインUpdraftPlus Backupなどで、サイト全体をバックアップします。

②プラグイン「Optimize Database after Deleting Revisions」の追加&有効化

Optimize-Database-after-Deleting-Revisions-01

③設定する

WordPressの管理画面から、設定 ⇒ データベースの最適化 をクリック。

Optimize-Database-after-Deleting-Revisions-02

初期設定に加えて、残すリビジョンも指定できます。

  • Delete revisions older than:どれくらい古いリビジョンを削除するのか設定
  • Maximum number of - most recent - revisions to keep per post / page :残すリビジョンの最大数

直近のリビジョンを残しておきたい、という方は、上図のように設定してみてください。

設定後、「設定を保存」ボタンをクリックし、隣のボタンの「最適化ページに戻る」をクリック。

④分析(Analyze)&最適化(Optimize)

Optimize-Database-after-Deleting-Revisions-03

「Analyze(summary)」or「Analyze(detail)」ボタンを押すと、分析結果の表示されます(この時点ではまだ削除されていません)。summaryは概要を表示、detailは詳細表示になります。

※「Analyze(detail)」を推奨

「Analyze(summary)」だと、ざっくりとした分析しか表示されません。「Analyze(detail)」は、最適化対象のページと削除数も表示されるため、運営者がどのページに影響するか事前に確認できます。

次に「Optimize(summary)」or「Optimize(detail)」ボタンを押すと、最適化(設定した内容に従ってリビジョンを削除)されます。

Optimize-Database-after-Deleting-Revisions-04

 

⑤確認

最後に、リビジョンの多いページのリビジョン数が設定通りになっているか確認しましょう。

 

再発しないために

上記の流れで、リビジョンは削除できますが、このままでは、ページ更新が増える度にリビジョンがどんどん増えて数年後には再発する可能性もありますので、何らかの対策を推奨します。

このリビジョン数が一定数以上増えないようにする対策は、

  • WordPressのPHPファイルを編集する方法
  • プラグインによる定期的な最適化を設定する

の2パターンあるようです。

WordPressのPHPファイルを編集する方法は、プログラムファイルを直接編集するため、FTPソフトの設定&使用するステップが入り、初心者には少しハードルが高いです。そのため、この方法はここでは紹介しませんが、丁寧に解説された別サイトがありますので、以下に紹介しておきます。

プラグインによる定期的な最適化を設定する方法がとても簡単です。最適化頻度が高い場合は、サーバー負荷の軽減を考慮すると「WordPressのPHPファイルを編集する方法」の方が良いかもしれませんが、月1回程度の頻度で最適化するならプラグインを使うほうが簡単です。

プラグインOptimize Database after Deleting Revisionsには、定期的な最適化をスケジュールする機能が付いており、ここではこの内容を紹介します。

Optimize Database after Deleting Revisionsで定期的な最適化をスケジュールする

Optimize Database after Deleting Revisionsの設定画面を開きます。

Optimize-Database-after-Deleting-Revisions-06

上の赤枠を設定します。

  • ログを保存:実行記録の保存
  • 定期的に実行:「1時間に1回」「1日2回」「1日1回」「週1回」「月1回」から選択
  • 時刻:実行する時刻の指定

よほど大規模で、複数人が運営しているサイト出ない限り、月1回程度で十分と思います。実行する時間帯はWebサイトの閲覧者数が少ない夜中(3時~5時)ぐらいが良いと思います。ログは何かトラブルが起きたときの参考資料となるため、個人的にはチェックを入れるのをおすすめします。

以上の設定により、定期的にリビジョンが最適化され、リビジョンの巨大化を未然に防ぐことができます。

 

こんな状態ならリビジョン多すぎが原因かも?

今回の経験でわかったことを記載してみます。

多すぎるリビジョン数が原因と思われる症状

  • 特定のページの編集画面を開くと、編集画面が表示されるのに数秒かかる(リビジョンが多いと読み込むのに時間がかかる)
  • ビジュアルエディタ、HTMLエディタの切り替えができない(特定のページのみエディタの動作がおかしい)
  • 特定のページの編集画面が開けない(Fatal errorや、画面真っ白になるパターンもあるかも)

WordPressのバージョンアップやプラグインのインストール&更新をしておらず、特定のページだけ上記の症状がでた場合は、リビジョン数が原因かもしれませんので、確認してみてください。

 

こんなページは要注意

WordPressの運営年数が長くなってくると、知らないうちにリビジョン数が増えていきます。WordPressの初期設定では更新分だけリビジョンがたまります。

以下のような更新頻度が高いページは要注意です。

  • スケジュールページ
  • 更新頻度の高い主力ページ

この症状は、エネルギーを注いでいるページに出るため、エラーがでると困ります。

 

最後に

今までに複数のWordPressサイトを作成&運営してきて、様々なエラーに遭遇してきました。自分の設定ミス、プラグインの相性、購入したテンプレートのエラーということもあります。

ただ、今回は突発的で、いきなりエラーだったこともあり、原因究明に至るまで、ちょっと霧の中を歩いている感じがありました。

WordPressが日本で普及するようになって何年も経過していますから、運営歴が長くなり同様のエラーに直面されている方も少なくないかもしれません。

リビジョンの削除方法に関しては、他のサイトも参考になさってください。

この記事が同様の症状に直面している方に届きますように☆

 

Pocket
LINEで送る

この記事を書いた人事業実績最近感じたこと

田尻真基

2009年から個人で起業。以降、複数の小規模な事業の運営に関わる。

『自分自身の起業約10年の経験(様々な成功と失敗、喜びと苦悩)』と『複数の起業者を数年に渡って事業支援し続けてきた経験』を踏まえ、近年は起業・開業者の事業支援にも力を入れている。

[得意分野]

  • Wordpressを用いたWebサイト作成
  • SEO

[好きな言葉]

『千里の道も一歩から』 老子

[個人実績] (以下、代表的なもののみ掲載)

  • 2009年末からある分野に特化した情報サイトをCMS(当初はMobable Type、その後Wordpressに移行 )を用いて運営し始める。その後、複数のWebサイトを運営し、成果報酬型広告(通称アフィリエイト)の累計報酬(紹介料)は約1800万円以上(総売上約3億円以上)

[事業支援実績] (以下、代表的なもののみ掲載)

  • 2010年、自身のWebサイト構築やSEOの経験を活かし、当時のアルバイト先で出会った個人事業主のホームページ、ブログ、ビジネス全体の構築を完全成果報酬型でプロデュース。2年で年商10倍になり、繁忙期には満員御礼になる。(2019年も同じ状況)

内なるビジョンワークショップ 参加者の絵・ビジョン

『共生』

今、世界規模で人類が大きな転換期を迎えている、と言われています。令和の時代になり、ますますその転換は加速されると予想されます。

多くの人の意識が変化し、それに伴い価値観が変わってきています。様々な出来事を通してパラダイム・シフト(社会全体の認識、思想、価値観の劇的な変化)が起こり、需要の多かったものが少なくなったり、今まで注目されていなかったことが日の目を見て、多くの関心を集めるようになると思われます。

私は『次世代を担う起業・開業者が速やかに軌道に乗れるようサポートするのが当面の役割』と実感し、今までの事業経験を活かした塾やワークショップなど開催しています。

<<最新のお知らせ [2021/04/19]>> 

『少人数制』起業・独立・開業者向け実践塾の3期生を募集中。(2021年夏~秋に開始予定)

○参加者の声(一部抜粋)

  • 「新規の方が来るようになりました」
  • 「自分が来てほしいと思うお客様像に合う人が来るようになりました」

10年間の集大成をベースに、約1年間、下記内容に一緒に取り組んで行きます。

○主な内容

  1. WordPressによる本格的なwebサイト(ホームページ兼ブログ)の作成
  2. インターネットのSEO対策を中心とした集客・告知方法の学習と実践

 興味のある方は、ぜひ下記ページを御覧ください。

>>> 起業・独立・開業者向け実践塾[wordpress × Web集客・販売の実践]

※プレイベントも開催します。

起業塾スライドトップ
Image is not available
『少人数制』
起業・独立・開業者向け実践塾
[wordpress × Web集客・販売の実践]
- 人生が本当に動き出す -
2021年夏~秋に開始予定
-3期生募集中[残席2名]-