WordPressの500エラー(500 Internal Server Error)は、画面の見た目から原因の場所を3つに絞れます。
同じ500でも、見た目が違えば調べる場所が違います。
| 画面の見た目 | 原因の場所 | 最初に見るところ |
|---|---|---|
| サーバー会社の青い「500 Internal Server Error」のページ | サーバーの設定(.htaccessなど) | 直前に書き換えた.htaccess |
| 真っ白で何も出ない | PHPの構文エラー、ファイルの権限 | 直前に編集したPHPファイルと、サーバーのエラーログ |
| 「このサイトで重大なエラーが発生しました」 | プラグイン・テーマ | 管理者宛てのメールと、リカバリーモード |
3つとも、ブラウザーに返ってきた状態コードは500でした。
当方の検証用WordPress(WordPress 7.1.4、PHP 8.3、2026年10月30日)で、3通りの壊し方を試して確かめています。
この記事は、自分でWordPressを運営していて、急に500エラーが出た方に向けて書きました。
見た目ごとの原因、触る前の準備、直し方、直ったように見えて直っていない例の順に説明します。
WordPressの500エラーは見た目で3種類に分かれる
500は「サーバーの中で処理が失敗した」ことを表す状態コードです。
失敗した場所がサーバーの設定か、PHPか、WordPressの中かで、画面の出方が変わります。
サーバー会社の青い500ページ:.htaccessの誤り
検証用のWordPressで、.htaccessに存在しない命令を1行書き足すと、サイト全体がこの画面になりました。

画面の下には、ときどき起きる場合(断続的)といつも起きる場合に分けて、原因の候補が並んでいます。
いつも起きる場合の候補は、パーミッションの誤り、プログラムの誤り、.htaccessの記述の誤りの3つでした。
このページを出しているのは、WordPressではなくサーバーです。
WordPressが動く前に止まっているので、プラグインを止めても直りません。
真っ白:PHPの構文エラー
wp-config.phpに、PHPとして成り立たない1行を書き足すと、画面は真っ白になりました。
$lab_broken = ; // 値が無いので構文エラーになる本文は0バイトで、状態コードは500でした。
管理画面を開いても、同じく真っ白です。

真っ白になるのは、サーバーのPHPの設定でエラーを画面に出さない(display_errorsがOff)ときです。
真っ白のときの調べ方は、別の記事にまとめました。
→ 関連:WordPressが表示されない・真っ白になるときの直し方
「重大なエラー」:プラグインかテーマの致命的エラー
存在しない関数を呼ぶプラグインを有効にすると、表側に「このサイトで重大なエラーが発生しました」と出ました。

管理画面では文言が違い、「この Web サイトに重大なエラーが発生しました」に続いて、管理者のメールを確かめるよう案内されます。
こちらは、WordPressがエラーを受け止めて出している画面です。
原因のプラグイン名は、管理者宛てに届いたメールに書かれていました。
「データベース接続確立エラー」も500で返る
データベースの接続先を誤った状態にすると、「データベース接続確立エラー」とだけ出ました。

