セキュリティ 2023.07.26

WordPressで「重大なエラーが発生しました」の原因と対処法

この記事を書いた人

土井 純也

WordPressスペシャリスト・エンジニア/株式会社e2e 取締役 / CTO

1985年北海道生まれ。
200社以上の大手上場企業のWordPressサイトの制作、保守・セキュリティをサポートしている。

【 展開しているサービス一覧 】
■WordPress開発サービス「wp.make
■WordPress保守/運用サービス「wp.support
■WordPressハッキング/緊急復旧対応サービス「wp.rescue
■WordPressバージョンアップ代行サービス「wp.versionup

「このサイトで重大なエラーが発生しました」というメッセージは、WordPress内のプログラムやデータベースで問題が起きたときに表示されます。”重大なエラー”という表現が不安を感じさせますが、恐れることはありません。ほとんどの場合、考えられる原因にもとづいて対処することで問題は解決できます。

本記事では、この表示が出た場合に取るべき対応についてわかりやすく解説します。

「このサイトで重大なエラーが発生しました」が表示される4大原因

WordPressでは、PHPというプログラム言語を使用して、データベース内に格納されているデータを表示しています。しかし、PHPやデータベースにエラーが発生すると「このサイトで重大なエラーが発生しました」というメッセージが表示され、本来表示されるべきWebサイトが表示されなくなります。
「このサイトで重大なエラーが発生しました」が表示される4大原因

このエラーメッセージが表示された場合、考えられる主な原因は以下の4つです。

原因① プラグインの問題
一部のプラグインは、WordPressやPHPの新しいバージョンと互換性がない場合があります。そのためWordPressやPHPのバージョンをアップデートすると、プラグインが正常に動作せずにエラーが発生する可能性があります。

原因② テーマの問題
プラグインと同様に、テーマでも互換性の問題でエラーが発生する場合があります。現在使用中のテーマが、新しいWordPressやPHPのバージョンに対応していないとエラーが発生する可能性があります。

原因③ PHPのメモリ制限
WordPressではデータを保存するためにメモリを使用します。サイト規模が大きい場合や複雑なプログラムを実行する場合は、より多くのメモリを消費します。設定されているメモリ上限を超えるとPHPが操作を実行できずにエラーが発生します。

原因④ サーバーの内部エラー
サーバーの内部エラーとは、Webサーバー内でプログラムが正しく動作しない場合に発生するエラーです。このエラーは、多くの場合ファイル内の記述ミスで発生します。

対応策を行う前に「直前の変更」「WordPressからのメール」を確認しよう

エラーの原因として、最初に考えられるのは直近の変更です。たとえば「phpファイルを編集した結果、サーバーの内部エラーが発生した」といったケースや、「特定のプラグインをアップデートした結果、互換性の問題が発生した」といったケースがあります。

もし思い当たる操作があれば、変更前の状態に戻すことで問題が解決する可能性が高いです。

また、事前に確認しておくべきなのはWordPressからの自動送信メールです。WordPressでは、プラグインやテーマで技術的な問題が発生した場合に、サイト管理者あてに「[(Webサイト名)] サイトで技術的な問題が発生しています」という通知を送信する機能があります。

このメールが届いている場合、エラーの原因が特定でき、リカバリーモードを使用して対応することが可能です。リカバリーモードについては後述します。
対応策を行う前に「直前の変更」「WordPressからのメール」を確認しよう

「このサイトで重大なエラーが発生しました」の原因が不明な場合にとるべき対応

上記のどちらも該当しない場合、すぐに原因を特定するのは難しいです。そこで、考えられる4つの原因に基づく対応を順番に試し、復旧を試みます。

もし作業に時間がかかりそうであれば、訪問者に不安を与えないように「現在メンテナンス中です。」といったメッセージの表示を検討してみてください。

【原因①:プラグインの問題】プラグインを無効化する

