【図解】WordPressの画面が真っ白(WSOD)になった時の原因と最短復旧ガイド

WordPressでサイトを運営している際、ある日突然ブラウザの画面が真っ白になり、エラーメッセージすら表示されずに何も操作できなくなってパニックになったことはありませんか?

この現象は、世界中のWordPress開発者やユーザーの間で「WSOD(White Screen of Death:死の白画面)」と呼ばれ、最も恐れられている代表的なトラブルの一つです。エラー内容が画面に出力されないため「データが全消去されたのでは…」と焦ってしまいがちですが、原因の特定方法と復旧手順さえ知っていれば、データを失うことなく最短10分程度で安全に復旧させることが可能です。

画面が真っ白になる主な原因は、直前のPHP構文ミス(Syntax Error)プラグインやテーマの競合・致命的エラー(Fatal Error)PHPメモリ上限(memory_limit)の枯渇PHPバージョンの非互換などに集約されます。

本ガイドでは、緊急事態に直面しているWeb担当者やサイト運営者が迷わず最短でサイトを復旧できるよう、原因を即座に特定するフローチャートから、デバッグモード(WP_DEBUG)の活用法FTP/ファイルマネージャーを用いた5ステップの完全復旧手順管理画面(/wp-admin/)だけが真っ白な場合の専用対処法、そして再発を防ぐための安全な運用・バックアップ体制まで徹底解説します。


WordPressの画面が真っ白(WSOD)になる主な原因一覧

WordPressの画面が真っ白になる現象は、裏側で「PHPの致命的なエラー(Fatal Error)」が発生し、プログラムの実行が途中で強制停止したことによって引き起こされます。通常のWebサイトであればエラーメッセージが画面に表示されることもありますが、WordPressではセキュリティ保護のためにデフォルトでエラー出力を非表示(画面を白くする)に設定しているため、真っ白な状態になります。

WSODが発生する主な原因と、その発生トリガーを以下の表にまとめました。

主な原因 具体的な発生状況・トリガー 影響範囲と特徴
1. functions.php・テーマの記述ミス 管理画面のテーマエディターやFTPでコードを編集、全角スペース混入、セミコロン抜け、文法エラーなど コード保存の直後に即座に発生。公開側・管理画面の両方が真っ白になることが多い。
2. プラグインの競合・不具合 新規プラグインの有効化、複数プラグインの一括更新、PHPバージョン非対応のプラグイン導入 特定プラグインの処理でFatal Errorが発生。管理画面へのアクセス可否はプラグインの種類による。
3. PHPメモリ上限(memory_limit)不足 重いプラグインの同時稼働、大量の画像処理、アクセス急増、バックアップ処理中など メモリ使用量が上限(例: 128MB)に達した瞬間に処理が強制終了し、白画面になる。
4. PHPバージョンとテーマ・プラグインの非互換 サーバーパネルでPHPをバージョンアップした(例: PHP 7.4からPHP 8.2/8.3への変更など) 古い非推奨関数(Deprecated)や廃止された構文を含む拡張機能が原因でFatal Error停止。
5. 自動更新の失敗・コアファイルの破損 WordPress本体やテーマの自動更新中に通信切断・サーバータイムアウトが発生 更新処理が中途半端に終了し、必須コアファイルが読み込めなくなって動作不能に陥る。

自分が「直前に何をしたか」(プラグインを追加した、テーマのコードを編集した、サーバーのPHPを変更したなど)を振り返ることで、原因の8割以上は瞬時に推測できます。しかし、心当たりがない場合や原因が分からない場合でも、次の復旧手順に従えば確実に原因を特定できます。


【最短復旧】真っ白になった画面を直す5つのステップ

WordPressの画面が真っ白になって管理画面にログインできない場合でも、サーバーのFTPクライアント(FileZilla等)レンタルサーバーのファイルマネージャー機能を利用すれば、安全に復旧作業を行うことができます。

以下の5つのステップを順番に実施してください。途中でエラーが解消した場合は、その時点で復旧完了となります。

ステップ1:デバッグモード(WP_DEBUG)を有効にしてエラーログを確認

真っ白な画面を直す上で最優先に行うべきは、「何が原因でPHPがクラッシュしているのか」をエラーメッセージとして可視化することです。WordPressには標準でデバッグ機能が搭載されており、設定ファイルであるwp-config.phpを数行書き換えるだけでエラーの詳細が判明します。

  1. FTPソフトまたはサーバーのファイルマネージャーで、WordPressのルートディレクトリ(public_htmlなど)にアクセスします。
  2. ルート直下にあるwp-config.phpをローカルにダウンロードしてバックアップを取ります。
  3. テキストエディタでwp-config.phpを開き、define('WP_DEBUG', false);と書かれている行を探します。
  4. 以下のようにコードを書き換えて保存し、サーバーへ上書きアップロードします。
// デバッグモードを有効化(エラーを画面に表示し、ログファイルにも保存する設定)
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', true);
@ini_set('display_errors', 1);

/* 編集が必要なのはここまでです ! WordPress でのコーディングをお楽しみください。 */

