このウェブサイトで致命的なエラーが発生しました。迅速な修正方法
John Turner
ジョン・ターナー
致命的なエラーは都合の良い時を選んで発生するものではありません。ある瞬間はサイトが正常でも、次の瞬間には「このウェブサイトで致命的なエラーが発生しました」という一文が表示された真っ白な画面に直面することになります。
クライアントのサイトがローンチの最中、トラフィックが流入し始めたまさにその時にダウンしたのを見たことがあります。パニックは現実です。最悪の事態を想定する本能も同様です。
しかし、このエラーはハッキングされたことを意味することはめったにありません。通常は、プラグイン、テーマ、またはPHP設定がサイトの他の何かと競合していることを意味します。WordPressは、事態が悪化する前にそれを検知しました。
それは良い兆候です。WordPressは、何も説明せずにサイトが静かにクラッシュするのを許すのではなく、何かが壊れたことを知らせてくれています。
このガイドでは、まずサイトを最も早くオンラインに戻す方法を説明し、次に根本原因を見つけて修正する方法を順を追って説明します。
主なポイントは次のとおりです:
- 最近のバックアップを復元するのが、通常最も早い解決策です。Duplicatorは、wp-adminが完全にロックアウトされている場合でもこれを実行できるため、最初に診断する必要はありません。
- このエラーはハッキングであることはめったにありません。ほぼ常にプラグインの競合、PHPの非互換性、またはメモリ制限であり、悪意のあるコードではありません。
- まず、管理者のメールを確認してください。WordPressは自動的にリカバリリンクを送信し、多くの場合、原因となった正確なプラグインまたはテーマの名前が記載されています。
- サイトが復旧したら、作業は終わりではありません。将来、このようなことが再び起こらないように、ライブサイトとは別の場所でプラグインやテーマのアップデートをテストしてください。
目次
WordPressで「このウェブサイトで致命的なエラーが発生しました」と表示されるのはどういう意味ですか?
「このウェブサイトで致命的なエラーが発生しました」は、WordPressが致命的なエラーに遭遇し、自身で回復できない場合に表示されます。

通常、WordPressサイトのコードが破損すると、何も説明のない真っ白な画面が表示されます。これはホワイトスクリーンの死(WSoD)と呼ばれ、情報が全く得られないため診断がはるかに困難です。
WordPressは、この問題に対処するために数バージョン前に致命的なエラーメッセージを追加しました。これにより、空白のページではなく、明確なメッセージと(通常は)詳細情報を含むメールが表示されるようになりました。
致命的なエラーはハッキングとは異なります。ハッキングされたサイトは通常、異なる症状を示します:スパムサイトへのリダイレクト、不審な新しい管理者ユーザー、改ざんされたページなど。
致命的なエラーは、侵入ではなく、WordPressがコーディングの問題を検知したものです。
侵入というよりは、サーキットブレーカーがトリップするようなものと考えてください。何かがシステムに過負荷をかけ、システムが自身を保護するためにシャットダウンしました。
それは残念ですが、修正可能です。
どのように発生しますか?
根本原因は繰り返し現れるものがいくつかあり、ほとんどの重大なエラーはそれらのいずれかに起因しています。
「このウェブサイトで重大なエラーが発生しました」というメッセージが表示されるのは、次のような理由によります。
- プラグインまたはテーマの競合: 2つのプラグインが同じ関数またはフックを互換性のない方法で使用しようとしたり、テーマが既に存在しない関数を呼び出したりする場合。
- PHPバージョンの不一致: 古いプラグインやテーマは、特にサーバーが自動アップグレードされた後、ホストが現在実行しているPHPバージョン向けに構築されていない場合があります。
- PHPメモリまたはアップロード制限の不足: プロセスがホスティングプランで許可されている以上のメモリを使用しようとし、PHPが実行中にそれを終了させる場合。
- コアファイル破損またはアップデート失敗: WordPressのアップデートが中断された場合、ファイルが部分的に書き込まれたり、完全に欠落したりする可能性があります。
- マルウェアによる破損コードの注入: 頻度は低いですが、発生します。悪意のあるコードが、静かに実行される代わりに致命的なエラーを引き起こすほどずさんな場合があります。
おそらく、どれが該当するかはまだわからないでしょう。それは問題ありません。
以下の修正方法は、推測することなく、まず特定の重大なエラーの原因を見つけられるように順序付けられています。
ウェブサイトで致命的なエラーが発生した場合の対処法
これらの手順を順に実行してください。最初の2つのステップは、オンラインに戻るための最も速い方法です。残りは、根本原因を見つけて修正するのに役立ちます。
WordPressの重大なエラーを修正するために行うことは次のとおりです。
- 最近の変更を元に戻す: エラーが発生する直前に行ったコードの編集、プラグインのインストール、またはアップデートを元に戻します。これにより、多くの場合すぐに修正されます。
- バックアップを復元する: 何が原因で壊れたかわからなくても、Duplicatorを使用してサイトの正常なバージョンにロールバックします。
- リカバリーモードを確認する: WordPressが自動的に送信するメールのリンクを使用します。これにより、多くの場合、問題のある正確なプラグインまたはテーマが特定されます。
- キャッシュをクリアする: さらに深く掘り下げる前に、古いキャッシュされたエラーページを除外します。
- デバッグモードを有効にする: WordPressの組み込みエラーログをオンにして、正確な致命的なエラーメッセージを表示します。
- プラグインまたはテーマの競合を確認する: 1つずつ無効化および再アクティブ化して、原因を特定します。
- PHPメモリ制限を引き上げる: メモリ不足が原因である場合、WordPressが実行するための余地を増やします。
- 最大ファイルアップロードサイズを増やす: 現在の制限を超えたアップロードまたはインポートによってトリガーされるエラーを修正します。
- PHPバージョンをアップグレードする: ホスティングダッシュボードを通じて、古いPHPとの互換性の問題を解決します。
- マルウェアをスキャンする: 他のすべてでエラーが説明できない場合、注入されたコードを除外します。
- ウェブホストのサポートに問い合わせる: 自分で確認できないサーバーレベルのログからヘルプを得ます。
最近の変更を元に戻す
WordPressがクラッシュする最も一般的な理由の1つは、ヒューマンエラーです。最近コードの調整、アップデート、または新しいツールのインストールを行った場合は、行ったことを元に戻してください。
通常、これはfunctions.phpのようなファイルにコードを追加した後で発生します。ファイルに戻って変更を元に戻すだけです。
インストールまたはアップデートした直後にエラーが発生した場合、それが最初の疑い対象です。プラグインを無効にして、サイトが再び読み込まれるか確認してください。
バックアップを復元する
何がサイトを壊したのかわからない場合は、通常、バックアップの復元が次のステップになります。Duplicator はこのための私のお気に入りのツールです。WordPress が機能していなくても、完全に壊れたサイトを復元できます。

