500 Internal Server Error は、サーバーの内部で何らかのエラーが生じたときに表示される HTTP ステータスコード です。略して「HTTP 500 エラー」と呼ばれることもあります。
WordPress で 500 エラーが発生する原因は、主に以下の 2 つです。
- .htaccess のエラー(編集ミスまたはプラグインの影響)
- PHP のエラー(カスタマイズの失敗や古いプラグインの影響)
本記事では、Web サイト運営者・管理者向けに修正方法を解説しています。
なお、ユーザー側(読者側)でできることは何もありません。ページを更新しても表示されることはないので、運営側の対応を待ちましょう。
.htaccess エラーの原因と修正方法
500 Internal Server Error になったときは、真っ先に .htaccess を疑ってください。
WordPress では、管理者が直接編集していなくても、以下のケースで .htaccess に変更が加えられることがあります。
- パーマリンク設定の変更
- リダイレクト設定
- アクセス拒否設定
- セキュリティ対策
- 高速化設定
とくに何も操作していないとしたら、プラグインの自動更新が原因かもしれません。
いずれにしても .htaccess を元の状態に戻せば復旧できます。
01. 管理画面に入れる場合
管理画面にログインできるなら、直前に行った操作を思い出して設定を元に戻しましょう。
リセットボタンがあるなら、リセットするのが確実です。
.htaccess を操作する代表的なプラグインは以下のとおり(このほかにも類似プラグインは多数あります)。
- LiteSpeed Cache
- W3 Total Cache
- WP Fastest Cache
- WP Super Cache
- Wordfence Security
- All-In-One Security (AIOS)
- Really Simple SSL
- XO Security
- Redirection
- Yoast SEO
- Rank Math SEO
プラグインだけではなく、テーマカスタマイズ設定が影響している可能性もあります。
どのプラグインが原因かハッキリしないときは、いったんすべてのプラグインを停止して復旧するか試してみてください。
02. 管理画面に入れないがバックアップデータがある場合
500 エラーで管理画面に入れなくなっても、バックアップデータがあれば簡単に復旧できます。
手元にある .htaccess ファイルをアップロードして上書きしましょう。
バックアップデータがサーバー内に保存されているなら、いったんダウンロードし、必要に応じて展開(解凍)してから .htaccess のみアップロードすれば OK です。
プラグイン「All-in-One WP Migration」の場合も専用ツールで展開できるので、利用していた覚えがあるならサーバー内のデータを探してみてください。
All-in-One WP Migration のファイル(.wpress)を展開する方法 3 選
03. 管理画面に入れずバックアップデータもない場合
バックアップデータないのであれば、以下どちらかの選択肢となります。
- .htaccess をダウンロードして不具合箇所を修復する
- いったん .htaccess を削除してしまう
不具合箇所を特定・修正するのが困難なときは、いったん削除してしまうのがおすすめです。
不安な場合は削除直前にダウンロードしておき、いつでも元に戻せる状態にしておきましょう。
管理画面に入れるようになったらパーマリンク設定に入り、何も変更せず「変更を保存」をクリックします。
キャッシュ系やセキュリティ系プラグインを利用している場合は、すべてのプラグインの設定を更新しておきます。
パーマリンク設定と同じく、何も変更を加えない状態で「変更を保存」すれば元に戻ることがほとんどです。
PHP エラーの原因と修正方法
.htaccess に異常がないのに 500 エラーとなっているなら、PHP まわりにエラーがあると思われます。
PHP エラーは以下のとおり複数の原因が考えられます。
- WordPress 本体のアップデート
- 新規プラグイン追加
- プラグイン更新
- プラグイン設定変更
- テーマ変更
- テーマ設定変更
- テンプレートファイルのカスタマイズ
- PHP バージョンの変更
01. PHP バージョンを変更する
PHP バージョン変更後に 500 エラーが出た場合は、いったん元のバージョンに戻してください。
「PHP 7.0」から「PHP 8.3」など、大幅に変更したときにエラーが起きやすくなります。
サーバーによってはバージョン変更に数分かかるので、変更後はしばらく待ってくださいね。
サーバーの PHP 推奨バージョン(現在は 8.1)以下の古いバージョンを使い続けると、セキュリティ面でリスクが大きくなります。バージョンダウンは一時的な施策と考え、動作しないテーマやプラグインは早急に見直しましょう。
02. プラグインを停止・削除する
更新されていない古いプラグインは、最新の PHP バージョンで動かない可能性があります。または、更新されたプラグインに不具合があったり、テーマや他のプラグインと干渉してエラーが起きることもあります。
管理画面に入れる場合は、いったんすべてのプラグインを停止してみてください。その状態でサイトが表示されるなら、1 つずつ有効化してエラーの原因となっているプラグインを突き止めます。
管理画面に入れなくなった場合は、PHP バージョンを一時的に下げれば再び入れるようになるかもしれません。それでも入れないときは、FTP で疑わしいプラグインを削除してください。
※ plugins_test などにリネームすると、全プラグインを強制停止できます
03. テーマを変更する
プラグインを見直してもエラーが解消しないとき、テーマ自体に問題があるかもしれません。いったん「Twenty Twenty-Four」など WordPress デフォルトテーマに変更してみてください。
もしテーマのカスタマイズを行った直後にエラーが出たのなら、カスタマイズした部分に問題があります。コードの記述ミスか、最新版の PHP で動かないコードを書いている可能性があるので、元に戻しましょう。
プラグインと同様、長期間更新されていないテーマは使わないほうがよいので、この機会に別のテーマへ乗り換えるのがおすすめです。
それでも 500 エラーが直らないとき
.htaccess や PHP など、考えられるすべての原因をつぶしてもエラーが直らないときは、ハッキングによりファイルが改ざんされているかもしれません。
WordPress コアファイルが書き換えられているか、何らかの不正なプログラムが埋め込まれているとエラーが起きます。
放置しておくとサーバー内の他のサイトまで書き換えられてしまいますし、いずれにしても 500 エラーが自然に直ることはほぼないので、早急に対応しましょう。
※ まれに、サーバー側の障害で 500 エラーとなる場合があります
500 Internal Server Error 解決策まとめ
500 Internal Server Error の解決策は以下のとおりです。
- .htaccess ファイルを修正する
- PHP バージョンを一時的に下げる
- 疑わしいプラグインを削除する
- デフォルトテーマに変更してみる
- バックアップデータから復元する
複数の原因が考えられる、またはどこを修正してよいかわからないときは、バックアップデータから丸ごと復元するのがおすすめです。
自分では何もしていないと思っても、「これはエラーと関係しないはず」と勝手に判断しているだけかもしれません。
自力で解決する場合でも、だれかに依頼する場合でも、直前の行動をできるかぎり思い出してみてください。たいていはそこに原因があります。
ブログのデータが消滅したわけではないので、落ち着いて対処してくださいね。長時間止まったままだと検索順位などに影響しますから、解決が難しいときは遠慮なくご相談ください。