WordPressサイトを閲覧していて、突然「死の真っ白画面(WSoD)」に遭遇するほど残念なことはありません。このエラーが発生すると、管理者と訪問者の両方がサイトにアクセスできなくなります。

死の真っ白画面エラーでは、原因や解決策につながる情報が十分に提供されないため厄介ですが、最も一般的なWordPressエラーの1つでもあります。面倒ですが多くの場合、解決することができます。

この記事では、WordPressの死の真っ白画面エラーについて、そして一般的な原因をご説明します。その後、サイトを素早く復旧する方法を9種類ご紹介していきます。

WordPressの死の真っ白画面(WSoD)とは

その名のとおり、WordPressの「死の真っ白画面(別名「WSoD」や「死のホワイトスクリーン」とも)」は、アクセスしようとしているページが表示されず、画面が真っ白になる現象を指します。

使用しているブラウザによって、表示されるエラーメッセージは異なります。以下はGoogle Chromeの例です。「This page isn’t working and is unable to handle the request」というHTTP 500エラーが表示されています。

Google ChromeのWordPressサイトの死の真っ白画面エラー
Google ChromeのWordPressサイトの死の真っ白画面エラー

以下はMozilla Firefoxでの見え方です。

Mozilla FirefoxのWordPressサイトの死の真っ白画面エラー
Mozilla FirefoxのWordPressサイトの死の真っ白画面エラー

このように真っ白な画面が表示されるのみで、エラーの詳細や警告メッセージは何も表示されません。

WordPressの死の真っ白画面エラーはほとんどの場合、PHPコードエラー、またはメモリ制限に達したことが原因です。

テーマまたはプラグインの欠陥も原因になり得ます。後者は、ウェブサイトのフロントエンドがダウンしているが、バックエンド(WordPress管理画面)は動作している場合はなおさらです。サイトの管理画面が機能しているかどうかを確認するには、ログインページのURLを開いてみてください(デフォルトは「yourdomain.com/wp-admin」)。

WordPressの死の真っ白画面(WSoD)を解決する方法(9通り)

WordPressサイトで死の真っ白画面エラーが発生した場合は、できるだけ早急に対処することが重要です。以下、9種類のトラブルシューティング方法をご紹介します。

1. WordPressプラグインを無効にする

WordPressサイトでの死の真っ白画面エラーは、プラグインの更新に関する問題が原因で発生することが多々あります。これを確認するには、プラグインを一時的にすべて無効化します。

管理画面にアクセスできる場合は、「プラグイン」画面に移動して、「一括操作」ドロップダウンから「無効化」を選択します。

全てのWordPressプラグインを無効にする
全てのWordPressプラグインを無効にする

これですべてのプラグインが無効になります。サイトを再読み込みしてサイトが復旧した場合は、プラグインに原因があることがわかります。続いては、プラグインを1つずつ有効化し、サイトを再読み込みして、エラーの原因になったプラグインを特定します。

プラグインを特定したら、その開発者にエラーを報告するか、WordPressプラグインディレクトリでサポートチケットを投稿してみてください。

管理画面にログインできない場合は、FTPクライアントを使用して、サイトのファイルディレクトリにアクセスします。ルートディレクトリのwp-contentフォルダ下にある、 pluginsフォルダを見つけ、「plugins_old」のような名前に変更してください。

pluginsフォルダの名前を変更する
pluginsフォルダの名前を変更する

フロントエンドでサイトを確認し、サイトが正常に稼働する場合は、先ほど同様、プラグインを1つずつ有効化していきます。プラグインのフォルダ名を「plugins」に戻し、問題のあるプラグインが見つかるまで、各プラグインフォルダを1つずつ変更していきます。

2. デフォルトのWordPressテーマに切り替える

問題がプラグインではない場合、WordPressテーマが死の真っ白画面エラーの原因になっているかもしれません。これを確認するには、使用中のテーマをデフォルトのテーマを切り替えてみてください。

管理画面にアクセスできる場合は、「外観」>「テーマ」に移動して、Twenty Twenty-FiveなどのデフォルトのWordPressテーマを有効してください。

WordPressテーマ「Twenty Twenty-Five」
WordPressテーマ「Twenty Twenty-Five」

サイトを再読み込みしてみて、エラーが消えるかを確認しましょう。無事にサイトが表示されれば、原因は使用していたテーマにあることがわかります。

管理画面にアクセスできない場合は、プラグインの場合と同様で、FTPを使用してサイトのファイルにアクセスし、 wp-content/themesフォルダの名前を別の名前に変更します。

themesフォルダの名前を変更する
themesフォルダの名前を変更する

これで、WordPressサイトが最新のデフォルトテーマに切り替えされます。他にテーマがない場合は、WordPressテーマディレクトリからテーマをダウンロードして、テーマフォルダにアップロードしてください。