この画面も、状態コードは500です。
WordPressの公式ドキュメントは、この表示の多くはwp-config.phpの誤りが原因だとしています。
出典:Common WordPress Errors(WordPress Developer Resources、2026年10月30日確認)
当方の検証用WordPressはデータベースにSQLiteを使っているため、この画面はMySQLの誤った接続情報に向け直して再現しました。
500エラーを直す前にやる3つのこと
慌ててファイルを消したり、プラグインをまとめて入れ直したりすると、元に戻せなくなります。
直す前に、次の3つを済ませておきます。
- 直前に変えたことを書き出す
- これから触るファイルの複製を取る
- エラーログの場所を確かめる
直前に変えたことを書き出す
当方の3つの再現は、どれも1か所を書き換えた直後に起きました。
プラグインの更新、ファイルの編集、PHPのバージョンの切り替えなど、直前の操作を時刻と一緒に並べます。
並べてみると、最初に触る場所を1つに絞れます。
これから触るファイルの複製を取る
検証では、.htaccessとwp-config.phpを書き換える前に複製を取っておきました。
元のファイルに戻すと、どちらもすぐに表示が戻りました。
# 書き換える前に、日付つきの名前で複製しておく
cp .htaccess .htaccess.bak-20261030
cp wp-config.php wp-config-bak-20261030.php
# 戻すときは、複製を元の名前で上書きする
cp wp-config-bak-20261030.php wp-config.phpwp-config.phpの複製は、名前の最後を.phpのままにします。
最後が.phpでないと、サーバーによってはURLから中身を読まれるおそれがあるためです。
SSHが使えない場合は、サーバー会社のファイルマネージャーやFTPソフトで、ファイルを手元にダウンロードしておきます。
エラーログの場所を確かめる
画面に原因が出ないときに手がかりになるのが、サーバーのエラーログです。
エックスサーバーの公式マニュアルでは、500のときはサーバーパネルの「エラーログ」からログをダウンロードして、エラーの内容を確かめるよう案内しています。
出典:各種エラーメッセージ(エックスサーバー マニュアル、2026年10月30日確認)
WordPressのデバッグログを使う方法は、WordPressのエラーログの場所と出力方法にまとめています。
サーバーの青い500ページが出たとき(.htaccess)
青いページが出たら、まず.htaccessを疑います。
.htaccessの名前を変えて切り分ける
直前に.htaccessを触ったなら、複製から戻すのが早道です。
複製が無い場合は、.htaccessの名前を変えて、読み込まれないようにします。
mv .htaccess .htaccess-off名前を変えて表示が戻れば、原因は.htaccessの中です。
WordPressの公式ドキュメントも、500エラーではまず.htaccessの名前を変えて確かめる手順を挙げています。
出典:Common WordPress Errors(WordPress Developer Resources、2026年10月30日確認)
WordPressの書き込み部分を作り直す
名前を変えたあと、管理画面の「設定」→「パーマリンク」で「変更を保存」を押すと、WordPressが.htaccessを書き出し直します。
ただし、自分やプラグインが足したリダイレクトやアクセス制限の行は戻りません。
.htaccess-offから必要な行を1つずつ戻し、どの行で500になるかを確かめます。
リダイレクトの書き方は、.htaccessを使ったリダイレクト方法で説明しています。
手で書き直すときに抜けやすい1行
検証用のWordPressでは.htaccessを手で書いたため、次の1行が入っていませんでした。
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]この行が無いと、正しいアプリケーションパスワードを使っても、REST APIは401(ログインしていない)を返しました。
1行足すと200に変わり、外部のツールから接続できるようになりました。
WordPress本体が書き出す.htaccessには、この行が入っています。
出典:Apache HTTPD / .htaccess(WordPress Developer Resources、2026年10月30日確認)
真っ白や「重大なエラー」が出たとき(PHP)
真っ白と「重大なエラー」は、どちらもPHPの処理が途中で止まった状態です。
wp-config.phpやテーマのファイルの構文エラー
真っ白になったら、直前に編集したPHPファイルを複製から戻します。
検証では、wp-config.phpを元に戻した直後に表示が戻りました。
テーマのfunctions.phpなど、ほかのPHPファイルを編集した場合も考え方は同じです。
プラグインやテーマの致命的エラーはリカバリーモードで止める
「重大なエラー」が出たとき、管理者宛てに「サイトで技術的な問題が発生しています」という件名のメールが届きました。
本文には、原因のプラグイン名、ファイル、行番号と、リカバリーモードに入るリンクが書かれていました。
リンクからログインすると、原因のプラグインは自分のログイン中だけ一時停止され、管理画面に入れる状態になります。