このような緊急事態のために、常にクラウドにバックアップを保存しておくことをお勧めします。Duplicator Cloud は、サイトがダウンした場合でも常に利用できるオフサイトのバックアップストレージ場所です。
アカウントにアクセスして、リカバリコネクタを設定してください。FTP認証情報を使用してサイトに接続します。

次に、エラーが発生する前に作成された最近のクラウドバックアップを見つけます。それを復元してください。

Duplicator には、重大なエラーをロールバックするための災害復旧ポイントもあります。これを使用するには、エラーが発生する前に災害復旧用にバックアップを設定しておく必要があります。リカバリリンクが提供されているはずです。

重大なエラーが発生した後、このリンクを見つけてブラウザウィンドウに貼り付けます。指示に従ってサイトを復元してください。
これらのリカバリオプションを設定しなかった場合は、ダウンロードしたバックアップを使用してください。最近のアーカイブファイルとインストーラーファイルを見つけて、FTP経由でサイトに再アップロードします。次のようなURLでインストーラーを起動します: https://your-domain/installer.php。
復元が完了すると、サイトは通常どおり読み込まれ、エラーは解消されているはずです。
リカバリモードを確認する
WordPress は、エラーメッセージを表示して推測させるだけではありません。ほとんどの場合、エラーが発生したときにサイトの管理者アドレスにメールも送信されます。
サイトからの、重大なエラーに関する件名のメールを探してください。その中に、リカバリモードでログインするためのリンクがあります。

これにより、すべてのプラグインとテーマのカスタム機能が一時的に無効になった状態でサイトが読み込まれるため、フロントエンドが壊れていても wp-admin にアクセスできます。
リンクをクリックして、通常どおりログインします。

ログインしたら、プラグインページに移動します。WordPress は、エラーを引き起こした特定のプラグインを、画面の一番上に通知として表示することがよくあります。
それが、次のステップの出発点となり、正確な原因を特定します。
キャッシュのクリア
さらに進む前に、簡単な可能性を排除してください。実際の問題が修正された後でも、壊れたページのキャッシュされたバージョンが表示されている可能性があります。
まず自分のブラウザから試してください。キャッシュをクリアするか、プライベート/シークレットウィンドウでサイトを開き、再読み込みします。
WP Rocket や W3 Total Cache のようなキャッシュプラグインを使用している場合は、wp-admin (または、もしそうやって復帰した場合はリカバリモード) にログインして、プラグインの設定からキャッシュをクリアしてください。

