500 Internal Server Error とは、サーバーの内部で何らかのエラーが生じたときに表示される HTTP ステータスコードだ。「HTTP 500 エラー」と呼ばれることもある。
WordPress では、以下のいずれかが原因として考えられる。
- 一時的に大量の負荷がかかった(アクセス増や攻撃)
- .htaccess 編集ミス
- PHP エラー(カスタマイズの失敗や古いプラグインの影響)
本記事は、Web サイト運営者・管理者向けに、各原因の詳細と対策方法・直し方を解説していく。
なお、ユーザー側でできることは何もない。ページを更新(リロード)しても表示されることはないので、運営側の対応を待とう。
目次
一時的に大量の負荷がかかった場合の解決策
とくに何もしていないのに「500 Internal Server Error」が表示された場合、サーバーが一時的な過負荷状態になっている可能性がある。サーバーのメモリ上限オーバーが原因だ。
通常は「503 Service Unavailable」というエラーが表示されるが、サーバーによっては HTTP 500 エラーとなる。
解決策(1)
サーバーからのメールや障害情報をチェック
過負荷状態でサイトが一時的に表示されていない場合、サーバーから警告メールが届くことがある。
ブルートフォースアタック(Brute-force attack)などの攻撃が行われているかもしれないので、サーバー障害情報などもチェックしておこう。
障害が発生していた場合、こちらからできることは何もない。サーバーの対応・復旧を待つだけだ。
解決策(2)
IPを調べてスパムと思われるアクセスを遮断する
自分のサイトに攻撃が仕掛けられている場合、攻撃元 IP のアクセスを遮断すると解決できる可能性がある。
スパムと思しき IP は、サーバーのログから見つけられる。以下はエックスサーバーの場合だ。
サーバーパネルの「アクセス解析」にある「アクセスログ」をダウンロードしよう。

ダウンロードしたファイルをテキストエディタで開き、xmlrpc.php や wp-login.php などに何度もアクセスを試みている IP を探す。

IP をそのまま Google で検索し、Stop Forum Spam などに報告が上がっていないかチェック。該当する IP があればスパムと判断してよい。

スパムと思しき IP が見つかったら、サーバーパネルの「アクセス拒否設定」で IP を追加登録する。

解決策(3)
WordPress管理画面のセキュリティ対策をする
一つずつ IP を調べてアクセス拒否設定するのが困難な場合、WordPress のセキュリティプラグインを導入してみよう。ただし、プラグイン導入前の攻撃は参照できない。
あわてて一気に複数のプラグインを入れると、今度は別の原因でブログが表示されなくなるおそれがある。セキュリティプラグインは一つだけ入れれば大丈夫だ。
どれがよいのかわからなければ、「XO Security」をおすすめする。
【定番】WordPress初心者におすすめの目的別厳選プラグイン
解決策(4)
WordPress高速化設定で負荷を軽減する
サーバー障害がなく攻撃も行われていないようなら、一時的なアクセス増が原因かもしれない。
キャッシュプラグインで負荷を軽減させることもできるが、安易に導入するのはやめたほうがよい。プラグインによっては設定がかなり難しく、さらにサーバーに負荷をかけてしまう可能性もあるからだ。
サーバーに高速化設定がある場合は、まずそちらを試してみよう。

500 エラーが解消されたら、プラグインの見直しや CDN の導入など、今後に備えて様々な高速化設定を試してほしい。今後も大量のアクセス数がきそうであれば、プランの見直しやサーバーの変更を検討したほうがよいかもしれない。
.htaccess 編集ミスの解決策
500 Internal Server Error の原因のほとんどは、「.htaccess」というファイルの記述ミスにある。
自分で編集した記憶がなくても、プラグインやテーマがコードを追記したかもしれない。エラーが出る直前に何をしたのか思い返してほしい。
解決策(1)
プラグインの設定をリセットまたは削除する
管理画面にログインできるなら、直前に行った操作を思い出して設定を元に戻そう。プラグイン設定にリセット項目があるなら、リセットするのが確実だ。
.htaccess を操作するのは、「キャッシュプラグイン」か「セキュリティプラグイン」が多い。
プラグインを停止・削除するだけで解決することもあるが、停止しても .htaccess は書き換えられたままになっていることも少なくない。削除する前にできるだけ設定を元に戻しておこう。
よくわからなければ、いったんすべてのプラグインを停止してみるのもよい。
解決策(2)
テーマの設定をリセットまたはテーマ変更する
WordPress の一部テーマには、高速化設定としてブラウザキャッシュ機能などが備わっている。
テーマ設定変更後にエラーが出たのであれば、いったん設定を元に戻そう。再設定できない場合は、いったん別のテーマに変更してみてほしい。それでエラーが解消されるなら、十中八九テーマが原因だ。
自力で解決が難しい場合、可能であれば制作者にサポートを依頼しよう。
解決策(3)
.htaccess ファイルを元の状態に戻す
自分で .htaccess ファイルを編集した場合、またはプラグインやテーマの設定をリセットしてもエラーが直らない場合は、.htaccess を元の状態に戻そう。
エックスサーバーのように、管理画面から .htaccess の編集ができるサーバーもある。

