インターナルサーバーエラーとは?HTTP 500の原因と直し方を状況別に徹底解説
Webサイトを開いたときに「500 Internal Server Error」「Internal Server Error」と表示され、ページが見られなくなった経験はないでしょうか。インターナルサーバーエラーは、サーバー側で予期しない問題が発生し、リクエストされた処理を正常に完了できないときに返されるHTTPステータスコード500のエラーです。サイトの一時的な障害から、プログラムの不具合、設定ファイルの記述ミスまで、発生理由はさまざまです。
ただし、エラーが出たからといって、サイトが消えた、データが失われた、あるいは利用者のパソコンが故障したと判断する必要はありません。閲覧者なら再読み込みやブラウザの確認から始め、サイト管理者ならサーバーログ、PHPエラー、ファイル権限、WordPressのプラグイン設定などを順番に調べることで、原因を絞り込めます。2026年時点でも役立つ基本知識と実践的な復旧手順を、立場別に整理します。
📌 【この記事の重要ポイントまとめ】
- 要点1:HTTP 500エラーは、サーバーがリクエストを正常に処理できなかったことを示すエラーで、原因を特定するには追加の調査が必要です。
- 要点2:閲覧者は再読み込み、シークレットウィンドウ、ブラウザのキャッシュ削除を試し、解消しなければサイト運営者の対応を待ちます。
- 要点3:管理者はエラーログを最優先で確認し、.htaccess、PHP、ファイル権限、プラグイン、サーバー障害を切り分けます。
【基礎知識】インターナルサーバーエラーとは?HTTP 500エラーの意味を解説
インターナルサーバーエラー(Internal Server Error)は、Webサーバーがリクエストの処理中に予期しない状況に遭遇し、正常な応答を返せないときに発生するエラーです。HTTPの仕様では、より具体的な5xxエラーに該当しないサーバー側の問題を示す、汎用的なステータスコードとして定義されています。
MDN Web DocsのHTTPステータスコード解説でも、500はサーバーがリクエストを完了できなかったことを示すエラーとして説明されています。つまり、エラーメッセージだけでは、プログラムの不具合なのか、サーバーの負荷なのか、設定の問題なのかまでは判別できません。
HTTP 500とほかのサーバーエラーは何が違う?
サイトが表示されないときは、画面に表示されたエラーコードを確認すると、調査の方向性を決めやすくなります。代表的なエラーの違いは次のとおりです。
- 500 Internal Server Error:サーバー内部で予期しない問題が発生し、処理を完了できない。
- 502 Bad Gateway:ゲートウェイやプロキシが、上流サーバーから有効な応答を受け取れない。
- 503 Service Unavailable:メンテナンスや過負荷などで、サーバーが一時的にリクエストを処理できない。
- 504 Gateway Timeout:ゲートウェイやプロキシが、上流サーバーから時間内に応答を受け取れない。
- 404 Not Found:要求したリソースが見つからない。
これらは同じ意味ではありません。たとえば、アクセス集中による過負荷は500の一因になることもありますが、503など別のコードで通知される場合もあります。表示されたコードを確認し、原因を決めつけずに調査することが大切です。
エラーが出たら、利用者側に問題があるのか?
HTTP 500は基本的にサーバー側の処理失敗を示します。サイトのプログラムやサーバー設定に原因があるケースが多く、利用者がパソコンの設定を変更すれば必ず直るというものではありません。
一方、ブラウザのキャッシュやCookie、拡張機能、通信経路などが表示上の問題に関係する可能性はあります。利用者側の確認は、サーバーの不具合を修復するためというよりも、問題が特定のブラウザや閲覧環境に限られているかを切り分けるために行います。

