WordPress の 500 Internal Server Error は、何が問題だったのかについての情報がまったく得られないため、最も厄介なエラーの一つです。どのページにも表示される可能性があり、サイトを完全にオフラインにし、数時間以上放置すると検索順位にも影響を与えることがあります。
Contents
要点: WordPress の 500 エラーで最もよく使われる 5 つの対処法は、(1) デバッグモードを有効にしてエラーログを読む、(2) .htaccess ファイルを確認して再生成する、(3) PHP のメモリ制限を引き上げる、(4) すべてのプラグインを無効化して 1 つずつ再有効化する、(5) WordPress のコアファイルを再インストールする、です。どの対処法を適用すべきかを把握するために、まずデバッグモードから始めてください。
WordPress の 500 Internal Server Error とは何か
500 ステータスコードは、サーバーが「何かがうまくいかなかった」ことを伝える一般的な方法です。ブラウザがページをリクエストすると、サーバーはそのページを構築するために PHP コードを実行します。適切なレスポンスが形成される前にその処理のどこかで失敗すると、サーバーはページそのものではなく HTTP 500 を返します。
エラーは次のように表示されることがあります。

あるいは次のように表示されることもあります。

重要な特徴は、このエラーが一般的なものであるという点です。リクエストが失敗したことは伝えますが、その理由は伝えません。これが、404(ページが見つかりません)や 403(アクセスが拒否されました)のようなより具体的なエラーよりも修正が難しい理由です。このガイドの残りの部分では、最も一般的な原因を体系的にたどる道筋を示します。
WordPress で 500 エラーが発生する原因
最も一般的な原因は次のとおりです。
- 破損または不正な形式の
.htaccessファイル - PHP のメモリ不足
- 致命的な PHP エラーを引き起こすプラグインまたはテーマの競合
- 破損した WordPress のコアファイル
- サーバーレベルの障害(PHP-FPM のクラッシュ、設定ミス、ファイル権限)
下の表を使って、ご自身の状況を最も可能性の高い原因と最も早い最初の対処法に対応させてください。
| 500 エラーはいつ発生しましたか | 範囲 | 最も可能性の高い原因 | 最初に試す対処法 |
|---|---|---|---|
| プラグインのインストールまたは更新後 | サイト全体 | プラグインの競合 | 対処法 4: すべてのプラグインを無効化する |
| wp-config.php または .htaccess の編集後 | サイト全体 | 設定ファイルの構文エラー | 対処法 2: .htaccess を再生成する |
| WordPress コアの更新後 | サイト全体 | 破損したコアファイル | 対処法 5: コアファイルを再インストールする |
| 最近の変更なし、サイト全体がダウン | サイト全体 | メモリ不足 | 対処法 3: PHP のメモリ制限を引き上げる |
| 最近の変更なし、単一ページに影響 | 1 ページのみ | パーマリンクまたは mod_rewrite の問題 | 対処法 2: .htaccess を再生成する |
| wp-admin にまったくアクセスできない | サイト全体 | 原因不明 | 対処法 1: まずデバッグモードを有効にする |
最初に試すべき簡単なチェック
ファイルに手を付ける前に、この 2 つの手早い手順を実行してください。どちらも、古いキャッシュが原因の 500 エラーを解決できる可能性があります。
ページを強制的に再読み込みする: Windows では Ctrl + F5、Mac では Cmd + Shift + R を押して、キャッシュされたバージョンをバイパスし、ページの最新のコピーを読み込みます。
ブラウザのキャッシュをクリアする: ブラウザのキャッシュをクリアすると、サーバーファイルを変更する前に、クライアント側のキャッシュの問題を除外できます。
- Google Chrome:
Ctrl + Shift + Deleteを押し、任意の期間を選択して「データを削除」をクリックします。

- Mozilla Firefox:
Ctrl + Shift + Deleteを押し、適切な期間を選択して「今すぐ消去」をクリックします。