まず、エラーが起きやすいプラグインから試してみましょう。現在有効になっているプラグインをすべて無効化し、Webサイトが正常に表示されるかどうかを確認します。この状態でWebサイトが表示されていれば、プラグインが原因である可能性が高いです。そこから、ひとつひとつプラグインを有効化していき、原因を特定していきます。

対応方法は、WordPressの管理画面にアクセスできる場合と、できない場合とで手順が異なります。

【管理画面にアクセスできる】場合

【手順1】WordPressの管理画面から、[プラグイン]_[インストール済みプラグイン]を選択します。現在インストールされているプラグインの一覧が表示されている状態になります。

有効化されているプラグインは、[無効化]という文字が表示されているため、[無効化]と表示されている部分をクリックして無効化します(無効化すると[有効化]という表示に変わります)。
【管理画面にアクセスできる】場合

【手順2】有効化されているプラグインをすべて無効化した状態にして、Webサイトを再読み込みします。

【手順3】正常に表示できた場合、問題のあるプラグインを特定するため、ひとつずつプラグインを有効化していきます。プラグインを有効化するたびにWebサイトを再読み込みし、エラーが再発するかどうかを確認します。エラーが再発した場合は、直前に有効化したプラグインが原因と考えられます。

特定できたら、問題を解決するために別のプラグインに切り替えるなどの対応を検討してください。

【手順4】すべてのプラグインを無効化してもWebサイトが正常に表示できない場合は、プラグイン以外に原因があると考えられます。そのため、引き続き【原因②】以降の対応をおこなってください。

【管理画面にアクセスできない】場合

【手順1】FTPソフトなどを使用して、WordPress関連ファイルが保存されているフォルダにアクセスします。「wp-content/」ディレクトリ内にある「plugins」フォルダの名前を一次的に変更します(例:「plugins_old」)。名前を変更することで、PHPがプラグインフォルダにアクセスできなくなるため、自動的にすべて無効化された状態になります。
【管理画面にアクセスできない】場合

【手順2】この状態でWebサイトを再読み込みし、正常に表示できるかどうか確認します。

【手順3】正常に表示できた場合、WordPressの管理画面にもログインできます。この状態では、プラグインは動いていませんが、厳密に無効化されていませんので、「インストール済プラグイン」のページにアクセスします。すると、下図のようなエラーが表示されプラグインが停止(=無効化)されます。(プラグイン一覧には何も表示されません)

【手順4】上記、エラーを表示させてプラグインを無効化させたあと、【手順1】で変更した「plugins」フォルダの名前を元に戻します。これで無効化された状態でプラグインが表示されますので、上記「【管理画面にアクセスできる】場合」の【手順3】以降をおこない、問題のプラグインを特定します。

【原因②:テーマの問題】デフォルトテーマに変更する

プラグインに問題がない場合は、次にテーマを試してみましょう。現在有効になっているテーマをデフォルトのテーマに切り替えてWebサイトを再読み込みします。Webサイトが正常に表示できた場合、直前に使用していたテーマが原因であると考えられます。

対応方法は、WordPressの管理画面にアクセスできる場合と、できない場合とで手順が異なります。

【管理画面にアクセスできる】場合

【手順1】WordPressの管理画面から、[外観]_[テーマ]を選択します。テーマ一覧の中からデフォルトのテーマ(Twenty Sixteen、Twenty Twentyなど)を有効化します。
【管理画面にアクセスできる】場合

【手順2】この状態でWebサイトを再読み込みして、正常に表示できるかどうか確認します。

【手順3】正常に表示できた場合は直前に使用していたテーマが原因と考えられるため、テーマを再ダウンロードしてインストールし直す、別テーマに変更する、などの対応を検討してください。

【手順4】デフォルトテーマに切り替えてもWebサイトが正常に表示できない場合は、テーマ以外に原因があると考えられます。そのため、引き続き【原因③】以降の対応をおこなってください。

【管理画面にアクセスできない】場合

【手順1】FTPソフトなどを使用して、WordPress関連ファイルが保存されているフォルダにアクセスします。「wp-content/」ディレクトリ内にある「themes」フォルダから、有効になっているテーマ名のフォルダを探します。該当フォルダの名前を一次的に変更します。
【管理画面にアクセスできない】場合

