HTTP 500 Internal Server Error

サーバー側のクラッシュ: あなたのリクエストは問題ありませんでしたが、処理中に何かが壊れました。

HTTP 500 の意味

HTTP 500 Internal Server Error は、汎用的な「こちら側で何か問題が発生しました」というレスポンスです。リクエストはアプリケーションに到達し、そのアプリケーションが失敗しました — 未処理の例外、設定ミス、機能していない依存先など、サーバーにはそれ以上言えることがありませんでした。

訪問者にとって、500 は自分のせいではなく、ブラウザ側で修正できることはほとんどありません。開発者にとっては、常にサーバー側のログエントリに対応しています。対処はそのスタックトレースを見つけることから始まります。

500 エラーのよくある原因

  • アプリケーションコード内の未処理の例外(null 参照、型エラー、失敗したアサーション)です。
  • 設定ミス: 壊れた .htaccess や nginx のディレクティブ、誤ったファイル権限、欠落した環境変数です。
  • 機能していない、またはタイムアウトしている依存先です: データベースがダウンしている、マイグレーションが不足している、フォールバックのない外部 API の失敗などです。
  • リソースの枯渇: メモリ不足、PHP/ワーカーの制限、ディスクの満杯です。
  • 不適切なデプロイ: パッケージの欠落、互換性のないライブラリバージョン、本番コードの構文エラーです。

訪問者としての対処法

  • 少し待ってから一度だけ再読み込みしてください — 多くの 500 は一時的なデプロイや過負荷による瞬間的なものです。
  • 後でまた来てください。多くの場合、あなたが伝える前にサイト側のチームが問題を把握しています。
  • エラーが自分だけに、かつ持続的に発生する場合に限り、クッキーをクリアしてください。

開発者としての対処法

  • サーバーのエラーログを読んでください — スタックトレースが答えです(nginx / apache のエラーログ、アプリケーションログ、APM)。
  • エラーが最新のデプロイと同時に始まった場合は、まずそれをロールバックしてください。
  • アクセスログから失敗した正確なリクエストを再現してください。エラートラッキング(Sentry など)を導入していない場合は追加してください。
  • 本番環境では、ユーザーにスタックトレースを絶対に見せないでください — 詳細はログに記録し、ユーザーには分かりやすいページを表示してください。

レスポンス例

HTTP/1.1 500 Internal Server Error
Content-Type: text/html

<!doctype html>
<title>Something went wrong</title>

SEO への影響

継続的な 500 は検索エンジンのクロール速度を低下させ、数週間続くと影響を受けた URL がインデックスから外れることがあります。短時間の障害は無害です — Google は何かを判断する前に再試行します。

よくある質問

500 エラーは訪問者である私のせいですか?

いいえ。これはサーバー側の障害です。待って再読み込みする以外、あなたにできることはほぼありません。

500 の原因はどこで見つかりますか?

サーバーのエラーログ、またはあなたのエラートラッキングサービスの中です — すべての 500 は、記録された例外か設定エラーに対応しています。

500 エラーは SEO に影響しますか?

短時間の障害は影響しません。数日から数週間にわたる 500 は、クロールを減少させ、一時的にページをインデックスから外すことがあります。