【利用者向け】サイトが表示されないときの対処法5ステップ
閲覧しているだけで、サーバーの管理画面やファイルにアクセスできない場合は、サーバー設定を変更する必要はありません。まずは安全で簡単な方法から試しましょう。
ステップ1:ページを一度再読み込みする
一時的な通信障害やサーバーの瞬間的な不調であれば、少し時間を置いてから再読み込みすることで表示が回復する場合があります。パソコンでは通常の再読み込みを試し、必要に応じて別のタブから同じページを開いてください。
ただし、何度も連続して更新するのは避けましょう。サーバーに負荷がかかっている場合、繰り返しアクセスしても改善につながらないことがあります。まずは数分程度待ち、再度アクセスする方法が現実的です。
ステップ2:別のページや別のサイトを開く
トップページだけが表示されないのか、サイト全体が利用できないのかを確認します。トップページは開けるのに、ログイン画面や特定の記事だけで500エラーが発生するなら、そのページ固有のプログラムや処理に問題がある可能性があります。
ほかのWebサイトも開けない場合は、インターネット接続や利用しているネットワークに問題がないか確認しましょう。ただし、ほかのサイトが正常に開けても、対象サイトのサーバー障害を断定できるわけではありません。
ステップ3:シークレットウィンドウや別のブラウザで試す
Chromeなどのブラウザでシークレットウィンドウを開き、同じページにアクセスします。別のブラウザや端末でも確認すると、拡張機能、Cookie、ブラウザ固有の問題が関係しているかを判断しやすくなります。
別のブラウザでは正常に表示されるなら、普段使っているブラウザの設定や保存データを確認する価値があります。一方、複数の端末で同じ500エラーが発生するなら、サイト側の問題である可能性が高まります。
ステップ4:ブラウザのキャッシュを削除する
ブラウザのキャッシュは、画像やページの一部などを保存して、次回以降の表示を速くする仕組みです。キャッシュされたデータが古くなっていたり、Cookieなどの保存情報が問題に関係していたりすると、表示に不具合が起きる場合があります。
Googleの公式ヘルプでは、Chromeの閲覧データ削除について、削除する期間や対象データを選択できる手順が案内されています。一般的な確認方法は次のとおりです。
- ブラウザの設定メニューを開く。
- 「閲覧履歴データを削除」などの項目を選ぶ。
- キャッシュされた画像とファイルを削除する。
- 必要に応じて対象サイトのCookieやサイトデータも削除する。
- ブラウザを再読み込みし、表示を確認する。
Cookieを削除すると、サイトからログアウトしたり、保存済みの設定が消えたりする場合があります。最初はキャッシュだけを削除し、必要な場合に限ってCookieも削除するのがおすすめです。
なお、HTTP 500がサーバー内部で発生している場合、キャッシュ削除だけで根本原因が解消するとは限りません。削除後も同じエラーが続くなら、次のステップに進みましょう。
ステップ5:公式の障害情報を確認して待つ
サイトの運営会社やレンタルサーバー事業者が、障害情報やメンテナンス情報を公開していないか確認します。公式の障害情報ページ、サポート窓口、公式SNSなどが主な確認先です。
レンタルサーバーの障害であれば、利用者がブラウザの設定を変更しても復旧できないことがあります。公式発表に障害が掲載されている場合は、案内された復旧状況を確認し、復旧後にアクセスし直してください。
障害情報が見当たらない場合でも、サーバー障害が起きていないとは限りません。特定のサイトだけでエラーが続くなら、サイト運営者へ問い合わせる方法もあります。問い合わせる際は、発生時刻、対象ページ、表示されたエラー文を伝えると状況を共有しやすくなります。
【原因を比較】インターナルサーバーエラーが発生する主な理由と見分け方
サーバーエラーの原因は一つではありません。プログラムの文法ミスや設定ファイルの不備など、サイトの構成に関係する問題もあれば、アクセス集中やリソース不足といったサーバー環境に関係する問題もあります。
サーバー事業者の公式サポート情報やWordPressの公式ドキュメントでは、PHPなどのプログラムエラー、.htaccessの設定、ファイル権限、プラグインの競合、メモリ不足などが、内部サーバーエラーの調査対象として挙げられています。
| 主な原因 | 発生しやすい状況・手掛かり | 最初に確認すること |
|---|---|---|
| PHP・CGIのプログラムエラー | 更新やコード変更の直後に発生する | PHPエラーログ、変更したコード |
| .htaccessの設定エラー | 設定変更後に複数のページでエラーが出る | 記述内容、変更前のバックアップ |
| ファイル権限の不備 | 特定のファイルやプログラムだけ動かない | ファイル・ディレクトリのパーミッション |
| WordPressのプラグイン・テーマ競合 | 更新や新規導入の直後にエラーが出る | プラグイン、テーマ、PHPの互換性 |
| メモリ・リソース不足 | 処理の重いページやアクセス集中時に発生する | エラーログ、使用量、同時接続数 |
| サーバー側の障害 | サイト全体が突然表示されなくなる | 事業者の障害情報、サーバー稼働状況 |
| データベースや外部サービスの問題 | 特定の処理で失敗する、関連機能が動かない | アプリケーションログ、接続状態、外部サービスの稼働状況 |
原因の特定には、エラーが発生したタイミングが役立つ
同じ500エラーでも、直前に何が起きたかによって調査の優先順位は変わります。たとえば、WordPressのプラグインを更新した直後なら、更新されたプラグインとPHPの互換性、ほかのプラグインとの競合を優先して調べます。
.htaccessを編集した直後なら、記述ミスやサーバーが許可していない設定項目が疑われます。特に、サイト全体で一斉にエラーが発生した場合は、共通の設定ファイルやサーバー環境の変化に注目すると効率的です。
一方、決まった時間帯にだけエラーが発生する場合は、アクセス集中、定期処理、外部APIへの接続、リソース制限などを確認します。発生時刻と直前の変更履歴を照らし合わせることで、原因を絞り込みやすくなります。

