All in One SEOでFatal errorが発生した原因と対処法|WordPressで突然サイトが表示されない時の確認ポイント
WordPressサイトを運営していると、ある日突然「このサイトで重大なエラーが発生しました」と表示され、サイトが正常に開けなくなることがあります。今回発生したのは、All in One SEO、いわゆるAIOSEOに関連するFatal errorです。
WordPress全般のトラブル対応をまとめて確認したい場合は、WordPressのトラブル完全対策|ログインできない・更新できない原因と解決法まとめも参考になります。
表示されたエラー内容を見ると、原因箇所はWordPress本体ではなく、All in One SEOプラグイン内の処理にあります。実際にエラー画面には、wp-content/plugins/all-in-one-seo-pack/というパスが表示されており、AIOSEOのファイルがエラーの発生源として示されています。
今回の私の環境では、All in One SEOのバージョンは4.9.7.2、WordPress本体のバージョンは6.9.4でした。ここ2〜3日ほど毎日のように同じような重大エラーが発生していたため、単なる一時的な表示不具合ではなく、プラグイン側の処理や設定値、キャッシュ、他プラグインとの競合などを疑うべき状態です。
この記事では、All in One SEOでFatal errorが発生した時に何を確認すべきか、すぐに無効化すべきか、無効化によるSEO上の影響はあるのかを、実際のエラー内容をもとに整理します。
All in One SEOで発生したFatal errorの内容
今回表示されたエラーは、次のような内容でした。
Fatal error: Uncaught TypeError: array_filter(): Argument #1 ($array) must be of type array, true given
このエラーは、PHPの処理で配列であるべき値に、trueという真偽値が渡されてしまったことを意味します。つまり、プログラム側では「複数のデータが入った配列」を想定して処理しようとしたものの、実際には配列ではなくtrueが入っていたため、処理が止まったということです。
さらにエラー画面には、次のようなパスが表示されていました。
/wp-content/plugins/all-in-one-seo-pack/app/Common/Utils/Addons.php on line 176
ここから分かるのは、今回の重大エラーがAll in One SEOのAddons.phpというファイル内で発生しているということです。Addonsという名前から考えると、AIOSEOの追加機能、アドオン情報、Pro版関連機能、機能一覧などを扱う部分で問題が起きている可能性があります。
もちろん、これだけで「AIOSEOそのものにバグがある」と断定することはできません。ただし、エラーの発生場所が明確にAIOSEO配下のファイルである以上、最初に疑うべきはAll in One SEOです。
原因として考えられること
今回のように、All in One SEOでFatal errorが発生する場合、原因は一つとは限りません。特にWordPressでは、本体、テーマ、プラグイン、PHPバージョン、サーバー環境が組み合わさって動いているため、どれか一つの更新や不整合がきっかけになることがあります。
All in One SEOの更新後トラブル
まず考えられるのは、All in One SEOの更新後に何らかの不具合が発生したケースです。プラグイン更新後に内部処理が変わり、既存の設定値やキャッシュと噛み合わなくなることがあります。
今回の環境ではAll in One SEO 4.9.7.2が使用されていました。もし直近でAIOSEOを更新していた場合、その更新がきっかけになった可能性は十分あります。
設定値やキャッシュの破損
次に考えられるのは、AIOSEOの設定値や一時保存データの不整合です。今回のエラーでは、配列であるべき値にtrueが渡されています。このようなエラーは、プラグイン内部で参照している設定値や取得データが想定外の形になっている時にも起こります。
特にAIOSEOは、SEOタイトル、メタディスクリプション、サイトマップ、OGP、構造化データなど、多くの設定を扱います。そのため、設定情報や一時キャッシュが壊れると、思わぬ箇所でエラーになることがあります。
他プラグインとの競合
WordPressでは、複数のプラグインが同じタイミングで処理を実行します。今回のエラー画面にも、WordPressのフック処理であるapply_filtersやdo_actionが表示されています。
これは、WordPressの初期化処理中にAIOSEOが呼び出され、その途中でエラーになったことを示しています。SEO系、キャッシュ系、セキュリティ系、最適化系のプラグインが入っている場合、他プラグインとの競合でAIOSEO側の処理が不安定になることもあります。
PHPバージョンとの相性
WordPressのFatal errorでは、PHPバージョンとの相性も確認ポイントです。PHPのバージョンが新しすぎる、または古すぎる場合、プラグイン側のコードが想定通りに動かないことがあります。
今回のようなTypeErrorは、PHP側が型の不一致を厳密に検出した時に出るエラーです。そのため、サーバーのPHPバージョンを確認し、WordPress本体やプラグインの推奨環境に合っているかを見ることも重要です。
All in One SEOをすぐ無効化すべきか
今回のようにFatal errorが発生した場合、最も確実な応急処置はAll in One SEOを一時的に無効化することです。管理画面に入れる場合は、プラグイン一覧からAll in One SEOを無効化すれば、サイトが復旧する可能性があります。
管理画面に入れない場合は、サーバーのファイルマネージャーやFTPから、次のフォルダ名を変更します。
/wp-content/plugins/all-in-one-seo-pack/
たとえば、次のようにリネームします。
all-in-one-seo-pack_old
これにより、WordPressはAll in One SEOを読み込めなくなり、プラグインが自動的に停止した状態になります。
ただし、Fatal errorが一度表示された後でも、その後サイトが正常に表示されている場合は、すぐにAIOSEOを無効化する必要があるとは限りません。まずはバックアップを取り、AIOSEOのバージョン、WordPress本体のバージョン、直近で更新したプラグインの有無を確認し、再発時にすぐ対応できる状態にしておく方が現実的です。
一方で、同じFatal errorが毎日発生しているなら、再発リスクは高いと考えるべきです。次に同じエラーが出た場合は、AIOSEOの一時無効化を優先してよいでしょう。
All in One SEOを無効化した場合のSEOへの影響
All in One SEOを無効化すると、当然ながらSEO関連の一部機能は停止します。たとえば、記事ごとに設定していたSEOタイトルやメタディスクリプション、OGP設定、XMLサイトマップ、構造化データなどが反映されなくなる可能性があります。
なお、All in One SEOは便利なSEO補助ツールですが、表示されるスコアだけで検索順位が決まるわけではありません。AIOSEOの数値との向き合い方は、AIOSEOスコアは信用できる?順位との関係と正しい判断基準を解説でも詳しく整理しています。
そのため、AIOSEOの無効化には一定の影響があります。特に、検索結果に表示されるタイトルや説明文、SNSで共有された時の見え方、サイトマップ送信などに影響する場合があります。
しかし、ここで重要なのは優先順位です。SEO設定が一時的に外れることよりも、サイト自体がFatal errorで表示されないことの方がはるかに重大です。
Googleや読者から見て、ページが正常に表示されない状態は非常に悪い状態です。検索エンジンがクロールしたタイミングで重大エラーになっていれば、ページ内容を正しく取得できない可能性があります。また、読者が訪問した時にエラー画面が出れば、すぐに離脱されてしまいます。
そのため、AIOSEOを無効化するかどうかは、次の基準で判断すると分かりやすいです。
現在サイトが正常に表示されているなら、すぐ無効化せずに様子見と準備。
再びFatal errorが出たら、AIOSEOを一時無効化してサイト復旧を優先。
管理画面にも入れない場合は、FTPやファイルマネージャーでプラグインフォルダをリネーム。
この判断であれば、SEO面のリスクとサイト停止リスクのバランスを取りやすくなります。
再発を防ぐために確認すべきこと
一時的にサイトが復旧しても、同じエラーが繰り返されるなら根本対応が必要です。まず確認すべきなのは、All in One SEOの更新状況です。最新版が出ている場合は、更新内容を確認したうえでアップデートを検討します。
ただし、エラーが出ている状態でいきなり更新するのは不安が残ります。可能であれば、更新前に必ずバックアップを取ることが重要です。WordPress本体、テーマ、プラグイン、データベースのバックアップを取っておけば、万が一更新後に別の不具合が出ても戻せます。
バックアップの取り方に不安がある場合は、初心者でもできる!All-in-One WP MigrationでWordPressをまるごとバックアップする方法で、復旧前の安全確保を先に確認しておくと安心です。
次に、直近で更新したプラグインがないか確認します。特にキャッシュ系、セキュリティ系、SEO系、表示高速化系のプラグインは、WordPressの初期化処理や出力内容に関わるため、競合の原因になりやすい部分です。
また、PHPバージョンも確認しておくべきです。サーバー管理画面から現在のPHPバージョンを確認し、WordPress本体や使用中プラグインと極端に相性が悪くないかを見ます。
さらに、AIOSEOを一度無効化して再有効化するだけで改善する場合もあります。内部キャッシュや読み込み状態がリセットされることで、エラーが出なくなるケースがあるためです。ただし、頻繁に再発する場合は、単なる一時的な不具合ではなく、プラグイン側の修正や再インストール、旧バージョンへの戻しを検討する段階になります。
今回のような重大エラーでやってはいけないこと
Fatal errorが出ると焦ってしまい、いきなりプラグインを削除したくなるかもしれません。しかし、最初から削除するのはおすすめできません。
Fatal error以外にも、サイト全体が表示されない代表的なトラブルとしては500エラーがあります。原因の切り分け方を確認したい場合は、WordPressで500エラー発生時の原因と解決手順まとめもあわせて参考になります。
All in One SEOを削除すると、設定データの扱いによってはSEOタイトルやメタディスクリプションなどの情報に影響する可能性があります。まずは削除ではなく、無効化またはフォルダ名のリネームで止めるのが安全です。
また、原因を確認しないまま複数のプラグインを同時に更新・削除するのも避けた方がよいです。複数の変更を一度に行うと、どの操作で改善したのか、あるいは悪化したのかが分からなくなります。
対応する時は、一つずつ変更し、そのたびにサイト表示と管理画面の状態を確認することが大切です。
まとめ
今回のFatal errorは、エラー画面の内容から見て、All in One SEOに関連する処理で発生している可能性が高い状態でした。特にall-in-one-seo-pack/app/Common/Utils/Addons.phpが示されているため、AIOSEOのアドオン関連処理、設定値、キャッシュ、他プラグインとの競合などが疑われます。
現在の私の環境は、All in One SEO 4.9.7.2、WordPress 6.9.4です。ここ2〜3日で毎日のように重大エラーが出ているなら、完全放置は危険です。ただし、Fatal errorが一度表示された後でも、その後サイトが正常に表示されているなら、すぐに無効化するのではなく、まずはバックアップと更新状況の確認を優先してよいでしょう。
判断基準としては、今正常なら様子見と準備、再発したらAIOSEOを一時無効化です。All in One SEOを無効化するとSEOタイトル、メタディスクリプション、OGP、サイトマップ、構造化データなどに影響する可能性はありますが、サイトが重大エラーで表示されない状態よりは、はるかに軽いリスクです。
WordPressの重大エラーでは、まずサイトを正常表示させることが最優先です。そのうえで、All in One SEOの更新、再インストール、旧バージョンへの戻し、PHPバージョン確認、他プラグインとの競合確認を順番に行うのが、安全で現実的な対処法です。