アップロード後に再度サイトや管理画面をリロード(再読み込み)すると、真っ白だった画面にエラーメッセージ(Fatal errorやParse error)が表示されるか、wp-content/debug.logというファイルにエラーが記録されます。

エラー文の末尾にあるファイルパス(例: /wp-content/plugins/sample-plugin/sample.php on line 42)を確認することで、「どのプラグインの何行目」「どのテーマのファイル」が原因なのかが一撃で判明します。

ステップ2:直前に編集した functions.php やテーマファイルの復元・修正

「管理画面のテーマエディターでfunctions.phpを編集して保存ボタンを押した瞬間に画面が真っ白になった」というケースは、WSODの典型例です。PHPは文法エラー(Parse Error / Syntax Error)に対して非常に厳格なため、わずか1文字のミスでもページ全体の描画を停止します。

よくあるミスの例と修正ポイントは以下の通りです。

  • 全角スペースの混入: コードのインデントや空行に全角スペースが含まれていると構文エラーになります。
  • セミコロン(;)やカッコの閉じ忘れ: add_action(...)の末尾や波括弧}の対応漏れを確認します。
  • 末尾のPHP閉じタグ(?>): functions.phpの末尾に?>を記述していると、その後に改行や不要な空白が入りエラーの原因になります。WordPressのPHPファイルでは末尾の?>は記述しないのが公式のベストプラクティスです。

【復元手順】
FTPで/wp-content/themes/【利用中のテーマ名】/functions.phpを開き、直前に追加したコードを削除するか、編集前のバックアップファイルに戻してアップロードします。これだけで即座に画面が表示されるようになります。

ステップ3:全プラグインの一括無効化(FTPまたはファイルマネージャー経由)

「テーマファイルは編集していないのに突然真っ白になった」「プラグインをアップデートしたら動かなくなった」という場合は、プラグインの不具合・競合が最も疑われます。

管理画面にログインできない状態でも、FTP経由でフォルダ名を変更することで、全プラグインを一括で安全に強制停止できます。

  1. FTPソフトで/wp-content/ディレクトリに移動します。
  2. pluginsというフォルダ名を、一時的にplugins_backup(またはplugins_old)に変更します。
  3. ブラウザでサイトや管理画面(/wp-admin/)にアクセスします。WordPressはフォルダが見つからないプラグインを自動的に全件無効化するため、画面が表示されるようになります。
  4. フォルダ名を元のpluginsに戻します。この時点ではプラグインは「停止状態」のまま保持されます。
  5. 管理画面の「プラグイン一覧」から、プラグインを1つずつ順番に「有効化」していき、どのプラグインを有効にした瞬間に画面が真っ白になるかを特定します。

原因のプラグインが特定できたら、そのプラグインの代替を探すか、プラグイン作者へ不具合報告を行う、または前バージョンのプラグインへロールバック(切り戻し)を行います。

ステップ4:デフォルトテーマ(Twenty Twenty-Four等)への一時切り替え

プラグインを全て停止しても真っ白な画面が改善しない場合は、現在有効化されているテーマ自体(または親テーマ・子テーマ)にエラーが存在しています。

FTPを使ってテーマをWordPress公式のデフォルトテーマ(Twenty Twenty-FourやTwenty Twenty-Threeなど)に一時的に強制切り替えします。

  1. FTPで/wp-content/themes/にアクセスします。
  2. 現在使用しているテーマのフォルダ名(例: my-custom-theme)を、my-custom-theme_disabledなどにリネームします。
  3. WordPressは現在のテーマが見つからない場合、同ディレクトリ内にあるデフォルトテーマ(Twenty Twenty-Four等)へ自動的にフォールバック(切り替え)します。
  4. サイトを再読み込みし、画面が表示されればテーマ内のプログラム(テンプレートファイルやstyle.cssの読み込みエラー等)が原因と確定できます。

ステップ5:PHPメモリ上限(memory_limit)の引き上げ

「特定の大規模プラグイン(WooCommerceやElementor、バックアッププラグイン等)を有効化すると真っ白になる」「特定の固定ページや管理画面の重いページだけ真っ白になる」という場合、PHPのメモリ上限(memory_limit)の枯渇が原因です。

WordPressの初期設定ではメモリ上限が40MB〜64MB程度に制限されていることがあり、プラグインが増えると簡単に上限を突破してしまいます。以下のいずれかの方法でメモリ上限を256MBまたは512MBに引き上げてください。

方法A:wp-config.phpに追記する(最も確実)

// 一般ページのPHPメモリ上限を256MBに設定
define('WP_MEMORY_LIMIT', '256M');

// 管理画面のPHPメモリ上限を512MBに設定
define('WP_MAX_MEMORY_LIMIT', '512M');

方法B:.htaccessに追記する(Apache環境の場合)

php_value memory_limit 256M

方法C:レンタルサーバーのコントロールパネルで変更する
エックスサーバー、ConoHa WING、さくらのレンタルサーバなどの管理パネルにある「php.ini設定」を開き、memory_limit = 256M(または512M)に変更して保存します。


管理画面(/wp-admin/)だけが真っ白な場合の専用対処法