【管理者向け】サーバーログの確認方法と.htaccess・ファイル権限の直し方
自分が管理するWebサイトでHTTP 500エラーが発生した場合、最も優先したいのは、エラーが記録されたログを確認することです。設定を手当たり次第に変更するよりも、記録されたエラーを手掛かりに原因を絞り込むほうが、復旧までの時間を短縮しやすくなります。
1. レンタルサーバーのエラーログを確認する
多くのレンタルサーバーでは、管理パネルからエラーログを閲覧・ダウンロードできます。メニュー名は事業者によって異なりますが、「エラーログ」「ログ管理」「アクセスログ」などの項目を探してください。
ログを確認するときは、次の情報を優先します。
- エラーが発生した日時とタイムゾーン。
- 対象となったページや処理。
- PHPファイル名やエラーが発生した行番号。
- メモリ不足、タイムアウト、アクセス権限などを示すメッセージ。
- 設定変更やプログラム更新の直後に記録されたエラー。
たとえば、ログに「PHP Fatal error」と記録されていれば、PHPの致命的なエラーを起点に調査できます。「Permission denied」であれば、ファイルやディレクトリへのアクセス権限を確認する手掛かりになります。
ただし、ログに表示されるエラー文だけで原因が完全に確定するとは限りません。エラーが発生したファイルだけでなく、そのファイルを呼び出した処理や直前の設定変更も確認しましょう。
2. PHPエラーログを確認する
PHPで動作するサイトでは、PHPのエラーログが重要な調査材料になります。レンタルサーバーの管理パネルに専用ログが用意されている場合は、まずそこを確認します。設定によっては、サーバーの指定ディレクトリやアプリケーション内にログが保存されていることもあります。
WordPressの場合は、公式開発者向けドキュメントで、デバッグ情報をログに記録する方法が説明されています。代表的な設定は次のとおりです。
WP_DEBUG:WordPressのデバッグ機能を有効にする。WP_DEBUG_LOG:デバッグ情報をログファイルに記録する。WP_DEBUG_DISPLAY:エラー情報を画面に表示するかどうかを制御する。
本番サイトで調査する場合、エラー情報を訪問者の画面に表示させない設定が重要です。エラーメッセージにはサーバーのパスや内部構造など、外部に公開すべきでない情報が含まれる場合があります。
デバッグ機能を使う際は、事前にバックアップを取り、必要な範囲に限定して有効化してください。調査終了後は設定を元に戻し、不要なログを適切に管理します。ログには個人情報や認証情報が含まれる可能性もあるため、公開場所に放置しないよう注意が必要です。
3. .htaccessの設定エラーを確認する
.htaccessは、Apache HTTP Serverでディレクトリ単位の設定を行うために利用されるファイルです。リダイレクト、アクセス制御、URLの書き換えなどに使用されますが、記述ミスやサーバー側で許可されていないディレクティブがあると、HTTP 500エラーにつながることがあります。
Apache HTTP Serverの公式ドキュメントでも、.htaccess内の構文エラーや、許可されていないディレクティブがサーバーエラーを引き起こす場合があると説明されています。
確認するときは、次の手順で進めます。
- FTPソフトやサーバーのファイルマネージャーで、サイトのルートディレクトリを開く。
- 現在の.htaccessを別の場所にバックアップする。
- 直前に追加・変更した記述を確認する。
- 変更前の正常な設定に戻せる場合は、バックアップから復元して動作を確認する。
- WordPressであれば、必要に応じてパーマリンク設定からルールを再生成する。
WordPressの公式トラブルシューティングでも、.htaccessの破損が疑われる場合に、ファイルを退避して動作を確認する方法が案内されています。ただし、独自のリダイレクトやアクセス制限を設定しているサイトでは、安易にファイルを削除すると別の不具合が発生する可能性があります。変更前の内容を保存し、設定の目的を確認してから作業してください。
4. ファイル権限755・644を確認する
ファイル権限、いわゆるパーミッションは、ファイルやディレクトリを誰が読み取り・書き込み・実行できるかを制御する仕組みです。権限が適切でないと、サーバーが必要なファイルを読み込めなかったり、プログラムを実行できなかったりして、500エラーが発生することがあります。
一般的なLinux系サーバーでは、次の数値がよく使われます。
- 755:所有者は読み取り・書き込み・実行が可能で、グループやその他の利用者には読み取り・実行を許可する設定。ディレクトリなどで利用されます。
- 644:所有者は読み取り・書き込みが可能で、グループやその他の利用者には読み取りを許可する設定。一般的なWebファイルなどで利用されます。
ただし、755と644があらゆる環境で正解というわけではありません。Xserverなどのレンタルサーバー事業者の公式サポート情報では、PHPを設置したディレクトリやプログラムの種類に応じて、705や604などの設定が案内される場合もあります。
ファイルやディレクトリを一律に変更するのではなく、利用中のサーバーが指定する権限を確認してください。特に、すべてのファイルに777を設定する方法は避けましょう。必要以上に書き込み権限を広げると、セキュリティ上のリスクが高まります。
【WordPress対策】500エラーの原因をプラグイン・PHP・テーマから切り分ける
WordPressで500エラーが発生した場合は、プラグイン、テーマ、PHPの互換性、.htaccess、メモリ不足などを順番に確認します。WordPressの公式開発者向けドキュメントでも、内部サーバーエラーのトラブルシューティングとして、.htaccessの確認、プラグインの無効化、テーマの切り替えなどが紹介されています。
プラグインを無効化する方法
新しいプラグインを導入した直後や、既存のプラグインを更新した直後にエラーが発生した場合は、プラグイン同士の競合やPHPとの互換性を疑います。
WordPressの管理画面にアクセスできる場合は、プラグイン一覧から対象プラグインを無効化し、サイトが正常に表示されるか確認します。原因を特定するには、必要に応じてプラグインを一つずつ有効化し、どの操作でエラーが再発するかを調べます。
管理画面に入れない場合は、FTPソフトやファイルマネージャーから、wp-content/plugins 内の対象プラグインのディレクトリ名を一時的に変更する方法があります。原因のプラグインが特定できないときは、プラグイン全体のディレクトリ名を変更して一括で無効化する方法もあります。
ただし、一括無効化はサイトの機能や表示に影響する可能性があります。作業前にバックアップを取り、可能であれば検証環境で試してください。原因を特定したら、ディレクトリ名を元に戻し、プラグインを個別に有効化して問題の再発を確認します。
テーマとPHPの互換性を確認する
プラグインを無効化しても改善しない場合は、テーマの不具合を確認します。テーマを変更した直後にエラーが発生したなら、変更前のテーマに戻す、または標準テーマに切り替えて動作を比較する方法が有効です。
あわせて、WordPress本体、テーマ、プラグインが現在のPHPバージョンに対応しているかを確認してください。PHPのバージョン変更後にエラーが発生した場合、古いコードや互換性のない処理が原因になっている可能性があります。
PHPのバージョンを変更する場合は、サイト全体の互換性を確認し、バックアップを取得してから実施しましょう。原因がわからないまま本番環境のPHPを切り替えると、別の不具合を招くおそれがあります。
メモリ不足やサーバーのリソース制限を調べる
画像処理、データの大量取得、バックアップ、重いプラグインの処理などによって、PHPのメモリや実行時間が不足することがあります。レンタルサーバーによっては、同時接続数やCPU使用量などに制限が設けられている場合もあります。
エラーログにメモリ不足や実行時間超過を示す記録がないかを確認し、発生するページや時間帯との関連を調べます。制限値の変更が必要な場合は、利用中のプランやサーバーの仕様を確認し、事業者の案内に従ってください。
復旧しない場合はサーバー事業者に問い合わせる
ログを確認しても原因が特定できない場合や、設定変更をしていないのに突然サイト全体が停止した場合は、サーバー事業者への問い合わせを検討します。事業者側の障害、セキュリティ制限、リソース制限、データベースの問題など、利用者側だけでは確認できない要因もあるためです。
問い合わせ時には、次の情報をまとめておくと、原因の切り分けを進めやすくなります。
- エラーが発生し始めた日時とタイムゾーン。
- エラーが出るページと、サイト全体で発生しているかどうか。
- 表示されたエラーコードやメッセージ。
- 直前に行った更新や設定変更の内容。
- エラーログの該当箇所。
ログを送る場合は、パスワード、認証トークン、個人情報などが含まれていないかを確認してください。サイトのバックアップや復元が必要な場合も、まずは現状のデータを保全し、復旧作業によって問題を広げないようにすることが大切です。