- Apple Safari:
Command + Option + Eを押すと、キャッシュをすぐにクリアできます。 - Microsoft Edge:
Ctrl + Shift + Deleteを押し、「キャッシュされた画像とファイル」にチェックを入れて「今すぐクリア」をクリックします。
キャッシュをクリアした後にエラーが消えれば、それで完了です。まだ発生する場合は、下の番号付きの対処法に進んでください。
WP STAGING を使えば、本番サイトに適用する前に、ステージングサイトを作成して各対処法を安全にテストできます。
対処法 1: WordPress のデバッグモードを有効にする
最も安全な最初のステップは、WordPress のデバッグログを有効にして、500 レスポンスを引き起こした正確なエラーを読むことです。ログがなければ、以降のすべての対処法は当て推量になります。WP STAGING のサポートチケットで最初の原因として最も多く見られるのはプラグインの競合であり、デバッグログはそれをすぐに明らかにします。
wp-config.php ファイル(WordPress インストールのルートにあり、FTP またはホスティングのファイルマネージャーからアクセスできます)を開き、次の 3 行を追加します。
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );

WordPress のデバッグログを有効にする手順の詳しい解説については、こちらの記事をご覧ください。
デバッグログは /wp-content/debug.log に書き込まれます。ファイルを開き、先頭付近にある最初のエラーを探してください。ログが特定のプラグインを指している場合は、そのプラグインのフォルダー名を変更して無効化します。たとえば、/wp-content/plugins/woocommerce を /wp-content/plugins/woocommerce-disabled に変更します。
デバッグログが空の場合は、サーバーレベルのエラーログを確認してください。
- Apache:
/var/log/apache2/error.log - Nginx:
/var/log/nginx/error.log
これらには FTP またはホスティングのコントロールパネルからアクセスします。一部のコントロールパネルでは、ユーザーインターフェースからエラーログを確認することもできます。
対処法 2: .htaccess ファイルを再生成する
破損した .htaccess ファイルは、Apache ベースのサーバーで 500 エラーが発生する最も一般的な原因の一つです。このファイルは WordPress のルートディレクトリにあり、wp-admin、wp-includes、wp-content フォルダーと同じ場所にあります。

再生成するには次のようにします。
- FTP またはホスティングのファイルマネージャーでサイトに接続します。
- 既存の
.htaccessの名前を.htaccess_backupに変更し、フォールバックを用意します。 .htaccessという名前の新しいファイルを作成し、WordPress のデフォルトのリライトルールを貼り付けます。
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
サイトを再読み込みします。破損した .htaccess が原因だった場合、エラーはすぐに解決します。
WordPress 管理画面からの代替手段: まだダッシュボードにアクセスできる場合は、「設定」>「パーマリンク」に移動し、何も変更せずに「変更を保存」をクリックします。WordPress はその保存時に .htaccess を自動的に再生成します。
対処法 3: PHP のメモリ制限を引き上げる
PHP は各ページリクエストをメモリの上限の範囲内で処理します。プラグイン、テーマ、または複雑なクエリがその上限を超えると、サーバーは 500 エラーを返します。共有ホスティング環境での私たちのテストでは、サイトに最近の変更がなくエラーが発生した場合、PHP のメモリ不足が最も一般的なサーバー側の引き金です。
制限は 2 つの方法で引き上げられます。
オプション A: cPanel から(ホスティングが提供している場合)
- cPanel にログインします。
- 「Select PHP Version」を開きます。
- 「Switch to PHP Options」をクリックします。
memory_limitをクリックし、値を256または512(MB)に引き上げてから保存します。
オプション B: wp-config.php から

wp-config.php を開き、先頭付近に次の行を追加します。
define('WP_MEMORY_LIMIT', '256M');
ファイルを保存してサイトを再読み込みします。メモリ不足が原因だった場合、保存後にエラーは解決します。
対処法 4: すべてのプラグインを無効化する
プラグインの競合は、WordPress の 500 エラーの根本原因としてよくあるものです。対処法 1 でデバッグログにプラグインの競合が確認された場合、またはログを読めない場合は、すべてのプラグインを無効化して 1 つずつ再有効化することで原因を特定できます。
WordPress 管理画面にアクセスできる場合:
- ダッシュボードの「プラグイン」に移動します。
- 上部のチェックボックスを使ってすべてのプラグインを選択します。
- 「一括操作」ドロップダウンから「無効化」を選び、「適用」をクリックします。