リカバリーモードの流れと、メールが届かないときの対処は、WordPressの「重大なエラー」を直す手順をご覧ください。
メモリ不足の500
処理の途中でPHPのメモリを使い切った場合も、500や重大なエラーになることがあります。
この症状は、当方の検証では再現していません。
WordPressの公式ドキュメントは、「Allowed memory size of … bytes exhausted」と出たときに、wp-config.phpのWP_MEMORY_LIMITで上限を上げる方法を案内しています。
define( 'WP_MEMORY_LIMIT', '96M' ); // 公式ドキュメントに載っている例出典:Editing wp-config.php(WordPress Developer Resources、2026年10月30日確認)
PHPファイルの権限の誤りも500になる
検証で、index.phpのパーミッションを000にすると、403ではなく真っ白の500になりました。
権限の誤りは403になると思われがちですが、PHPファイルでは500になることがあります。
エックスサーバーの公式マニュアルも、500の原因の1つにパーミッションの誤りを挙げています。
推奨されている値は、ファイルが644、フォルダーが755か705です。
出典:パーミッション(エックスサーバー マニュアル、2026年10月30日確認)
直ったように見えて直っていない2つの例
検証では、壊れているのに普段どおりに見える場面と、直したつもりで情報が漏れる場面がありました。
トップページだけキャッシュで普段どおりに見えた
プラグインの致命的エラーを起こしている間も、トップページだけは普段どおりの表示でした。
サーバーのキャッシュが、壊れる前のトップページを返していたためです。
同じ時間に記事のURLを開くと、500の「重大なエラー」でした。
トップページだけを見て「壊れていない」「直った」と判断すると、見落とします。
エックスサーバーのサーバーキャッシュは、ログイン中のCookieがあるアクセスや管理画面をキャッシュしないと案内されています。
出典:サーバーキャッシュ設定(エックスサーバー マニュアル、2026年10月30日確認)
そのため、ログインしている自分と、ログインしていない訪問者とで見え方が変わることがあります。
確かめるときは、ログアウトした状態で、記事や固定ページなど複数のURLを開きます。
エラー画面にサーバーのフォルダーの場所が出ていた
サーバーのPHPの設定でdisplay_errorsがOnだと、「重大なエラー」の画面の上にエラーの全文が出ました。

全文には、サーバー上のフォルダーの場所や、処理の経路(スタックトレース)が含まれます。
訪問者にもそのまま見えるため、サーバーの構成を知られてしまいます。
Offにすると、標準の1行だけの画面に戻りました。
エックスサーバーの公式マニュアルでは、php.iniのdisplay_errorsの初期値はONで、運用中はOffに変えるよう勧めています。
出典:php.ini設定で設定可能な項目について(エックスサーバー マニュアル、2026年10月30日確認)
PHPの公式マニュアルも、display_errorsは開発用で、本番のシステムでは使わないよう注意しています。
出典:実行時設定(PHP マニュアル、2026年10月30日確認)
自分で直せないときに伝える情報
サーバー会社や制作会社に相談するなら、次の情報をそろえておきましょう。
- 500が出たURLと、出始めた日時
- 画面の見た目(青いページ・真っ白・重大なエラー)
- 直前に変えたこと
- エラーログの該当する行(パスワードなどは伏せる)
- トップページ以外のURLや、ログアウトした状態でも同じか
自分で直すのが難しいときの相談先として、MOTOKIのサービスもご利用ください。
まとめ
WordPressの500エラーは、画面の見た目で原因の場所を絞り込めます。
- 青い500ページは、サーバーの設定(.htaccessなど)
- 真っ白は、PHPの構文エラーや権限の誤り
- 「重大なエラー」は、プラグインかテーマ
どの場合も、触る前に複製を取っておけば元に戻せます。
直したあとは、トップページ以外のURLとログアウトした状態でも確かめてください。
403 Forbiddenが出る場合は、WordPressの403 Forbiddenの直し方で切り分け方を説明しています。



