Webサイトやブログを運営していて、自分のサイトにアクセスした瞬間に「500 Internal Server Error」や「503 Service Unavailable」といった英語と数字だけの真っ白な画面が表示され、血の気が引いた経験はありませんか?
「せっかく書いた記事が消えてしまったのでは?」
「ウイルスに感染したの?」
初心者の方にとって、サーバーエラーは非常に恐ろしいものに見えるでしょう。しかし、安心してください。これらの数字は、サーバーが「今、こういう理由でサイトを表示できません」とあなたに原因を教えてくれているメッセージに過ぎません。数字の意味さえ理解できれば、落ち着いて対処・復旧することが可能です。
この記事では、インフラ構築の現場で数々のトラブルを解決してきた専門家が、代表的なサーバーエラー(HTTPステータスコード)の種類と原因、そして具体的な解決策を初心者向けに徹底解説します。
1. サーバーエラーの正体「HTTPステータスコード」とは?
私たちがWebサイトを見る時、お使いのブラウザ(スマホやPC)とWebサーバーの間では、「このページを見せて!(リクエスト)」「はい、どうぞ!(レスポンス)」というやり取りが常に行われています。
このやり取りの結果を、サーバーが3桁の数字でブラウザに伝える仕組みを「HTTPステータスコード」と呼びます。
ステータスコードは、最初の1桁目の数字によって「どのような状態か」が大きく5つに分類されています。
- 100番台(情報):処理を継続中です。
- 200番台(成功):リクエストは正常に処理されました。(普段、普通にサイトが見えている時は裏側で「200 OK」が返っています)
- 300番台(転送):ページが移動しました。(リダイレクトなど)
- 400番台(クライアントエラー):閲覧者(またはブラウザ)側のリクエストに問題があり、表示できません。
- 500番台(サーバーエラー):サーバー側の処理に問題があり、表示できません。
つまり、私たちがパニックになりやすい「サーバーエラー」とは、主に500番台のエラーを指します。また、初心者がサーバー側の問題だと勘違いしやすいのが400番台のエラーです。
ここからは、特に遭遇しやすいエラーコードを順番に見ていきましょう。
2. 【500番台】サーバー側に原因があるエラー一覧(5xx)
500番台のエラーは、「リクエストは正しく届いたけれど、サーバー側の内部トラブルや過負荷によって処理ができなかった」状態を示しています。サイト運営者自身が対応しなければならないケースがほとんどです。
500 Internal Server Error(内部サーバーエラー)
【意味】
「サーバーの内部で何らかのエラーが発生し、処理を完了できませんでした」という、非常に汎用的なエラーです。原因が多岐にわたるため、最も解決に頭を悩ませるエラーの一つです。
【主な原因】
- .htaccessファイルの記述ミス:リダイレクト設定などを追記した際、全角スペースが混じっていたり、構文が間違っていたりする場合。
- PHPのプログラムエラー:WordPressのテーマ(functions.phpなど)を編集して構文エラー(文法ミス)を起こした場合。
- プラグインの競合・不具合:新しく入れたプラグインが、サーバー環境や他のプラグインと相性が悪くエラーを起こした場合。
- パーミッション(権限)の誤設定:ファイルやディレクトリの権限設定が、サーバーのセキュリティ要件(CGIの実行権限など)に反している場合。
【対処法・解決策】
- 直前に「プラグインの追加」「テーマの編集」「.htaccessの編集」を行った場合は、FTPソフトやサーバーのファイルマネージャーを使って、その変更を元に戻すのが最優先です。
- 原因がわからない場合は、WordPressのデバッグモード(
wp-config.phpのWP_DEBUGをtrueにする)を有効にし、出力されるエラーログを見て原因となっているファイル(プラグインやテーマ)を特定します。
502 Bad Gateway(不正なゲートウェイ)
【意味】
サーバーとサーバーの間の通信(ゲートウェイやプロキシ)で問題が発生し、正しいデータを受け取れなかったことを示します。
【主な原因】
Nginx(フロントで通信を受けるサーバー)と、ApacheやPHP-FPM(裏側で処理をするサーバー)が連携して動いている環境などで、裏側の処理サーバーがダウンしている、あるいは通信に失敗した場合に発生します。
【対処法・解決策】
- サーバー側の一時的な不具合であることが多いため、数分待ってからページをリロード(再読み込み)すると直ることが多いです。
- レンタルサーバーを利用している場合、サーバー会社側で障害が発生していないか、公式サイトの「障害情報」を確認しましょう。
503 Service Unavailable(サービス利用不可)
【意味】
「現在、サーバーに負荷がかかりすぎているか、メンテナンス中のため、サービスを提供できません」というエラーです。500エラーと並んで非常によく遭遇します。
【主な原因】
- アクセス集中(バズ):SNSで記事が拡散されるなどして、短時間に許容量を超えるアクセスが殺到した場合。
- リソース(CPU・メモリ)の制限超過:共用レンタルサーバーにおいて、あなたのサイトのプログラムが重すぎて、サーバー会社から一時的に「利用制限」をかけられた場合。
- サーバーの定期メンテナンス:サーバー会社が機器のメンテナンスを行っている場合。
【対処法・解決策】
- アクセス集中が原因の場合、「待つ」のが基本の解決策です。アクセスが落ち着けば自動的に復旧します。
- 日常的に503エラーが頻発する場合は、現在のサーバーのスペック(許容量)がサイトの規模に追いついていません。エックスサーバーやConoHa WINGなどの高性能なサーバーへ移転(プランアップ)するか、キャッシュ系のプラグインや「CDN(コンテンツ配信ネットワーク)」を導入してサーバーの負荷を減らす根本的な対策が必要です。
504 Gateway Timeout(ゲートウェイ・タイムアウト)
【意味】
502エラーと似ていますが、こちらは「裏側のサーバーからの応答を待っていたけれど、時間がかかりすぎたのでタイムアウト(時間切れ)にしました」というエラーです。
【主な原因】
- データベースの処理(重い検索クエリの実行や、大量のデータのバックアップ・インポート処理など)に異常な時間がかかっている場合。
- 外部API(他のサービスのデータ)を取得する際、相手先の応答が遅い場合。
【対処法・解決策】
- 重い処理(バックアッププラグインの実行など)を行っている最中であれば、処理が終わるまで待ちます。
- 頻発する場合は、データベースの最適化(不要なリビジョンの削除など)や、タイムアウト時間を延ばす設定(上級者向け)が必要です。
3. 【400番台】閲覧者側に原因があるエラー一覧(4xx)
400番台のエラーは、「リクエストの方法がおかしい、または権限がない、ファイルが存在しない」など、要求を出した側(クライアント側)に問題がある場合に返されます。
400 Bad Request(不正なリクエスト)
【意味】
「あなたのブラウザが送ってきた要求(リクエスト)の形式がおかしいため、サーバーが理解できませんでした」というエラーです。
ブラウザのCookie(クッキー)が破損している場合や、URLの入力ミスなどが原因で発生します。ブラウザのキャッシュやCookieを削除することで解決するケースが多いです。
401 Unauthorized(認証エラー)
【意味】
「このページを見るための認証(パスワードなど)がされていない、または間違っています」というエラーです。
「Basic認証」などのパスワード制限をかけているページで、IDやパスワードを間違えるとこのエラーが表示されます。正しいログイン情報を入力すれば解決します。
403 Forbidden(アクセス拒否)
【意味】
「あなたはこのページ(ファイル)へのアクセス権限がありません」というエラーです。管理者が意図的にアクセスを禁止している場合に表示されます。
【主な原因と対処法】
- WAF(Webアプリケーションファイアウォール)の誤検知:レンタルサーバーのセキュリティ機能(WAF)が、あなたがWordPressを編集している通信を「サイバー攻撃」と勘違いしてブロックしてしまうことが非常によくあります。サーバーの管理画面から一時的にWAFをOFFにするか、除外設定を行うことで解決します。
- パーミッションの設定ミス:本来公開すべきファイルの権限が、非公開(読み取り不可)に設定されている場合です。FTPソフトで正しい数値(フォルダは755、ファイルは644など)に修正します。
404 Not Found(未検出)
【意味】
最も有名なエラーコードです。「あなたが要求したURLに、該当するページ(ファイル)は存在しません」という意味です。
【主な原因と対処法】
- URLの入力ミス:単純なスペルミスです。
- 記事の削除・URL変更:過去にあった記事を削除したり、パーマリンク(URL)の設定を変更したりしたのに、古いURLのままアクセスされた場合に発生します。URLを変更した場合は、必ず「301リダイレクト」という設定を行い、古いURLから新しいURLへ自動転送させるのがSEOの鉄則です。
4. エラーが出たときの「正しい初動」とトラブルシューティング手順
実際にあなたのサイトで「500」や「503」などのサーバーエラーが発生した場合、パニックにならず、以下の手順で冷静に対処しましょう。
手順1:サーバー会社の「障害・メンテナンス情報」を確認する
まずは、自分が契約しているレンタルサーバーの公式サイトや公式X(旧Twitter)を確認しましょう。「現在、〇〇サーバーで接続障害が発生しています」というアナウンスがあれば、あなたが焦って設定をいじる必要はありません。復旧を待つのが正解です。
手順2:直近で行った「変更」を元に戻す
障害が起きていない場合、エラーの9割は「あなたが直前に行った作業」が原因です。
- プラグインの更新や新規追加をした
- WordPressのテーマファイル(functions.phpなど)を編集した
- .htaccessファイルをいじった
心当たりがある場合、FTPソフトやサーバーのファイルマネージャー機能を使ってサーバーに接続し、追加したプラグインのフォルダ名を変更して無効化したり、編集前のバックアップファイルで上書きしたりして「元の状態」に戻します。
手順3:ブラウザのキャッシュをクリアして再読み込み
サーバー側ではすでに復旧しているのに、ブラウザが「エラー画面の記憶(キャッシュ)」を読み込んでしまい、エラーが直っていないように見えることがあります。「スーパーリロード(Ctrl + F5キー、Macは Cmd + Shift + R)」を行い、最新の情報を読み込んで確認しましょう。
手順4:エラーログを確認する(中〜上級者向け)
原因に全く心当たりがない場合は、サーバーの管理パネルから「エラーログ」をダウンロードして確認します。英語の羅列ですが、よく見ると「どのファイルの何行目でエラーが起きているか(例:Parse error: syntax error in .../functions.php on line 12)」が具体的に書かれています。
5. まとめ:エラー番号はサーバーからの「ヒント」
今回は、サーバーエラーの一覧とその原因・対処法について解説しました。
- 500 Internal Server Error:内部エラー。プラグイン競合やPHP、.htaccessの記述ミスを疑う。
- 502 Bad Gateway / 504 Gateway Timeout:通信系のトラブル。少し待つか、サーバーの障害情報を確認する。
- 503 Service Unavailable:アクセス過多や負荷による制限。待つか、頻発するならサーバーの移転を検討する。
- 403 Forbidden:アクセス拒否。WAFの誤検知やパーミッションの設定を見直す。
- 404 Not Found:ページが存在しない。URLの確認とリダイレクト設定を行う。
サーバーエラーは決して恐れるものではありません。エラー画面が出たときは、「数字が何番か」を確認し、この記事を辞書代わりに使って原因を特定してみてください。
エラーの意味を正しく理解し、冷静に対処できるようになれば、あなたのサイト運営スキルはまた一段ステップアップするはずです!