WordPressで503 Service Unavailableが表示されたら、最初に「更新中のメンテナンス」なのか「サーバーが一時的に処理できない」のかを分けます。どちらも503になり得ますが、確認する場所が違います。
HTTP上の503は、一時的な過負荷や予定されたメンテナンスなどでサーバーがリクエストを処理できない状態です。ほかのコードとの違いはWordPressのHTTPエラー一覧を参照してください。
WordPressの503 Service Unavailableとは
503 Service Unavailableは、サーバーが現在リクエストを処理できない一時的な状態を示します。HTTP仕様では、過負荷や予定されたメンテナンスが代表例で、必要に応じてRetry-Afterヘッダーで再試行までの目安を返せます。
WordPressコアの標準メンテナンス画面も503を返し、Retry-After: 600を送る実装です。そのため「503=サーバー障害」と決めつけず、更新中かどうかを最初に確認します。
メンテナンス中かサーバー負荷かを切り分ける
| 状況 | 優先して確認すること |
|---|---|
| WordPress・テーマ・プラグイン更新の直後 | .maintenance、更新処理の完了、管理画面 |
| アクセス急増と同時 | CPU、メモリ、同時接続、PHPプロセス |
| 特定ページだけで再現 | そのページのプラグイン・テーマ・外部API |
| サイト全体で突然発生 | ホスティング・CDN・WAFの障害情報 |
| 数分で自然復旧するが繰り返す | 負荷グラフ、Cron、バックアップ、ログ |
直前の操作と発生時刻を記録しておくと、ログと照合しやすくなります。
WordPress更新後に503が出た場合
WordPressは更新中にサイトルートへ.maintenanceファイルを作り、更新終了時に削除します。途中でブラウザーを閉じたり、ファイル操作が失敗したりすると、メンテナンス状態が残ることがあります。
更新後のメンテナンス表示全般はWordPressのメンテナンスモード解除手順でも整理しています。
.maintenanceファイルが残っていないか確認する
WordPressコアは.maintenance内の更新開始時刻を確認し、作成から10分未満なら標準のメンテナンス状態として扱います。
更新が明らかに停止し、通常の管理画面へ戻れず「Briefly unavailable for scheduled maintenance」などが残る場合は、公式トラブルシューティングでもサイトルートの.maintenance削除が案内されています。
ただし、更新処理がまだ動いている最中に削除すると、ユーザーアクセスと更新が重なる可能性があります。更新が終了・停止していることを確認してから操作します。
更新処理がまだ動いていないか確認する
大きなテーマやプラグイン更新ではファイル展開に時間がかかる場合があります。管理画面、ホスティングのプロセス、ファイル更新時刻などを確認し、単に処理中なら待ちます。
自動更新が何度も失敗する場合は、ディスク容量、ファイル権限、PHP、外部通信など更新失敗の原因も調べます。
アクセス集中・CPU・メモリ・同時接続を確認する
アクセス急増や重いPHP処理でサーバーが一時的に処理できなくなると503になることがあります。
ホスティングにリソースグラフがあれば、503の発生時刻とCPU・メモリ・プロセス数を照合します。単純なPV増加だけでなく、botアクセス、バックアップ、画像生成、検索、Cron、外部API待ちなども候補です。
リソース不足が繰り返す場合は、キャッシュやコード改善、不要処理の削減、プラン見直しを原因に応じて行います。いきなり上位プランへ変更するより、先に負荷源を特定します。
プラグイン・テーマ・PHP処理を確認する
特定の更新直後から503が出る場合は、プラグイン・テーマとPHPの処理を確認します。
特定ページだけで再現するなら、そのページで動く機能を絞ります。管理画面へ入れない場合も、削除ではなく元に戻せる方法で切り分けます。
PHP互換性が疑わしい場合はWordPressのPHPバージョン確認・更新、継続運用の見直しはWordPressの保守・運用を参照してください。
CDN・WAF・ホスティング側の障害を確認する
503はWordPressが生成しているとは限りません。CDN、WAF、ロードバランサー、ホスティング側で503が返されることもあります。
障害情報とログを確認し、レスポンスヘッダーにサービス固有の情報がある場合は記録します。複数の層を使っているサイトほど「どのサーバーが503を返したか」が重要です。
503と500・502・429の違い
| コード | 中心となる意味 |
|---|---|
| 500 | 予期しない状態でサーバーが処理できない |
| 502 | gateway/proxyが上流から有効な応答を受け取れない |
| 503 | 一時的な過負荷・メンテナンスなどで処理できない |
| 429 | 一定時間にリクエストが多すぎるなど、レート制限に達した |
500の詳しい対処は500 Internal Server Errorの原因と直し方、502は502 Bad Gatewayの原因と直し方へ分けています。
429と503はどちらも「しばらく待つ」場面がありますが、意味は同じではありません。429はリクエスト頻度の制限、503はサーバーが一時的に処理できない状態です。
繰り返す503を防ぐために確認すること
一度だけのメンテナンス503なら異常ではありません。問題は、通常運用中に繰り返す場合です。
- 発生時刻とアクセス数を記録する
- CPU・メモリ・PHPプロセスを確認する
- WordPress Cronやバックアップの実行時間を確認する
- bot・WAFログを確認する
- 外部API待ちや重いDB処理を確認する
- テーマ・プラグイン更新後の再発を確認する
- キャッシュで軽減できる処理か判断する
「503になったら毎回再起動する」だけでは原因が残ります。発生条件を記録して再発源を特定します。
よくある質問
更新中の短時間の503は、WordPressの標準メンテナンス動作として起こり得ます。更新終了後も長く残る場合に.maintenanceや更新失敗を確認します。
更新処理がまだ動いている場合は削除しません。更新が停止・終了していることを確認し、メンテナンス表示だけが残っている場合に削除を検討します。
同じではありません。429はリクエスト回数などのレート制限、503はサーバーが一時的に処理できない状態です。原因調査の入口が異なります。
まとめ
WordPressの503 Service Unavailableは、まず更新中のメンテナンスか、サーバー負荷・サービス障害かを分けます。
更新直後なら.maintenanceと更新処理、通常運用中ならCPU・メモリ・PHP・CDN・WAFを確認してください。繰り返す503は、発生時刻と負荷を記録して原因を特定することが再発防止につながります。