WordPress 更新後に真っ白・メンテナンス表示のままになる原因と対処

結論

WordPress の更新後に画面が真っ白になる、またはメンテナンスの表示から戻らないときは、症状で原因を分けて考えます。

症状 主な原因 対処
「現在メンテナンス中のため、しばらくの間ご利用いただけません。」(英語では「Briefly unavailable for scheduled maintenance.」)のまま 更新中に作られる .maintenance ファイルが残っている サイトのルートの .maintenance を削除する
更新直後から真っ白・「重大なエラー」 新しい本体・PHP に対応していないプラグインやテーマ プラグインを止め、1つずつ戻して特定する
更新自体が途中で止まった 通信の途中切断、ファイルの書き込み権限 手動更新でファイルを入れ直す

どれも、まずバックアップがあるかを確認してから手を付けます。公式の Upgrading WordPress も、更新前のバックアップを勧めています。

原因・仕組み

メンテナンス表示のまま戻らない

WordPress は本体・プラグイン・テーマの更新中、サイトのルート(wp-config.php と同じ場所)に .maintenance というファイルを作り、訪問者にはメンテナンス中の表示を返します。更新が正常に終われば削除されますが、途中で止まると残ることがあります。公式の Common WordPress Errors は、この表示が残る場合の対処として FTP でサイトのルートにある .maintenance を削除することを挙げています。

.maintenance があるかどうかの判定は、WordPress 5.5 で追加された wp_is_maintenance_mode() が行います。この関数は、ファイルの中の $upgrading(作成時刻)を見て、作成から10分以上たっていればメンテナンスは終わったと判断する仕組みになっています。つまり、通常は放っておいても10分で表示は消えます。10分以上たっても表示が残るなら、ページキャッシュが古い表示を返している、またはファイルの中身が想定と違う、などを疑います。

更新後に真っ白になる

更新で本体の関数が変わったり、サーバーの PHP が上がったりすると、それに対応していない古いプラグイン・テーマが致命的エラーを起こします。Upgrading WordPress のトラブルシューティングも、更新後の不具合は古いプラグインが新しいコードと合わないことが原因になり得るとして、プラグインを全部止めてから1つずつ有効化する手順を勧めています。

WordPress 5.2 以降は、致命的エラーが起きると管理者にリカバリーモードのリンクがメールで届くので、届いていればそこから原因を止められます。

なお、プラグインのヘッダーに Requires PHP が書かれていれば、WordPress は要件を満たさない環境での有効化を止めます。ただしこれは事前の確認で、要件を書いていないプラグインや、書いた要件が実態と違うプラグインは止められません。

手順(サンプルコード)

1. メンテナンス表示が消えないとき

(サイトのルート)
├── wp-admin/
├── wp-content/
├── wp-includes/
├── wp-config.php
└── .maintenance   ← これを削除する(ドットで始まる隠しファイル)

FTP ソフトで隠しファイルを表示する設定にしないと見えないことがあります。削除後、キャッシュ系プラグインやサーバーのキャッシュも消してから確認します。削除したあとは、更新が最後まで終わっていない可能性があるので、管理画面の「更新」画面で本体やプラグインの版を確認し、必要なら更新をやり直します。

2. 更新後に真っ白になったとき

  1. リカバリーモードのメールを確認する
  2. 無ければ wp-content/plugins のフォルダ名を変えて全プラグインを止める(詳しくは WordPress ログイン画面・管理画面が真っ白で入れないときの対処|プラグインを外から止める方法)
  3. 戻ったら、更新したプラグインから順に1つずつ有効化して原因を特定する
  4. 原因のプラグインは、更新を待つ・旧版に戻す・代替を探す

PHP の版を上げた直後なら、自分のテーマや自作プラグインのコードが新しい PHP で動くかも確認します。開発中のコードなら、ヘッダーに実際に動く PHP の版を書いておくと、合わない環境での有効化を WordPress が止めてくれます。

<?php
/*
 * Plugin Name:  My Plugin
 * Requires at least: 6.5
 * Requires PHP: 8.1
 */

コードの中で版によって処理を分けたい場合は、is_php_version_compatible() が使えます。

if ( ! is_php_version_compatible( '8.1' ) ) {
    return; // 要件を満たさない環境では機能を読み込まない
}