- サイトを再読み込みします。エラーが消えたら、プラグインを 1 つずつ再有効化し、そのたびに再読み込みして、エラーが再び現れるまで続けます。最後に有効化したプラグインが原因です。
WordPress 管理画面にアクセスできない場合:
FTP で接続し、プラグインフォルダーの名前を変更します。
/wp-content/pluginsの名前を/wp-content/plugins-disabledに変更します。- サイトを再読み込みします。復旧した場合は、プラグインの競合が確認できたことになります。
- フォルダー名を
/wp-content/pluginsに戻します。 - 各プラグインのサブフォルダー名を変更して個別に無効化し(たとえば
/wp-content/plugins/woocommerceを/wp-content/plugins/woocommerce-disabledに変更)、変更のたびに再読み込みします。
対処法 5: WordPress のコアファイルを再インストールする
プラグインやテーマの変更なしにエラーが発生した場合、破損した WordPress のコアファイルが原因かもしれません。コンテンツ、プラグイン、テーマを上書きせずにコアを再インストールできます。
- wordpress.org から WordPress の最新版をダウンロードします。

- ダウンロードしたアーカイブを解凍します。
- FTP またはホスティングのファイルマネージャーでサーバーに接続します。
- 既存の
/wp-adminフォルダーと/wp-includesフォルダーの名前を/wp-admin-backupと/wp-includes-backupに変更します。

- 解凍したアーカイブから新しい
/wp-adminフォルダーと/wp-includesフォルダーを同じ場所にアップロードします。

- サイトを再読み込みします。破損したコアファイルが原因だった場合、アップロードの完了後にエラーは解決します。
この処理の間、wp-config.php や wp-content フォルダーは置き換えないでください。これらのファイルには、データベースの認証情報とアップロード済みのすべてのメディアが含まれています。
対処法 6: ホスティングプロバイダーに問い合わせる
上記の 5 つの対処法のいずれでもエラーが解決しない場合、問題は WordPress インストール内ではなく、サーバーレベルにある可能性が高いです。サーバーレベルの原因には次のものが含まれます。
- クラッシュした、または静かに停止した PHP-FPM プロセス
- サーバー更新中に持ち込まれた Apache または Nginx の設定ミス
- PHP による WordPress ファイルの読み取りをブロックするファイル権限の変更
- PHP のメモリ制限とは無関係なサーバーレベルのリソース制限
ホスティングプロバイダーのサポートチームに連絡し、対処法 1 で見つけたサーバーエラーログの関連する行を共有してください。ほとんどのマネージド WordPress ホスティングは、ログからサーバーレベルの 500 エラーを迅速に診断できます。
ホスティングが問題を解決できない場合、または通常の負荷で 500 エラーが頻繁に再発する場合は、サイトの要件に合ったより高性能なホスティング環境を検討する時期かもしれません。
どの対処法でも解決しない場合の対応
6 つの対処法をすべて試してもエラーが解決しない場合は、この表を使って残りの可能性を絞り込んでください。
| 症状 | 確認すべきこと |
|---|---|
| WP_DEBUG を有効にした後もデバッグログが空 | サーバーレベルのエラーログ(対処法 1 の Apache または Nginx のパス)を確認してください。PHP エラーが WordPress のログ層に届いていない可能性があります |
| すべてのプラグインを無効化してもエラーが発生する | FTP で /wp-content/themes/ にある有効なテーマのフォルダー名を変更し、デフォルトの WordPress テーマ(Twenty Twenty-Four など)に切り替えます |
| フロントエンドではなく wp-admin でのみエラーが発生 | /wp-content/mu-plugins/ 内の管理画面固有のプラグインまたはファイルが読み込まれて失敗している可能性があります。このディレクトリを確認してください |
| 500 エラーが単一の URL でのみ発生 | 投稿固有のショートコード、カスタムフィールド、またはブロックが致命的なエラーを引き起こしている可能性があります。WP_DEBUG を有効にしてその URL にアクセスし、ログのエントリを取得してください |
| ホスティングプロバイダーがサーバーエラーはないと言う | PHP-FPM プロセスの状態と、PHP ワーカープールが最近再起動されたかどうかを具体的に尋ねてください |