【手順2】この状態でWebサイトを再読み込みし、正常に表示できるかどうか確認します。

【手順3】正常に表示できた場合は、WordPressの管理画面にもログインできます。上記「【管理画面にアクセスできる】場合」の【手順3】以降をおこないます。

【原因③PHPのメモリ制限】メモリ割り当てを増やす

プラグインやテーマに問題がない場合は、次にPHPのメモリ制限が原因でエラーが発生した可能性を考えます。

メモリ上限を変更する方法は同じですが、WordPressの管理画面にアクセスできる場合は管理画面上からメモリ上限を確認できます。

【管理画面にアクセスできる】場合

【手順1】まず現在のメモリ上限を確認します。WordPressの管理画面から、[ツール]_[サイトヘルス】を開き、[情報]タブ_[サーバー]をクリックします。
【管理画面にアクセスできる】場合

【手順2】サーバーのサイトヘルス画面からPHPメモリ上限値が確認します。

【手順3】必要に応じて上限値を変更します。管理画面上からはメモリ上限値の変更はできないため、以下の「【管理画面にアクセスできない】場合」へ進みます。
【管理画面にアクセスできる】場合

【管理画面にアクセスできない】場合

【手順1】FTPソフトなどを使用して、WordPress関連ファイルが保存されているフォルダにアクセスします。「wp-config.php」ファイルをエディタで開きます。
【管理画面にアクセスできない】場合

【手順2】以下のように、「define( ‘WP_MEMORY_LIMIT’,」と「define(‘WP_MAX_MEMORY_LIMIT’,」という記述を追加します。コードを追加したら、保存してファイルを閉じます。Webサイトを再読み込みして、正常に表示できるかどうか試みます。

/** データベースのテーブルを作成する際のデータベースの文字セット */
define( ‘DB_CHARSET’, ‘utf8’ );

/** データベースの照合順序 (ほとんどの場合変更する必要はありません) */
define( ‘DB_COLLATE’, ” );

/**追加場所
define( ‘WP_MEMORY_LIMIT’, ‘200M’ );
define(‘WP_MAX_MEMORY_LIMIT’, ‘512M’);

/**#@+
* 認証用ユニークキー
*
* それぞれを異なるユニーク (一意) な文字列に変更してください。

LIMITの後に書かれている数値が上限です。

【手順3】メモリ上限を変更してもWebサイトが正常に表示できない場合は、他の原因が考えられます。そのため、引き続き【原因④】以降の対応をおこなってください。

★「wp-config.php」や「.htaccess」の変更は慎重に
「wp-config.php」や後述する「.htaccess」といったファイルは、データベース情報や各種設定情報など重要な情報を含んでいます。これらのファイルを変更する場合は、必ずバックアップを作成し、不必要な場所は変更しないように注意して作業しましょう。

【原因④サーバーの内部エラー】「.htaccess」ファイルを修正する

内部エラーは、「.htaccess」「function.php」「header.php」などのファイルを変更した際に、構文エラーや他の問題があると発生します。

しかし、これらファイルを直前に変更した記憶がないにもかかわらず「このサイトで重大なエラーが発生しました」とエラーメッセージが表示される場合、「.htaccess」が破損した可能性があります。プラグイン、テーマ、メモリのいずれも問題ない場合、「.htaccess」を無効にして問題が解消するかどうかを確認してみましょう。

以下は対応手順です。

【手順1】FTPソフトなどを使用して、WordPress関連ファイルが保存されているフォルダにアクセスします。「.htaccess」ファイルの名前を一時的に変更します(例:「.htaccess_old」)。
【原因④サーバーの内部エラー】「.htaccess」ファイルを修正する

【手順2】この状態でWebサイトを再読み込みし、正常に表示できるかどうか確認します。

【手順3】正常に表示できた場合は「.htaccess」が原因と考えられるため、「.htaccess」を再設定します。WordPress管理画面から[設定]_[パーマリンク設定]を開き、何も変更せずに「変更を保存」ボタンをクリックします。これにより新しい「.htaccess」ファイルが再設定されます。

【原因④サーバーの内部エラー】「.htaccess」ファイルを修正する

改善しない場合は原因を探してみる(上級者向け)

上記で紹介した4つの対応策をすべて試しても問題が解消しない場合は、デバッグモードを使用して原因を特定することをおすすめします。

またWordPressからエラーが届いている場合には、WordPress に搭載されている「リカバリモード」を使用してエラー対応ができます(バージョン5.2以降)。

デバッグモード

WordPressには、標準でデバッグモードが提供されています。デバッグモードを有効にすることで、PHPのエラーや警告を表示でき原因の特定に役立ちます。

【手順1】FTPソフトなどを使用して、WordPress関連ファイルが保存されているフォルダにアクセスします。「wp-config.php」ファイルを見つけ、エディタで開きます。次に、「define( ‘WP_DEBUG’, false );」と記述がある箇所を探して、「define( ‘WP_DEBUG’, true );」に変更し、ファイルを保存して閉じます。

デバッグモード

変更前:

define( ‘WP_DEBUG’, false );

変更後:

define( ‘WP_DEBUG’, true );

※注※ 論理値(false/true)は、シングルクォーテーションで囲まないでください。

【手順2】デバッグモードでWebサイトを表示すると、画面の上部にエラーが表示されます。このメッセージを参考に、ファイルの修正・削除など適切な対応をおこないます。

【手順3】再度Webサイトを表示し、正常に表示されるかどうか確認します。問題が解消した場合、再び「wp-config.php」ファイルをエディタで開き、【手順1】で変更した箇所を元に戻します。保存してファイルを閉じると、デバッグモードが終了します。

変更前:

define( ‘WP_DEBUG’, true );

変更後:

define( ‘WP_DEBUG’, false );

リカバリーモード(WordPressバージョン5.2から追加)

前述のとおり、WordPressから「[(Webサイト名)] サイトで技術的な問題が発生しています」というメール通知が届いた場合、以下の手順で原因の特定ができます。

【手順1】WordPressからのメールに記載されているリンクをクリックするとログイン画面が表示されます。通常のIDとパスワードでログイン後、リカバリーモードが自動的に有効になります。

なお、リカバリーモードのリンクは有効期限が1日です。1日経過してしまった場合は、後送されるメールのリンクを使用してください。

【手順2】ダッシュボードには、「プラグインを正しく読み込めませんでした」「テーマを正しく読み込めませんでした」など、エラーに関する内容が表示されています。メールに記載されているエラー詳細と、ダッシュボードの情報を参考にして、適切な対応をおこないます。

【手順3】リカバリーモードを終了します。Webサイトを再度読み込み、正常に表示されるかどうか確認します。

エラーログを出力

WordPressには、デバッグモードと併せて使用することでエラーログを出力する機能が搭載されています。以下の方法でエラーログを出力できます。

【手順1】FTPソフトなどを使用して、WordPress関連ファイルが保存されているフォルダにアクセスします。「wp-config.php」ファイルを見つけ、エディタで開きます。次に、「define( ‘WP_DEBUG’, false );」と記述がある箇所を探して以下のように変更し、ファイルを保存して閉じます。
エラーログを出力

変更前:

define( ‘WP_DEBUG’, false );

変更後:

define( ‘WP_DEBUG’, true );
define(‘WP_DEBUG_LOG’, true);

【手順2】Webサイトを再読み込みすると、「wp-content」フォルダ内に、「debug.log」というログファイルが出力されます。ファイルを開き、記載内容を参考にファイルの修正・削除など適切な対応をおこないます。

【手順3】Webサイトを再読み込みし、正常に表示されるかどうか確認します。問題が解消し他場合、再度「wp-config.php」ファイルをエディタで開き、【手順1】で変更した箇所を元に戻します。保存して閉じるとデバッグモードが終了します。

変更前:

define( ‘WP_DEBUG’, true );
define(‘WP_DEBUG_LOG’, true);

変更後:

define( ‘WP_DEBUG’, false );

ハッキングの疑いがあれば迷わず専門家に

突然エラーが発生した場合、ハッキングされている可能性もゼロではありません。

少しでも不安を感じる場合は、「Sucuri SiteCheck」という無料のハッキングリスクチェックツールを利用することをおすすめします。手順は以下のとおりです。

【手順1】「Sucuri SiteCheck」の公式サイトにアクセスします。テストしたいURLを入力し、「Submit」ボタンをクリックします。

【手順2】テストが終了すると、結果が表示されます。セキュリティ上の問題が発見された場合は、赤文字で表示されます。
ハッキングの疑いがあれば迷わず専門家に

万が一、セキュリティ上の問題が発見された場合は、早急に専門家に相談することが重要です。Webやセキュリティの専門知識を持たずに独自に対応しようとすると、二次的または三次的な被害を引き起こすリスクがあります。この場合は迷わず知識や経験を持った専門家に相談しましょう。

WordPressを専門に取り扱っている私たちの会社では、WordPressトラブル・ハッキングからの緊急復旧も承っています。
最短即日で大切なWebサイトを安全に復旧します。お問合せは無料ですので、お困りの際はぜひご相談ください。

WordPressのハッキング・緊急復旧サービス「wp.rescue」

バックアップから戻す選択肢も

定期的にバックアップを取得していると、今回のようなトラブルが発生した際に正常稼働時のバックアップから復元することができます。

バックアップまたは復元の手順や方法は、使用しているプラグインやレンタルサーバーによって異なります。それぞれの説明に従って復元作業をおこなってください。

まとめ

WordPressで「重大なエラーが発生しました」というエラーメッセージは、考えられる原因にもとづき対応していけば問題が解消するケースがほとんどです。まずは「直前の変更を元に戻す」こと、また「WordPressからの通知を確認する」のが第一歩。次に、「プラグイン・テーマを一時的に無効にする」「メモリ上限を確認」「.htaccessの再設定」などを試していきます。

エラー対応を行う際には、どうしてもPHPファイルの編集やログの確認など専門的な知識が必要になる場面があります。初心者にはハードルが高いと感じたら、専門家に相談するという選択肢も検討してみてください。

WordPressサイトのトラブル復旧なら「wp.rescue」にお任せ!

WordPressサイトで急なトラブルにあったら、「wp.rescue」にご相談ください!

  • 急にサイトに何も表示されなくなった…
  • ログインできなくなった…
  • 覚えのない不審なページがインデックスされている…
  • 不審なユーザーが追加されている…
  • リンクが不審なサイトに飛ぶように書き換えられている…
  • バージョンアップしたらサイトが崩れてしまった…

「wp.rescue」は、WordPressのプロフェッショナル集団によるWordPressトラブル・ハッキング復旧サービスです。
WordPressサイト運営していて、急なトラブルに遭うことは珍しくありません。

原因や解決法方がわかる場合は問題ありませんが、原因がわからなかったり、ハッキングの可能性がある場合はプロに相談するのが一番です。
wp.rescueでは、様々なサイトのトラブルやハッキング被害を解決してきた経験・ノウハウがあるため、速やかなサイトの復旧が可能です。

トラブル復旧はスピードも重要。wp.rescueなら最短即日での復旧も可能ですので、お困りの場合はまずはお問い合わせフォームから無料相談をしてください。

>> wp.rescueに無料相談する

「あれ? 何かおかしい…」と思ったら、WordPressハッキング・緊急対応サービス『wp.rescue』

wp.rescue

特に心当たりもないのに、
・WordPressにログインできない…
・検索結果の表示がおかしい…
・勝手にリダイレクトされてしまう…


など、「何か変だ」と感じたら、
実はWordPressがハッキングされている可能性もあります。

被害が拡大・深刻化する前に、『wp.rescue』にご相談ください!

WordPressのプロフェッショナルがあなたのサイトの問題を迅速解決!