動作確認(検証環境と結果)

WordPress 7.1.2(ja)/PHP 8.2.12 の CLI 検証環境で、.maintenance を作って判定を確かめ、PHP 9.0 を要件にしたテスト用プラグインの有効化を試しました(php run.php wl2_maint.php、ログは tests/update-white-screen-maintenance.md)。

just created: wp_is_maintenance_mode=true
11 min old: wp_is_maintenance_mode=false
no file: wp_is_maintenance_mode=false
PHP_VERSION=8.2.12 is_php_version_compatible('9.0')=false
activate=plugin_php_incompatible / Error: Current PHP version (8.2.12) does not meet minimum requirements for KS Needs PHP9. The plugin requires PHP 9.0.
is_active=false
  • 作ったばかりの .maintenance ではメンテナンス中と判定され、作成時刻を11分前にすると判定は false になりました(10分ルールの確認)。
  • Requires PHP: 9.0 のプラグインは plugin_php_incompatible エラーで有効化されませんでした。
  • 検証用のファイルはすべて削除しました。実際の更新処理の途中停止や、訪問者向けのメンテナンス画面の表示は、この CLI 環境では確認していません。

WordPress 更新後に真っ白・メンテナンス表示のままになるときの注意点

  • .maintenance を消すのは、更新が終わっている(または止まっている)ことを確認してからにします。更新中に消すと、途中の状態のサイトが表示されます。
  • 本体の更新が途中で止まった場合、ファイルが新旧混在していることがあります。公式の Common WordPress Errors は、失敗時は手動更新で入れ直す方法を挙げています。
  • 公式の Upgrading WordPress は、本体の版によって推奨される PHP の版が変わることを示しています。PHP を上げる前に、使っているプラグインの対応状況を確認します。
  • 本番で直接更新せず、ステージング環境で先に試すと、白い画面を訪問者に見せずに済みます。

WordPress 更新後に真っ白・メンテナンス表示のままになる原因と対処でよくあるミス

  • .maintenance を探して wp-content の中を見てしまう。置き場所はサイトのルートです。
  • 隠しファイルを表示しない設定の FTP ソフトで「ファイルが無い」と判断する。
  • 原因のプラグインを特定せずに全部を有効化し直し、再び真っ白になる。
  • 更新で問題が出たプラグインを、自動更新の対象にしたまま放置する。

WordPress 更新後に真っ白・メンテナンス表示のままになる原因と対処のチェックリスト

  • 更新前にファイルとデータベースのバックアップを取った
  • 症状(メンテナンス表示/真っ白/更新失敗)を見分けた
  • メンテナンス表示なら .maintenance を削除し、キャッシュも消した
  • 真っ白ならプラグインを止めて、1つずつ戻して特定した
  • 更新画面で本体・プラグインの版を確認し、途中の更新をやり直した
  • 自作コードの Requires PHP を実態に合わせた

WordPress 更新後に真っ白・メンテナンス表示のままになる原因と対処のFAQ(よくある質問)

Q. .maintenance を消しても表示が変わりません。
A. ページキャッシュが古い表示を返していることがあります。キャッシュ系プラグインとサーバーのキャッシュを消してください。

Q. 自動更新のあとに真っ白になりました。
A. 手順は同じです。自動更新の対象になっていたプラグインから順に疑います。

Q. 旧版に戻すにはどうしますか。
A. バックアップから戻すのが確実です。プラグインは、公式ディレクトリの過去の版を手動で入れ直す方法もあります。

筆者の見解(WordPress 更新後に真っ白・メンテナンス表示のままになる原因と対処)

更新後のトラブルは、「メンテナンス表示が残る」と「真っ白になる」で原因がまったく違うのに、同じ「更新したら壊れた」として扱われがちだと感じます。私見では、表示の文言を一度確かめるだけで、ファイル1つの削除で済むのか、プラグインの切り分けが必要なのかが分かれるので、慌てて全部を戻す前に症状を見ることを勧めます。検証で確かめた10分ルールを知っていれば、更新中の一時的な表示に焦る必要もありません。

WordPress 更新後に真っ白・メンテナンス表示のままになる原因と対処の関連項目

出典(一次情報)

タイトルとURLをコピーしました