サイトが Cloudflare のような CDN の背後にある場合は、そこでもキャッシュをクリアしてください。CDN はサーバーレベルでページをキャッシュするため、ブラウザのキャッシュだけでは解決しません。
このステップは2分で完了し、コードに触れる前に実行する価値があります。実際のエラーはすでに解消されており、訪問者は古いキャッシュバージョンを見ているだけの場合があります。
キャッシュのすべてのレイヤーをクリアしてもエラーがまだ残っている場合は、問題は実際に発生しており、次のステップに進む時間です。
デバッグモードを有効にする
キャッシュのクリアで問題が解決しない場合は、WordPressが非表示にしている正確なエラーを確認する必要があります。
WordPressは、訪問者に機密性の高いファイルパスを公開しないように、実際のPHPエラーの代わりに一般的なクリティカルエラーメッセージを表示します。デバッグモードは、その実際のエラーを再度オンにします。
FTPまたはホスティングファイルマネージャーを使用してサイトに接続し、ルートフォルダーにあるwp-config.phpファイルを開きます。
define('WP_DEBUG', false);という行を見つけて、次の行に置き換えます。
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);
ファイルを保存してから、壊れたサイトをリロードします。
次にファイルマネージャーに戻り、wp-content/debug.logを開きます。一番下までスクロールし、PHP Fatal errorと表示されている最新のエントリを探します。
その行には、クラッシュの原因となった正確なファイルと関数、通常はプラグインまたはテーマのファイルの名前が記載されています。
そのファイル名を書き留めてください。次のステップで必要になります。
プラグインまたはテーマの競合を確認する
これで、リカバリーモードのプラグイン通知またはデバッグログのファイル名から、強力な手がかりが得られたはずです。このステップでそれを確認します。
FTPで接続し、wp-content/pluginsに移動します。
原因となっているプラグインがすでにわかっている場合は、そのプラグインのフォルダーの名前を変更します(末尾に.deactivatedを追加します)。WordPressは名前が変更されたフォルダーを見つけられないため、そのプラグインは自動的に非アクティブ化されます。
まだどれが原因かわからない場合は、プラグインフォルダー全体をplugins.deactivatedのような名前に変更します。これにより、サイト上のすべてのプラグインが一度に非アクティブ化されます。

サイトをリロードします。正常に読み込まれた場合は、プラグインが原因であることを確認しました。
次に、どれが原因かを特定します。フォルダーの名前をpluginsに戻し、wp-adminに移動して、サイトをリロードしながらプラグインを1つずつ再アクティブ化します。
クリティカルエラーが再び発生した時点で、原因となっているプラグインが見つかりました。それを非アクティブ化し、アップデートを探すか、プラグイン開発者に連絡するか、代替品に置き換えてください。
すべてのプラグインを無効にしても問題が解決しない場合は、問題はおそらくテーマにあるでしょう。
外観メニューから、またはFTPを使用してアクティブなテーマのフォルダーの名前を同じ方法で変更することにより、Twenty Twenty-FourのようなデフォルトのWordPressテーマに切り替えます。

テーマを切り替えてエラーが解決した場合、原因はテーマ(または子テーマのカスタマイズ)です。
PHPメモリ制限を引き上げる
プラグインとテーマの両方がクリーンな場合、次に可能性が高い原因はメモリ不足です。これは、プロセス(画像サムネイルの生成や複雑なクエリの実行など)がホストで許可されているメモリよりも多くのメモリを必要とする場合に発生します。
wp-config.phpファイルを再度開きます。
/* That's all, stop editing! Happy publishing. */と書かれた行を見つけて、その直前に次の行を追加します。
define('WP_MEMORY_LIMIT', '512M');
その行がより小さい番号で既に存在する場合は、重複を追加するのではなく、それを引き上げてください。
ファイルを保存して、サイトを再読み込みしてください。
これはWordPressが要求する制限を引き上げるだけであることを覚えておいてください。ホスティングプランは依然としてハードキャップを設定しているため、ホストがPHPメモリを256Mに制限している場合、512Mを要求しても効果はありません。
最大ファイルアップロードサイズを増やす
この手順は、重大なエラーが大きなファイルをアップロードした後、コンテンツをインポートした後、またはzipファイルからプラグインまたはテーマをインストールした直後に表示された場合にのみ関連します。
ファイルがサーバーのアップロード制限を超えると、PHPは途中で失敗する可能性があり、通常の「ファイルが大きすぎます」というメッセージの代わりに重大なエラーが発生することがあります。
wp-adminのメディア » メディアファイルを追加に移動して、現在の制限を確認してください。WordPressは最大アップロードサイズを表示します。

