はじめに
画面が突然真っ白になったり、無機質な文字で「500 Internal Server Error」とだけ表示される現象。
「昨日はあんなに元気に動いていたサイトがなぜ急に?」
「何か壊してしまったのではないか?」
そんな不安に駆られるのは当然です。でも、安心してください。このエラーは「解決不能」を意味するものではありません。正しい手順を踏めば、必ず原因を突き止め、元通りに直すことができます。
この記事では、WordPressで発生する「500 Internal Server Error」の正体から、プロが実践している調査方法、そしてお使いのレンタルサーバーごとの具体的な対処法まで、徹底的にわかりやすく解説します。
1.そもそも「500 Internal Server Error」とは何か?
まずは敵を知ることから始めましょう。この「500 Internal Server Error」のエラーコードが何を意味しているのかを理解すると、恐怖心が少し和らぐはずです。
1.500エラーはサーバーからの「お手上げ」サイン
私たちがWebサイトを見るとき、裏側では「ブラウザ(あなたのPCやスマホ)」と「サーバー(サイトのデータがある場所)」が会話をしています。
「このページを見せて」と頼むと、通常は「はい、どうぞ(200 OK)」と返事が来ます。ページが見つからないときは「見当たりません(404 Not Found)」と返ってきます。
では、「500 Internal Server Error」は何でしょうか?
これは、サーバーがあなたのリクエストに応えようと頑張ったものの、内部で予期せぬトラブルが発生し、処理を完了できなかったことを意味します。
「ごめんなさい、内部で何か大変なことが起きていて、ページを表示できません!」という、サーバーからの悲鳴のようなものです。
2.なぜ「原因」がわかりにくいのか?
「500 Internal Server Error」が厄介なのは、「具体的に何が悪いのかを教えてくれない」点です。
- プログラムの記述ミス
- サーバーのメモリ不足
- プラグイン同士のケンカ(競合)
- データベースの不調
これらすべてのトラブルが、表向きは全部同じ「500エラー」として表示されてしまいます。
そのため、私たち運営者は、サーバーの中に残された手がかり(ログ)を探偵のように探し出し、真犯人を特定する必要があるのです。
2.「ある日突然」エラーになる不思議:何もしていないのに?
「設定なんて何も変えていないのに、急に壊れた!」
これは最もよくある相談の一つです。しかし、デジタル世界において理由もなく何かが変わることはありません。あなたが操作していなくても、見えないところでシステムは変化し続けているのです。
1.知らない間に起きている「自動更新」
最近のWordPress(バージョン5.5以降)は、セキュリティを守るために「自動更新機能」が標準装備されています。あなたが寝ている間に、WordPress本体、テーマ、プラグインが勝手に新しいバージョンに更新されていることがあります。
- プラグインの自動更新
Aというプラグインが新しくなり、Bという古いプラグインと相性が悪くなってエラーになる。 - テーマの更新
デザインや機能が書き変わり、あなたが以前カスタマイズした内容と矛盾してエラーになる。
「朝起きたらサイトが落ちていた」というケースの多くは、この夜間の自動更新が引き金になっています。
2.サーバー会社による「強制アップデート」
レンタルサーバー側も、セキュリティのためにシステムの基盤(PHPなど)を定期的に更新しています。
- PHPのバージョンアップ
サーバー会社が「古いPHPは危険なので廃止します」と、新しいバージョン(PHP 8.xなど)に強制的に切り替えることがあります。もしお使いのテーマやプラグインが古いPHPにしか対応していなかった場合、その瞬間にエラーが発生します。 - WAF(セキュリティ機能)の強化
サーバーのセキュリティガードが強化され、今までは見逃されていたWordPressの通信が「怪しいアクセス」として誤検知され、ブロックされることもあります。
3.容量オーバーとゴミの蓄積
サーバーには使える容量(ディスク容量)に限りがあります。
- バックアップの溜め込み
自動バックアッププラグインが毎日バックアップを作り続け、気づかないうちにサーバーの容量がパンパンになっていることがあります。 - ログの肥大化
エラーの記録ファイルが巨大化しすぎて、新しいファイルを作れなくなり、システムが停止することもあります。
3.診断フェーズ:見えないエラーを「見える化」しよう
真っ白な画面を前にして、手当たり次第にプラグインを消したりするのは危険です。まずは「どこが痛いのか」を診断しましょう。
1.「デバッグモード」でエラーの正体を表示させる
WordPressには、普段は隠されているエラーメッセージを表示させる「デバッグモード」という機能があります。これをONにすることで、「どのファイルの、何行目でエラーが起きているか」を特定できます。
手順
FTPソフト(FileZillaなど)やサーバーのファイルマネージャーを使ってサーバーに接続し、wp-config.php というファイルを書き換えます。
// wp-config.php の中にある記述を探して、以下のように書き換えます
// 変更前(たぶんこうなっています)
define( 'WP_DEBUG', false );
// 変更後(こう書き換えます)
define( 'WP_DEBUG', true ); // エラー検知をオンにする
define( 'WP_DEBUG_LOG', true ); // エラーをファイルに保存する
define( 'WP_DEBUG_DISPLAY', false ); // 画面にはエラーを出さない
@ini_set( 'display_errors', 0 );
これを保存して、再度エラーが出るページにアクセスします。すると、wp-content フォルダの中に debug.log というファイルが生成されます。この中を見れば、「Fatal error(致命的なエラー)」という文字と共に、原因のプラグイン名などが書かれています。
2.サーバーの「エラーログ」を確認する
PHPのエラーではなく、サーバーの設定ミスなどの場合は、WordPressのデバッグ機能では記録されません。その場合は、レンタルサーバーの管理画面から「エラーログ」を確認します。
「Permission denied(権限がない)」や「Command line is too long(処理が長すぎる)」といったメッセージがあれば、それがヒントになります。
3.メール通知「リカバリーモード」を活用する
WordPress 5.2以降では、致命的なエラーが起きると、管理者のメールアドレスに「サイトで技術的な問題が発生しています」という件名のメールが届くようになっています。
このメールには、リカバリーモード(復旧モード)への特別なログインURLが記載されています。そこからログインすると、エラーの原因となっているプラグインだけが一時停止された状態で管理画面に入れます。この機能を使えば、安全に問題のプラグインを停止・削除できます。
4.原因別・具体的な解決手順
原因の目星がついたら、いよいよ治療です。よくある原因トップ4とその治し方を解説します。
1.「.htaccess」ファイルの破損と修復
.htaccess(エイチティーアクセス)は、サーバーの交通整理をする非常に重要なファイルです。ここにおかしな記述が一つでも入ると、サイト全体が500エラーで停止します。
直し方
- FTPソフトやサーバーのファイルマネージャーを使ってサーバーに接続し、
.htaccessファイルをパソコンにダウンロード(バックアップ)します。 - サーバー上の
.htaccessを削除します。 - サイトにアクセスしてみます。もし表示されたら、原因はこの
.htaccessファイルでした。 - WordPressの管理画面に入り、「設定」→「パーマリンク」を開きます。何も変更せずに「変更を保存」ボタンを押してください。これで、正常な
.htaccessが自動的に再作成されます。
2.メモリ不足(Memory Limit)の解消
「Allowed memory size of…」というエラーログが出ていたら、メモリ不足です。高機能なテーマやページビルダー(Elementorなど)を使っているとよく起こります。
この対処には2つの直し方があります。まずは簡単な「直し方①」から試し、ダメなら「直し方②」へ進んでください。
直し方①
FTPソフトやサーバーのファイルマネージャーで wp-config.php ファイルを開き、以下のコードを追加してください(「編集が必要なのはここまでです」という行より前に書きます)。
define( 'WP_MEMORY_LIMIT', '256M' );
define( 'WP_MAX_MEMORY_LIMIT', '512M' );
これでWordPressが使えるメモリの上限が増えます。
直し方②
直し方①で直らない場合、サーバー側の大元の制限が厳しく設定されている可能性があります。その場合、サーバーの設定ファイルである php.ini を直接編集して、強制的に上限を引き上げます。
- 編集方法A(コントロールパネルから)
エックスサーバー、ConoHa WING、さくらインターネット、ColorfulBoxなどの主要サーバーでは、サーバー管理画面(コントロールパネル)の中に「php.ini設定」や「PHP設定」というメニューが用意されています。ここからmemory_limitという項目を探し、数値を512Mなどに変更して保存します。 - 編集方法B(ファイルをアップロード)
管理画面にメニューがない場合、テキストエディタでphp.ini(または.user.ini)という名前のファイルを作成し、以下の内容を記述してサーバーのルートディレクトリ(wp-config.phpがある場所)にアップロードします。
memory_limit = 512M
※注意:サーバーによってはphp.iniの設置を禁止していたり、.user.iniという名前でないと動かない場合があります。お使いのサーバーのマニュアルで「php.ini 編集」と検索してみてください。
3.プラグインの競合(強制停止)
管理画面に入れない場合、FTPやファイルマネージャーを使って物理的にプラグインを止める荒療治を行います。
直し方
- FTPやファイルマネージャーで
/wp-content/plugins/フォルダを開きます。 pluginsというフォルダ名を、一時的にplugins_oldなどに変更します。- これで全プラグインが強制的に無効化されます。
- サイトが表示されるか確認します。表示されれば、どれかのプラグインが犯人です。
- フォルダ名を
pluginsに戻し、管理画面から一つずつ有効化して、エラーが再発する犯人を特定します。
4.パーミッション(権限)の修正
ファイルの「読み書き権限」がおかしいと、サーバーがセキュリティのためにロックをかけます。FTPソフトで属性(パーミッション)を確認しましょう。
- フォルダ(ディレクトリ):
755 - ファイル(PHPなど):
644
これ以外の数値になっている場合は、FTPソフトの「属性変更」メニューから修正してください。
5.【サーバー会社別】トラブルシューティング完全マニュアル
レンタルサーバーは各社独自の機能を持っています。お使いのサーバーに合わせた対処法を確認してください。
1.エックスサーバー (Xserver)
国内利用者が最も多いエックスサーバー。以下の設定を確認しましょう。
- エラーログの場所
「サーバーパネル」→「ログ」→「ログファイル」から、ドメインごとのエラーログをダウンロードできます。 - PHPバージョンの切り替え
「PHP」→「PHP Ver.切替」から、バージョンを一時的に変更できます。推奨より古いバージョンに戻して直る場合は、テーマやプラグインが古いことが原因です。 - 高速化機能の競合
「Xアクセラレータ」という機能が強力すぎてエラーになることがあります。一時的にオフにして様子を見てください。
2.ConoHa WING
高速ですが、セキュリティ機能(WAF)が厳しめで、誤検知によるエラーが多いのが特徴です。
- WAFの誤検知
記事の保存時やプラグイン設定時にエラーになる場合、ほぼWAFが原因です。
「サイト管理」→「サイトセキュリティ」→「WAF」→「ログ」を確認し、自分の操作がブロックされていたら「除外」ボタンを押してください。これでその操作だけが許可されます。 - ログ確認
「サイト管理」→「ログ」からエラーログを確認できます。
3.さくらインターネット
歴史あるサーバーのため、設定方法が少し特殊な場合があります。
- php.ini の設定
スタンダードプラン以上なら、コントロールパネルから php.ini を編集できます。メモリ上限を増やす場合はここに記述します。 - WAFの設定
ドメイン設定からWAFの利用有無を選べます。誤検知が多い場合は一時的に「利用しない」にして切り分けを行います。
4.ロリポップ! (Lolipop)
コスパが良いですが、WAFの仕様に少しクセがあります。
- WAFの反映時間
ユーザー専用ページの「セキュリティ」→「WAF設定」から無効化できますが、反映されるまで5〜10分かかります。設定してすぐ直らなくても、少し待ってみてください。 - ログの確認
詳細なエラーログを見るには、SSH接続が必要になることがあります。初心者には少しハードルが高いかもしれません。
5.Mixhost / ColorfulBox (cPanel採用サーバー)
これらのサーバーは「cPanel」という世界標準の管理画面を使っています。
- エラーログの確認
cPanelにログインし、「メトリック」セクションにある「エラー」アイコンをクリックすると、最新のエラーログ(300行程度)が表示されます。 - ModSecurity (WAF) の設定
cPanel内の「セキュリティ」→「ModSecurity」から、ドメインごとにWAFのオン・オフを切り替えられます。エラーが出たときはここを一時的にオフにして確認しましょう。
6.特定のプラグイン・テーマでよくあるトラブル
「このプラグインを入れている人」特有のエラーもあります。心当たりがないかチェックしてください。
1.Elementor (エレメンター)
人気のページビルダーですが、メモリを大量に消費します。
- 編集画面が開かない
PHPのメモリリミット(前述)を必ず512M以上に増やしてください。 - 保存時にエラーになる
サーバーのWAFが、Elementorの保存データを「攻撃」と勘違いしてブロックしている可能性があります。一時的にWAFをオフにするか、除外設定を行ってください。
2.SiteGuard WP Plugin
日本のセキュリティプラグインの定番ですが、設定によっては自分自身を締め出してしまいます。
- ログインできない・500エラー
.htaccess を強力に書き換えるため、このプラグインを停止または削除した際に、.htaccess にゴミが残ってエラーになることがあります。前述の「.htaccessの再生成」を行ってください。
3.WooCommerce (ウーコマース)
ネットショップを作るプラグインです。
- 購入ボタンを押すとエラー
注文メールの送信処理でタイムアウトしていることが多いです。メール送信(SMTP)関連の設定を見直してください。
4.SWELL / Snow Monkey などの高機能テーマ
- 機能の重複
テーマ自体に「高速化機能」や「キャッシュ機能」がついているのに、さらに「WP Rocket」などの高速化プラグインを入れると、機能が衝突してエラーになります。どちらか一方に絞りましょう。
7.高度な修復:最後の手段
ここまでやっても直らない場合、より深い部分が壊れている可能性があります。
1.WordPress本体の再インストール
ウイルス感染やファイル転送ミスで、WordPressの心臓部分が欠けているかもしれません。
ダッシュボードの「更新」から「WordPressの再インストール」ボタンを押してください。これで画像や記事データは消さずに、システムファイルだけを新品に入れ替えることができます。
2.PHPバージョンのダウン
PHP 8.x系などの新しいバージョンでエラーが頻発する場合、お使いのテーマやプラグインが古すぎて、新仕様に対応できていない可能性が高いです。
応急処置として、サーバーパネルからPHPバージョンを「7.4」などに下げてみてください。これで直るなら「バージョンの不一致」が原因です。
8.もう二度とパニックにならないために
最後に、今後のための予防策をお伝えします。
1.外部への自動バックアップ
サーバー自体が壊れることもあります。バックアップはサーバーの中ではなく、Google Driveなどの「外」に保存しましょう。「UpdraftPlus」などのプラグインを使えば、全自動で外部保存が可能です。
2.ステージング(テスト)環境を使う
エックスサーバーやConoHaには、本番サイトのコピー(ステージング環境)を作る機能があります。まずはコピーサイトで更新を試し、エラーが出ないことを確認してから本番に適用しましょう。(実際には面倒でなかなかできないと思いますが。)
9.さいごに
「500 Internal Server Error」は、画面こそ怖いですが、サーバーからの正直なメッセージです。
「どこかがおかしいよ!」と教えてくれているのですから、落ち着いてログを見て、切り分け(原因特定)を行えば、必ず解決できます。
この記事が、あなたのWebサイトを救う手助けになれば幸いです。焦らず、一つひとつ手順を試してみてください。応援しています!