WSODには、「公開サイトは正常に表示されているのに、管理画面(/wp-admin/)やログイン画面(wp-login.php)だけが真っ白になる」という特殊なパターンが存在します。この場合に特化した原因と最短解決策を解説します。

1. ブラウザのCookie・キャッシュの破損とセッション不整合

WordPressの認証Cookieが中途半端に残っていると、管理画面へのリダイレクトループが発生して画面が真っ白になることがあります。

  • ブラウザの「シークレットウィンドウ(プライベートブラウズモード)」を開き、管理画面にアクセスできるか試します。
  • シークレットウィンドウで入れる場合は、通常ブラウザのCookieと閲覧履歴(キャッシュ)を削除することで解決します。

2. セキュリティプラグインや2段階認証プラグインの誤作動

Wordfence、SiteGuard WP Plugin、iThemes Securityなどのセキュリティプラグインが、管理者のアクセスをボットや不正ログインと誤検知してブロックしているケースです。

FTPで/wp-content/plugins/にアクセスし、該当のセキュリティプラグインフォルダ名(例: siteguard)を一時的にsiteguard_tempにリネームして無効化し、ログインできるか確認してください。

3. 管理画面用PHPメモリの不足(WP_MAX_MEMORY_LIMIT)

WordPressは公開側と管理画面で別々のメモリ制限値を設定できます。管理画面はダッシュボードウィジェットやプラグインの管理ロジックが一度に読み込まれるため、より多くのメモリを消費します。ステップ5で紹介したdefine('WP_MAX_MEMORY_LIMIT', '512M');wp-config.phpに定義することで解消します。


再発防止のためのバックアップ体制と安全な更新手順

WSODを無事に復旧できたら、二度と同じトラブルでサイト停止を引き起こさないための予防・再発防止策を整えておきましょう。

1. 編集作業や更新前の「自動・手動バックアップ」の徹底

プラグインやテーマの更新、ファイル編集を行う前には、必ずファイル一式(wp-content)とデータベースのバックアップを取得する習慣をつけてください。プラグインによる日次自動バックアップや、サーバー側の自動バックアップ機能(エックスサーバーやConoHaの過去14日間バックアップ等)を有効化しておくのが鉄則です。

2. ステージング環境(テスト環境)での事前検証

本番環境で直接プラグインを大量更新したりPHPバージョンを切り替えるのはリスクが伴います。主要レンタルサーバーが提供している「ステージング環境作成機能」や、ローカル開発環境(Local by Flywheel等)を利用して、事前に画面が真っ白にならないかテストしてから本番へ適用しましょう。

3. 復旧後のWP_DEBUG無効化(セキュリティ対策)

画面の復旧が完了したら、ステップ1で有効化したデバッグモードを必ず無効(false)に戻してください。デバッグモードを有効にしたまま放置すると、サイトの内部パスやデータベース構造が第三者に漏洩し、サイバー攻撃の手がかりを与える原因となります。

// 復旧後は必ずfalseに戻す
define('WP_DEBUG', false);
define('WP_DEBUG_LOG', false);
define('WP_DEBUG_DISPLAY', false);

4. 定期的なサイトヘルス診断とセキュリティチェック

WordPress管理画面の「ツール」→「サイトヘルス」でPHPバージョンや推奨モジュールの導入状況を定期的に確認しましょう。また、プラグインやテーマに潜む未知の脆弱性や設定ミスを早期発見するために、無料のWordPress診断ツールの活用をおすすめします。


🔍 WordPressサイトの安全性・不具合リスクを今すぐ無料診断

「自社サイトのプラグインやテーマに脆弱性が潜んでいないか心配」「突然のエラーや画面真っ白を防ぎたい」という方は、URLを入力するだけでWordPressのセキュリティ状態を瞬時にチェックできる無料診断ツール「MozCheckをぜひご活用ください。

会員登録不要・完全無料で、最新の脆弱性データベース(CVE)と照合したセキュリティ診断結果と改善ポイントを即座に確認できます。


まとめ:冷静な切り分けと5ステップでWSODは必ず直せる

WordPressの画面が突然真っ白(WSOD)になると驚いてしまいますが、「PHPのエラーが画面非表示になっているだけ」であり、サイトのデータ自体が消失したわけではありません。

  1. WP_DEBUGを有効化してエラーログ(debug.log)を確認する
  2. 直前に編集したfunctions.phpやテーマファイルを修正・復元する
  3. FTPでpluginsフォルダをリネームして全プラグインを一括停止する
  4. デフォルトテーマに一時切り替えてテーマ起因かを特定する
  5. PHPメモリ上限(memory_limit)を256M/512Mに引き上げる

焦らずに1ステップずつ原因を切り分け、安全に最短でサイトを復旧させましょう。


関連記事・あわせて読みたいトラブル対策ガイド

投稿者

🧰 WordPress無料診断

サイト改善の第一歩をお届け

当サイト「MozCheck」は、WordPressサイトの不安をチェックできる無料診断サービスです。
URLを入力するだけ。登録不要、すぐに診断結果が表示されます。

コメント

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です