引き上げる必要がある場合は、ホスティングダッシュボードを通じて行うのが最も簡単な方法です。ほとんどのホストにはPHP設定パネルがあり、upload_max_filesizeとpost_max_sizeを直接調整できます。
ホストがそれを提供していない場合は、サイトのルートフォルダにある.htaccessという名前のファイルにこれらの行を追加できます。
php_value upload_max_filesize 256M
php_value post_max_size 256M
すべてのホストがPHP値の.htaccessオーバーライドをサポートしているわけではありません。これらの行を追加するとサイトがさらに壊れたり、何も起こらなかったりした場合は、それらを削除して代わりにホストに直接連絡してください。
PHPバージョンをアップグレードする
WordPressはPHP 8.3以降の実行を推奨しています。古いバージョンはセキュリティアップデートの受信を停止し、時間の経過とともに新しいプラグインとの互換性を失います。
デバッグログに「存在しない」関数について言及されていたり、非推奨の警告が表示されたりした場合、PHPバージョンの古さが原因である可能性が高いです。
ホスティングアカウントにログインしてください。通常、サイトの設定でPHPを更新できます。

CPanelには、PHPバージョンをアップグレードするのに役立つMultiPHPマネージャーもあります。

利用可能な最新バージョンを選択し、変更を適用してください。

切り替える前に、現在のバージョンとプラグインおよびテーマが必要とするバージョンを比較してください。ほとんどのWordPress.orgプラグインページには、説明にどのPHPバージョンでテストされたかが表示されています。