テーマを切り替えたら、サイトを再読み込みし、正常に表示されていれば、テーマに競合または不適切なアップデートがある可能性があります。この場合は、開発者に相談するか、テーマの変更を検討してみてください。

Kinstaでは、プラグインとテーマにKinsta自動アップデートアドオンを提供しています。プラグインとテーマの更新を安全かつ素早く自動化することができ、プラグインやテーマに起因する問題を削減することができます。

3. ブラウザとWordPressプラグインのキャッシュをクリアする

WordPress管理画面にアクセスできる状態で、フロントエンドに死の真っ白画面エラーが発生している場合は、キャッシュの問題かもしれません。

ウェブブラウザのキャッシュとWordPressキャッシュのプラグイン(インストールしている場合)をクリアしてみてください。

WordPressサイトで、WP RocketWP Super Cacheなどのキャッシュプラグインを使用している場合には、通常プラグインの設定画面からキャッシュをクリアすることができます。

WP Super Cacheを例に挙げると、WordPress管理画面から「設定」>「WP Super Cache」>「Delete Cache(キャッシュのクリア)」という手順で実行できます。

WP Super Cacheプラグインの設定ページ
WP Super Cacheプラグインの設定ページ

MyKinstaでキャッシュをクリアする方法

Kinstaをご利用であれば、MyKinstaから簡単にキャッシュをクリアできます、ログイン後、「WordPressサイト」>(サイト名)>「キャッシュ」画面に移動し、「全てのキャッシュをクリア」をクリックします。

MyKinstaですべてのキャッシュをクリア
MyKinstaですべてのキャッシュをクリア

キャッシュをクリアしたら、変更を保存します。次に、サイトに再びアクセスして、問題が解決したかどうか確認します。まだ、問題があるようであれば、次の方法へと進みましょう。

4. デバッグモードを有効にする

まだ死の真っ白画面エラーが解決しておらず、管理画面にアクセスできない場合、特定した原因を深く掘り下げたい場合には、デバッグモードが便利です。これにより、サイトで発生しているエラーを表示することができます。

デバッグを有効にするには、WordPressのwp-config.phpファイルを開き、以下の行を見つけます。

define( 'WP_DEBUG', false );

この「false」を「true」に変更してから、サイトを再読み込みします。このコードが存在しない場合は、ファイルの先頭に貼り付けてください。

すると、エラーの原因となるファイルを示すエラーメッセージが表示されます。

Cannot redeclare get_posts() (previously declared in 
/var/www/html/wordpress/wp-includes/post.php:1874) in 
/var/www/html/wordpress/wp-content/plugins/my-test-plugin/my-test-plugin.php on line 38

この例では、メッセージの後半で確認できるように、my-test-pluginというプラグインの38行目に問題があることがわかります。このプラグインを無効にするとエラーが解決するようです。

デバッグモードを有効にしてもエラーの中身がまったく表示されない場合は、ご利用のサーバーに問い合わせてみてください。サーバーでデバッグが正しく設定されていない可能性があります。

Kinstaでは、組み込みのデバッグツールを使用できます。MyKinstaにログイン後、「WordPressサイト」>(サイト名)>「ツール」に移動し、「WordPressデバッグ」の「利用する」をクリックします。

MyKinstaでWordPressデバッグモードを利用
MyKinstaでWordPressデバッグモードを利用

その後、「ログ」画面でエラーログをチェックし、エラーの詳細情報を確認できます。

なお、デバッグモードをオンにすると、ウェブサイトの情報の一部が未承認のユーザーに公開される可能性があります。エラーの確認が終わったら、必ず無効にしてください。

5. メモリ上限を増やす

ここまでの解決策を試してもエラーが解決しない場合、またはメモリ制限やメモリ不足のエラーが発生する場合には、アプリケーションのメモリ上限を増やす必要があります。

これは、多くのWordPressインストールデータのwp-config.phpファイルを使用して行うことができます。ファイルを開き、次のコードを追加します。

define('WP_MEMORY_LIMIT', '64M');

これがうまくいかない場合は、他の方法もあります。通常の環境では、.htaccessファイルを使用してメモリ制限を増やすことができます。次の行を追加するだけでOKです。

php_value memory_limit 64M

htaccessファイルにアクセスできない場合は、php.iniファイルを使用してメモリ制限を増やすことができます。

これを行うには、FTPを使ってサーバーに接続します。サイトのルートディレクトリでphp.iniファイルを探します。これが見つかったら、ファイル内のどこでもいいので、次の行を追加してください。

memory_limit = 64M

これを行なっても、メモリ不足が見られる場合には、アプリケーション内に問題がある可能性があります。ともすると、何かしらのテーマやプラグインが過度の量のリソースを使用していることが考えられます。