【プロの結論】内部サーバーエラーが復旧しない場合の判断基準
インターナルサーバーエラーを解決するうえで重要なのは、閲覧者側の問題と管理者側の問題を混同しないことです。利用者ができるのは、ブラウザや通信環境を確認し、障害情報を調べ、必要に応じて運営者に状況を伝えるところまでです。サーバー内部のプログラムや設定を修正するには、管理権限と技術的な調査が必要になります。
管理者は、次の順序で調査を進めると効率的です。
- 発生範囲を確認する:サイト全体なのか、特定のページや機能だけなのかを切り分ける。
- 発生時刻と変更履歴を照合する:更新、設定変更、アクセス集中などとの関連を調べる。
- ログを確認する:PHPエラーやサーバーログから、実際に記録されたエラーを特定する。
- 変更箇所を限定して検証する:.htaccess、プラグイン、テーマ、権限などを一つずつ調べる。
- サーバー側の状況を確認する:障害情報やリソース制限を調べ、必要なら事業者へ相談する。
特に、原因が特定できていない段階で複数の設定を同時に変更するのは避けたいところです。どの変更が復旧につながったのか、あるいは別の問題を引き起こしたのかがわからなくなります。変更前の状態を保存し、作業内容と結果を記録しておくことが、再発防止にも役立ちます。
また、サイトを運営している場合は、500エラーが長時間続くことによる検索エンジンへの影響にも注意が必要です。Google Search Centralの公式資料では、500を含む5xxエラーが続くと、Googleのクロール頻度が低下し、サーバーエラーが長期間続くURLが検索インデックスから外れる場合があると説明されています。
そのため、障害を検知できる監視体制を整え、エラーログを保存し、バックアップと復元手順を用意しておくことが有効です。復旧後もエラーが再発する場合は、単にページが表示されたかどうかだけでなく、ログ、負荷、関連する機能まで確認しましょう。
【インターナルサーバーエラー】に関するよくある質問(FAQ)
Q1:インターナルサーバーエラーはスマホでも直せますか?
A1:閲覧者であれば、ページの再読み込み、別のブラウザでのアクセス、キャッシュの削除などを試せます。ただし、サーバー側のプログラムや設定が原因の場合、スマホの操作だけで根本的に解決することはできません。複数の端末で同じエラーが出る場合は、サイト運営者やサーバー事業者の対応を待つ必要があります。
Q2:HTTP 500エラーが出たら、ブラウザのキャッシュを削除すれば直りますか?
A2:キャッシュやCookieが表示上の問題に関係している場合には、改善する可能性があります。ただし、HTTP 500はサーバー側で処理に失敗したことを示すため、プログラムエラーや設定不備が原因なら、キャッシュ削除だけでは解決しません。別のブラウザでも発生するかを確認すると、問題の切り分けに役立ちます。
Q3:WordPressの500エラーはプラグインが原因ですか?
A3:プラグインの競合や更新後の不具合は原因の一つですが、必ずしもプラグインが原因とは限りません。PHPの互換性、テーマ、.htaccess、ファイル権限、メモリ不足なども考えられます。エラーログを確認し、直前の変更内容を手掛かりに調査してください。
Q4:ファイル権限は755と644のどちらに設定すればよいですか?
A4:一般的にはディレクトリに755、通常のファイルに644を使うケースがありますが、すべてのレンタルサーバーやプログラムで同じ設定が適切とは限りません。サーバー事業者が指定する権限を確認し、ファイルの種類や実行方式に合わせて設定してください。安全性の面からも、安易に777へ変更することは避けましょう。
Q5:500エラーが何時間も続く場合、どこに問い合わせればよいですか?
A5:自分が閲覧しているサイトなら、まずサイト運営者の問い合わせ窓口や公式の障害情報を確認してください。自分が管理するサイトなら、レンタルサーバーの障害情報とエラーログを確認し、原因を特定できない場合はサーバー事業者のサポート窓口へ相談します。発生時刻、対象ページ、エラーメッセージ、直前の変更内容を整理して伝えるとスムーズです。
まとめ:HTTP 500エラーは原因を切り分けて安全に復旧する
インターナルサーバーエラーは、サーバーがリクエストを正常に処理できなかったことを示すHTTP 500エラーです。原因はプログラムの不具合、.htaccessの設定ミス、ファイル権限、WordPressのプラグインやテーマ、PHPの互換性、リソース不足、サーバー障害など多岐にわたります。
閲覧者は、再読み込み、別のブラウザでの確認、キャッシュ削除、公式の障害情報の確認から始めましょう。管理者は、エラーログを優先して調べ、変更履歴と照合しながら、設定ファイルやプラグインなどを一つずつ検証することが基本です。
何を試しても復旧しない場合は、無理に設定を変更し続けず、バックアップを確保したうえでサーバー事業者や開発担当者に相談してください。エラーの表示だけで原因を決めつけず、記録と状況に基づいて対応することが、安全で確実な復旧への近道です。 (出典: インター ナル サーバー エラー(Yahoo!ニュース))