PHPのアップグレードによって別のエラーが表示される場合は、新しいPHPバージョン用にまだ更新されていないプラグインまたはテーマが見つかった可能性があります。以前のPHPバージョンに戻し、そのプラグインの開発者に連絡してください。
マルウェアのスキャンを行う
上記のすべての手順を試しても何もエラーを説明できない場合は、最も可能性は低い原因ですが、マルウェアを除外する価値があります。
悪意のあるコードは通常、サイレントに実行されるように書かれていますが、コードの悪いマルウェアは、悪いプラグインと同じようにPHPをクラッシュさせる可能性があります。
SucuriやWordfenceのようなセキュリティプラグインをインストールするか、ホスティングプロバイダーにマルウェアスキャナーが組み込まれている場合はそれを使用してください。
サイトのファイルをフルスキャンしてください。コードが含まれていないはずの場所(アップロードフォルダなど)でフラグが付けられたファイルを探してください。
スキャンで感染ファイルが見つかった場合、自信がない限り、手動でクリーンアップしようとしないでください。代わりに、感染前に取得したバックアップから復元し、すべてのプラグイン、テーマ、パスワードを更新してセキュリティを強化してください。
スキャンでクリーンな結果が出た場合は、マルウェアの可能性を完全に除外し、最後のステップに進むことができます。
ウェブホストのサポートに問い合わせる
すべてのステップを試してもサイトに重大なエラーが表示される場合は、ホストに連絡する時期です。
ホスティングプロバイダーは、wp-adminやFTPからは見ることができないサーバーレベルのログ(PHPエラーログなど、サイトのdebug.logファイルよりも詳細な情報が含まれるもの)にアクセスできます。
サポートチケットまたはライブチャットを開き、具体的な情報を提供してください。エラーが発生した時期、すでに試したこと、デバッグログからのエラーメッセージなどです。
WordPressを専門とするほとんどのホストは、サーバーログを確認し、数分以内に原因を特定できます。
トラブルシューティング / 一般的なエラー
上記のステップを踏んでも、いくつかの特定の状況で問題が発生することがあります。それらの対処法を以下に示します。
リカバリメールが届かない
エラー直後に受信トレイを確認しましたが、迷惑メールにも何もありませんでした。
これは通常、サイトのメール送信機能が壊れていることを意味します。共有ホスティングでは、送信メールがデフォルトでブロックまたはフィルタリングされることがよくあります。
代わりに、FTPまたはファイルマネージャーを使用してプラグインを手動で無効化してください。これを行うためにリカバリメールは必要ありません。機能している場合は、単に迅速なショートカットになるだけです。
デバッグログに有用な情報が表示されない
デバッグモードを有効にし、サイトをリロードしてdebug.logを開きましたが、空であるか、関連性がなさそうな警告のみが表示されます。
デバッグモードをオンにして保存した後、実際に壊れているページをリロードしたことを確認してください。ログには、変更を保存した後に発生するエラーのみがキャプチャされます。
それでも空の場合は、WordPressがロードされる前にサーバーレベルでエラーが発生している可能性があります。その場合は、すぐにホストに連絡してください。
よくある質問(FAQ)
HTTPエラー500を修正するにはどうすればよいですか?
500エラーは、PHPがWordPress自身の त्रुटिメッセージを表示する前にクラッシュした、サーバーレベルの問題です。根本的な原因はほぼ完全に重複するため、上記の修正リストをステップ1から始めて同様に作業してください。デバッグモードで何も表示されない場合は、次にホストのサーバーログを確認してください。
ウェブサイトで重大なエラーが発生した場合、それは何を意味しますか?
サイトのコードが致命的なPHPエラーに遭遇し、ページがロードされなくなり、プラットフォームが空白画面の代わりにそれをキャッチしたことを意味します。WordPressでは、これにより組み込みの重大なエラーメッセージが表示され、通常はリカバリメールが送信されます。これは、サイトへの物理的な損傷ではなく、コーディングまたは設定の問題です。
最も一般的なWordPressのエラーは何ですか?
パーマリンク変更後に、ホワイトスクリーンの死、HTTPエラー500、「データベース接続を確立できません」エラー、および404エラーに遭遇することがよくあります。ほとんどは、プラグインの競合、テーマの問題、またはサーバーリソースの制限といった同じ根本原因にたどります。このガイドの診断手順は、ほぼすべてに適用されます。
WordPressのエラーを元に戻す最も簡単な方法は?
最近のバックアップを復元するのが最も速いロールバック方法です。特にエラーが発生する直前に取得したバックアップは有効です。Duplicatorのようなツールは、wp-adminが読み込まれない場合でも、災害復旧リンクまたは手動でアップロードされたバックアップファイルを使用してこれを実行できます。診断を完全にスキップし、サイトを既知の正常な状態に戻します。
ウェブサイトを開けないのはなぜですか?
これはほぼ常に3つのうちのいずれかです。致命的なエラーまたは同様の致命的な問題、ホスト側のサーバー障害、またはWordPress自体とは無関係のDNS問題です。別のデバイスまたはネットワークからサイトが同じように失敗するかどうかを確認してください。そうであれば、このガイドをステップ1から始めて進めてください。
WordPressからロックアウトされた場合はどうすればよいですか?
wp-adminがまったく読み込まれない場合、最も速い選択肢はWordPressリカバリモードまたは直接バックアップの復元(Duplicatorを使用)です。どちらも機能する管理ダッシュボードなしで機能するためです。FTPまたはホストのファイルマネージャーを使用すると、wp-adminに触れることなくプラグインを無効化したりファイルを編集したりすることもできます。
リカバリモードのメールが届かなかったのはなぜですか?
サイトのメール送信が誤って設定されているかブロックされている可能性があります。これは共有ホスティングでよくあることです。送信メールが機能しない場合、WordPressはリカバリリンクを送信できません。メールを完全にスキップし、代わりにFTP経由でプラグインを手動で無効化できます。
サイトは復旧しましたが、今後発生しないようにしましょう
原因を見つけ、修正し、サイトが正常に読み込まれるようになりました。これは簡単なことではありません。
説明のないサイトダウンは、WordPressオーナーが直面する可能性のある最もストレスの多い問題の1つであり、あなたはパニックに陥る代わりに、それを体系的に解決しました。
そもそもこのエラーを引き起こした原因を監視し続けてください。
プラグインが原因だった場合、次のアップデートを監視し、開発者が競合を解決したかどうかを確認してください。PHPバージョンの不一致が原因だった場合、ホストが別の自動アップグレードをプッシュする前に互換性を再確認してください。
まだ言及していないことの1つ:次の致命的なエラーが発生した後ではなく、次のプラグインまたはテーマのアップデートの前にステージングサイトを設定してください。
Duplicator Proを使用すると、数回のクリックでステージングコピーを起動し、そこで最初にアップデートをテストし、何も壊れないことがわかったらライブサイトにプッシュできます。
さらに、その災害復旧URLは、WordPress自体が読み込まれない場合でもサイトを復元します。最悪のエラーでもロールバックするにはDuplicator Proを入手してください!
このチュートリアルがお役に立った場合は、次のガイドも読む価値があります。