ここまで来ると、開発者を雇って調査してみることをお勧めします。さらにサーバー会社に頼んで、あなたのサイトのSQLログと他のリソースのデータを見せてもらうのも効果的でしょう。

6. ファイルパーミッションに問題がないか確認する

WSoDのもう1つの潜在的な原因は、権限と所有権の問題です。この問題は自力で修正することができます。ただし、実際に操作の中身を理解していないと、攻撃者が悪用できる脆弱性を生み出してしまう可能性があるため、自信がなければ、やめておきましょう。

WordPressのパーミッションに関しては、3つの簡単なルールに従う必要があります。

  • ファイルは664または644に設定する
  • フォルダは775または755に設定する
  • wp-config.phpファイルは、660、600、または644に設定する

サーバーにSSHでアクセスできる場合は、次のコマンドを使用して適切なルールを適用し、WordPressのルートディレクトリから実行できます。

sudo find . -type f -exec chmod 664 {} +
sudo find . -type d -exec chmod 775 {} +
sudo chmod 660 wp-config.php

これを行う方法がわからない場合や、不安がある場合は、ウェブホストに助けを求めるのが賢明です。

7. 自動更新の失敗がないか確認する

サーバーがタイムアウトした場合など、 WordPressで更新のアップデートが発生することがあります。多くの場合、この問題は自動的に解決します。ただし、死の真っ白画面エラーが起こることがあります。

まずは、WordPressのルートディレクトリに移動し、そこに.maintenanceファイルがあるかどうかを確認します(ファイルの名前が短縮されている場合もあり)。

そして、そのファイルを削除して、サイトを再び読み込んでみます。

アップデートが成功したもののWordPressによりこのファイルが自動的に削除できていなかったことが原因であれば、これですべてが正常に機能するはずです。

アップデートが完了していなかった場合には、自動的に再起動し、その場合にも正常に機能するはずです。

これらの方法すべてが失敗した場合は、WordPressで推奨されている手動アップデートの手順に従ってください。これにより、問題が解決するはずです。

8. 構文エラーを修正、またはバックアップデータから復元する

WordPress WSoDのもう1つの一般的な原因は、 WordPressサイトでコードを編集しているときに、誤って何かを入力したり、構文を間違えたりすることです。

間違った場所に1文字入力してしまうだけで、サイト全体がダウンする可能性があります。そのため、本番サイトでのコード編集は絶対に避けてください。

でも心配はいりません。FTPを使ってサイトに接続し、手動で加えた変更を元に戻すこともできます。問題の原因となった変更点を特定できない場合に備えて、WordPressサイトのバックアップを取っておくのがお勧めです。

Kinstaを使えば、ワンクリックでサイトを以前の状態に復元できます。これを行うには、MyKinstaにログインし、「WordPressサイト」>(サイト名)>「バックアップ」へと移動します。

MyKinstaのバックアップ機能
MyKinstaのバックアップ機能

既にWordPressでデバッグモードを有効にしているのであれば、構文解析エラーを示すメッセージが表示されるはずです。これを確認して、問題のあるコードの場所を正確に把握するのも手です。

9. PHPテキスト処理機能を向上させる

それでもまだWSoDが解決できないようであれば、もう1つの手段が試せます。まれに、この問題の原因が、ページや投稿の長さである場合があります。

バックトラックと再帰の制限を引き上げて、サイトのPHPテキスト処理機能を調整してみてください。具体的には、次のコードをwp-config.phpファイル内に貼り付けます。

/* Trick for long posts /
ini_set('pcre.recursion_limit',20000000);
ini_set('pcre.backtrack_limit',10000000);

このコードを追加し保存します。次に、サイトを再読み込みして、無事に機能するかどうかチェックしましょう。

まとめ

WordPressの死の真っ白画面エラーは、解決の手がかりとなる情報が提供されないため、途方に暮れてしまうかもしれません。考えられる原因は多数ありますが、今回の記事をブックマークしておけば、発生時に素早くサイトを復旧させることができます。

プラグインまたはテーマの問題(あるいは両方)を特定することで、多くの場合は解決できます。また必要に応じて、WordPressデバッグモードを使ってエラーに関する情報を掘り下げるのも有用です。

Daniel Pataki

KinstaのCTO。Smashing Magazine、WPMU Dev、Tuts+などのWordPressおよび開発関連プラットフォームで記事を執筆。WordPressとPHPに加えて、Node、React、GraphQL、その他のJavaScript分野の技術にも注力。宇宙一のサーバーの開発を目指し仕事をしている以外には、ボードゲームを集めたり、オフィスでテーブルサッカーをしたり、旅行に行ったり、ギタリストとしてアマチュアバンドで演奏したりしている。