サーバーに編集機能がない場合は、FTP でファイルをダウンロードして編集しよう。

バックアップデータがあるなら、.htaccess のみアップロードして上書きすれば元に戻る。
バックアップデータがなければ、ダウンロードしたファイルを編集して追記されていたコードを削除し、再度アップロード・上書きしよう。プラグインやテーマによって追記された箇所には、以下のようにコメントが付けられていることが多い。
# BEGIN プラグイン名 <追記されたコード> # END プラグイン名
コードが複雑でどこを削除すればよいのかわからない場合、いったん以下のコードに置き換えれば完全にリセットできる。
# 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
※ HTTPS のリダイレクト設定も消えるので、設定していた場合はやり直す必要あり
PHPエラーの解決策
PHP のエラーが原因で 500 Internal Server Error になる場合がある。エラー直前に以下のいずれかを行っていた場合、それが原因と見てよいだろう。
- WordPress 本体のアップデート
- 新規プラグイン追加
- プラグイン更新
- プラグイン設定変更
- テーマ変更
- テーマ設定変更
- テンプレートファイルのカスタマイズ
- PHP バージョンの変更
プラグイン自動更新を ON にしていると気づかないことがあるため、自動更新時に送られてくるメールもチェックしておこう。
解決策(1)
PHPバージョンを元に戻す
PHP バージョン変更後に HTTP 500 エラーが出た場合は、いったん元のバージョンに戻してみよう。「PHP 5.4」などから「PHP 7.4」など、大幅に変更したときにエラーが起きやすくなる。
サーバーによってはバージョン変更に数分かかるので、あわてずにしばらく待ったほうがよい。
これはあくまで暫定的な処置だ。古いバージョンの PHP を使い続けるのは絶対にやめてほしい。セキュリティ面で問題が出てくるから、新しいバージョンで動作するようテーマやプラグイン等を早急に見直すべきだ。
解決策(2)
プラグインを停止・削除する
更新されていない古いプラグインは、最新の PHP バージョンで動かない可能性がある。または、更新されたプラグインに不具合があったり、テーマや他のプラグインと干渉すしてエラーが起きることもある。
管理画面に入れる場合は、いったんすべてのプラグインを停止してみよう。その状態でサイトが問題なく表示されるなら、一つずつ有効化してエラーの原因となっているプラグインを突き止めていく。
管理画面に入れなくなった場合は、PHP バージョンを一時的に下げれば再び入れるようになるかもしれない。それでも入れないときは、FTP で疑わしいプラグインを削除してみよう。
FTP でプラグインを削除する手順は以下のとおり。



解決策(3)
テーマを変更する
プラグインを見直してもエラーが解消しないとき、テーマ自体に問題があるかもしれない。いったん「Twenty Twenty-Two」など別のテーマに変更してみよう。
もしテーマのカスタマイズを行った直後にエラーが出たのなら、カスタマイズした部分を元に戻してみてほしい。コードの記述ミスか、最新版の PHP で動かないコードを書いている可能性がある。
プラグインと同様、長期間更新されていないテーマは使わないほうがよいので、この機会に別のテーマへ乗り換えるのがおすすめだ。
バックアップから復元するのが最良の解決策
WordPress で 500 Internal Server Error が出る原因の詳細を見てきたが、.htaccess や PHP のエラーが原因となっているなら、バックアップデータから復元するのが最も簡単だ。
自分でバックアップをとっていたのであれば、そのデータを使って復元しよう。
サーバーによっては自動バックアップ機能があるから、自分でバックアップしていないときはそれを使ってみるのもよい。多少時間を要するが、遅くても数時間で復旧できる。

さいごに
500 Internal Server Error の解決策は以下のとおり。
- .htaccess ファイルを元の状態に戻す
- PHP バージョンを一時的に下げる
- プラグインを削除する
- バックアップデータから復元する
自分では何もしていないと思っても、「これはエラーと関係しないはず」と勝手に判断しているだけかもしれない。
自力で解決する場合でも、だれかに依頼する場合でも、頭をクリアにして直前の行動を振り返ってみよう。たいていはそこに原因がある。
ブログのデータが消滅したわけではないから、落ち着いて対処してほしい。
記事執筆:Reinx 編集部 瀬尾 真
Web 業界歴 20 年の知見をもとに、初心者でも楽しくブログ運営に取り組んでいただけるよう、WordPress や SEO のノウハウを提供しています。ブログ診断無料サービスもご利用ください。
ブログ運営でお悩みの方へ
ブログ初心者を対象に、無料でブログ診断を行っています。
「アクセス数が伸びない」「検索にインデックスされない」「Google AdSense 審査に通らない」といったお悩みがあればぜひご利用ください。問題の原因を探り、それぞれに合わせた解決策をご提案します。