WordPressが真っ白!White Screen of Death(WSOD)の原因と対処方法

WordPressで突然サイトが「真っ白」になり、何も表示されなくなる現象。
通称「White Screen of Death(WSOD)=真っ白画面の死」です。

原因はさまざまですが、主に以下のようなものがあります。

  • プラグインやテーマの競合
  • PHPの構文エラー
  • メモリ不足(memory_limit)
  • functions.php の編集ミス

1 まずはエラーメッセージを表示する

真っ白画面では通常、エラー内容が非表示になっています。
原因を突き止めるために、まずデバッグモードをONにします。

ファイル名:wp-config.php
保存先:public_html/wp-config.php


/* wp-config.php の編集 */
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', true );

上記を wp-config.php の「/* That's all, stop editing! */」の上に追加します。
その後、再度サイトを開くと、エラー原因(ファイル名や行数)が表示されます。

1.1 ディレクトリ構造

  • public_html/
    • wp-admin/
    • wp-content/
    • wp-includes/
    • functions.php
    • wp-config.php
    • wp-login.php
    • wp-mail.php

2 プラグインを一括停止して確認する

管理画面に入れない場合は、FTPまたはファイルマネージャーから
プラグインフォルダ名を変更して一括停止します。

フォルダ名:plugins/
保存先:public_html/wp-content/plugins/


/wp-content/plugins → /wp-content/plugins_off

その後、ブラウザを更新して表示が戻れば、原因はプラグインです。

プラグインフォルダを元に戻し、1つずつ有効化して問題を特定します。

1.1 ディレクトリ構造

  • public_html
    • wp-admin/
    • wp-content/
      • plugins/
      • themes/
    • wp-includes/
    • functions.php
    • wp-config.php
    • wp-login.php
    • wp-mail.php

3 テーマをデフォルトに戻す

テーマの functions.php や独自コードが原因の可能性もあります。
こちらもFTPで、テーマを一時的に別名に変更します。

フォルダ名:lightning/
保存先:public_html/wp-content/themes/lightning/


/wp-content/themes/lightning → /wp-content/themes/lightning_old

この状態で WordPress は自動的に Twenty Twenty-Five などの
デフォルトテーマに切り替わります。

3.1 テーマ構造例

  • public_html
    • wp-admin/
    • wp-content/
      • themes/
        • lightning/
    • wp-includes/
    • functions.php
    • wp-config.php
    • wp-login.php
    • wp-mail.php

4 メモリ不足を解消する

PHPメモリ不足の場合、以下のように wp-config.php に追記します。

ファイル名:wp-config.php
保存先:public_html/wp-config.php


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

また、レンタルサーバーの「PHP設定」からメモリ上限を上げられる場合もあります。

4.1 ファイル構造

  • public_html/
    • wp-admin/
    • wp-content/
    • wp-includes/
    • functions.php
    • wp-config.php
    • wp-login.php
    • wp-mail.php

5 Lightningテーマの場合の対処

Lightningでは、独自ウィジェットやブロックが多く、
無効化されたブロックで真っ白になることがあります。
CSSやJSの競合を防ぐため、不要な読み込みを停止することも有効です。

5.1 functions.php に追加


//-------------------------------------------
// 不要な読み込みを停止
//-------------------------------------------
function lightning_cleanup_scripts() {
    wp_dequeue_style( 'lightning-common' );
    wp_dequeue_script( 'lightning-js' );
}
add_action( 'wp_enqueue_scripts', 'lightning_cleanup_scripts', 999 );

5.2 安全確認用CSS(Lightning)


/* Lightningテーマでの一時確認用ボーダー */
body {
  outline: 5px solid #4CAF50 !important;
}

6 Cocoonテーマの場合の対処

Cocoonでは、子テーマの functions.php でエラーを起こすケースが多いです。
安全にカスタマイズするため、以下のようにエラー抑制コードを加えます。

6.1 functions.php に追加(Cocoon)


//-------------------------------------------
// 安全な自作コード呼び出し
//-------------------------------------------
function safe_custom_code() {
    try {
        // ここに自作コード
    } catch (Throwable $e) {
        error_log('Cocoon Error: ' . $e->getMessage());
    }
}
add_action( 'wp_head', 'safe_custom_code' );

6.2 安全確認用CSS(Cocoon)


/* Cocoonテーマでの一時確認用ボーダー */
body {
  border: 5px dashed #ff4081 !important;
}

7 JavaScriptで簡易診断(ブラウザ上)

ブラウザで画面が真っ白な場合、JavaScriptのコンソールエラーを確認します。
Chromeを右クリックして「検証」→右側の画面の上の「Console」タブで赤いエラーをチェックします。

また、緊急時は次のようなスクリプトをテーマに一時挿入して、動作を確認可能です。

</body> タグの直前に以下を追加:

(Lightningテーマ)ファイル名:header.php
保存先:wp-content/themes/child-theme/g2/header.php

(汎用テーマ、Cocoonテーマ)ファイル名:header.php
保存先:wp-content/themes/child-theme/header.php


window.addEventListener('load', function() {
  console.log('JSロード確認: ページは正常にロードされました。');
  document.body.style.border = '5px solid #4CAF50';
});

1.1 ディレクトリ構造

  • child-theme/
    • g2/
      • header.php←Lightningテーマ
    • archive.php
    • category.php
    • functions.php
    • footer.php
    • header.php←汎用テーマ、Cocoonテーマ
    • style.css
    • js/
      • loading.js

7.2 設置例(footer.php 内)

(Lightningテーマ)ファイル名:header.php
保存先:wp-content/themes/child-theme/g2/footer.php

(汎用テーマ、Cocoonテーマ)ファイル名:header.php
保存先:wp-content/themes/child-theme/footer.php


//-------------------------------------------
// JSロード確認
//-------------------------------------------
<script>
window.addEventListener('load', function() {
  console.log('JSロード確認: ページは正常にロードされました。');
  document.body.style.border = '5px solid #4CAF50';
});
</script>
</body>
</html>

1.1 ディレクトリ構造

  • child-theme/
    • g2/
      • header.php
      • footer.php←Lightningテーマ
    • archive.php
    • category.php
    • functions.php
    • footer.php←汎用テーマ、Cocoonテーマ
    • header.php
    • style.css
    • js/
      • loading.js

8 それでも直らない場合

以下を確認してください。

  • error_log ファイルをチェック
  • サーバーのPHPバージョンを最新(推奨 8.1〜8.2)に更新
  • テーマ・プラグインを最新に更新

それでも解決しない場合は、レンタルサーバーのサポートに
「エラーログの内容」を添えて問い合わせましょう。

9 まとめ

WordPressが真っ白になっても慌てず、原因を一つずつ切り分けることが大切です。

  1. デバッグモードON
  2. プラグイン停止
  3. テーマ切り替え
  4. メモリ増加
  5. エラーログ確認

この手順でほとんどの「真っ白画面」は解決できます。