500 Internal Server Error(内部サーバーエラー)

500 Internal Server Errorとは何か、Googlebotがクロール中にサーバーエラーをどう扱うか、500が継続するとインデックス削除につながる理由、診断と修正の方法を解説します。

初回公開:2026年6月28日 · 最終更新:2026年8月22日 · Advanced
言語

500 Internal Server Errorは、一般的なサーバー側の失敗コードです。RFC 9110は、サーバーがリクエストを満たせなくなった予期しない状態と定義しているだけで、何が失敗したか、どのくらい続くか、再試行が成功するかは示しません。単発の500は通常Googleが再試行しますが、サイト全体で500が続くとGoogleは文書化された反応としてクロールを遅くし、エラーが解消しなければ最終的にインデックスから外す可能性があります。John Muellerはエラー率が約1%を超えるとおそらく本当の問題だという個人的な大まかな目安を示していますが、Google自身は厳格な閾値を公表していません。まずサーバーログで診断し、GSCのServer error (5xx)レポートを確認してください。プラグインの競合やリソース枯渇などの原因は特定のスタック(特にWordPress)では一般的ですが、普遍的な一覧ではありません。

TL;DR — RFC 9110は、500をサーバーがリクエストを満たせなくなった予期しない状態と定義しています。これはステータスコード自体が示す範囲のすべてです。原因、期間、再試行の価値があるかどうかは意味論ではなく診断の問題です。Googleの文書化された反応は段階的です。単発の500は通常再試行され、サイト全体で500が続くとクロールが遅くなり、解消しなければ最終的にインデックスから削除されます。Muellerは、エラー率が約1%を超えると何かが壊れている可能性が高いという、個人的な大まかな目安を示しています。ただし、これはGoogleの文書化された閾値ではありません。また、再試行 → クロール低下 → インデックスからの削除という流れは、文書化された挙動を示すもので、固定された一連のタイマーではありません。まずサーバーログで診断し、次にGSCのServer error (5xx)レポートと、Crawl Statsの「by response」を確認してください。500と503の違いも重要です。503は「後で戻ってきて」という公認のコードで、約2日間の猶予があります。制御されていない500にはそのような猶予はありません。

Evidence for this claim RFC 9110 defines 500 as an unexpected condition encountered by the server that prevented it from fulfilling the request. Scope: web requests Confidence: high · Verified: RFC 9110: HTTP Semantics

500の実際の意味

実務家の略式表現ではなく、まず仕様から始めましょう。HTTP意味論の標準であるRFC 9110は、500 Internal Server Errorを、サーバーがリクエストを満たせなくなった予期しない状態と定義しています。これは、ステータスコード自体が伝える内容の全範囲です。根本原因、失敗したコンポーネント、問題が続く期間、同じリクエストが再試行で成功するか、回復の見込みがあるかは特定しません。「サーバーが処理できない何かに遭遇した」ことを超える部分はすべて診断であり、ステータスコードの意味論ではありません。そして診断は、仕様やブラウザーではなく、サーバーのエラーログにあります。

Evidence for this claim A 500 response means the server encountered an unexpected condition that prevented it from fulfilling the request. Scope: RFC 9110 defines the generic response semantics; it does not diagnose the underlying server fault. Confidence: high · Verified: IETF: RFC 9110 §15.6.1 — 500 Internal Server Error

AhrefsのHTTPステータスコードガイドでは、実務向けの定義を意図的に率直にしています。サーバーが「encounters some kind of issue and doesn’t have a better or more specific error code.」 (翻訳)「何らかの問題に遭遇し、より適切または具体的なエラーコードがない」というものです。これは同じRFCの境界を平易な言葉にしたもので、依然としてキャッチオールであり、診断ではなく症状です。

500は502(不正なゲートウェイ)、503(サービス利用不可)、504(ゲートウェイタイムアウト)と並ぶ5xxファミリーに属します。いずれもサーバー側ですが、500は「より適切なコードがない」という意味のコードです。ステータスコード自体には診断の詳細がないため、ブラウザーを再読み込みしてもなぜ起きたかは分かりません。真実を示すのはサーバーのエラーログです。

Googlebotは500をどう扱うか

Googleのクローラーは、設計上、サーバーの健全性に合わせて速度を落とすようになっており、5xxレスポンスを「slow down」 (翻訳)「速度を落とす」ための信号の1つとして読み取ります。Googleの現在の文書は、この反応の形を確認しています。5xxと429のレスポンスは、一時的なクロールレート低下を引き起こし(影響を受けるURL数に応じて調整されます)、失敗し続けるURLは最終的にインデックスから削除される可能性があります。一方、すでにインデックスにあるコンテンツは、正常な更新が行われるまで当面維持されます。 Evidence for this claim Google reduces crawling in response to 5xx errors and eventually removes persistently failing URLs from its index. Scope: Google documents the general 5xx progression; it does not provide a guaranteed retry or recovery timeline for an individual URL. Confidence: high · Verified: Google: How HTTP status codes affect Google's crawlers John Muellerは、Search Engine Journal経由で伝えられたGoogle SEO Office Hoursのセッションで、同じ段階を自分の言葉で説明しています。

“We don’t have any strong thresholds on that. But essentially what happens with 500 errors is we’ll try to retry them. And if we continue to see …the 500 errors then we will …slow down crawling. And if we continue to see that there are 500 errors then we will drop those URLs from the index.” (翻訳)「その点について厳格な閾値はありません。ただ、基本的に500エラーが起きると、再試行します。それでも500エラーが続けば、クロールを遅くします。そして500エラーが続くようなら、そのURLをインデックスから外します。」

これは、固定された3段階のタイマーや、移行やタイミングが保証された流れではなく、文書化された挙動(再試行、クロール低下、削除の可能性)の説明として読んでください。Googleは、ある段階が次の段階に移る正確な閾値を公表していません。1つのURLで起きた単発の500は通常再試行され、次の取得が成功すれば通常は終わりです。ただしこれは一般的なケースの説明であり、単発の障害にコストがまったくないことの保証ではありません。文書化された本当のリスクは、エラーが解消しない場合にあります。

サイト全体のサーバーエラーが単発より悪い理由

サイトの大部分が一度にサーバーエラーを返すと、さらに厄介な動きが起きます。Googleの現在の文書は、クロールレートの低下が影響を受けるURL数に応じて大きくなることを確認しています。サイトの失敗範囲が広いほど、クロールは遅くなります。Muellerは、Google自身のクロールが過負荷の一因かもしれないとGoogleが疑う、という形で、その理由をより具体的に説明しています。

“But if a large part of a site consistently has 500 errors and we might assume that maybe we’re causing the problem and we’ll slow down crawling of the whole site and at some point we’ll say well, it looks like these pages are really gone, we’re going to drop them.” (翻訳)「しかし、サイトの大部分で500エラーが継続し、もしかすると私たちが問題を引き起こしているのだと仮定すると、サイト全体のクロールを遅くします。そしてある時点で、これらのページは本当に消えたようだと言い、削除することになります。」

この「we assume we’re causing it」 (翻訳)「私たちが原因だと仮定する」という因果関係の説明は、Googleの現在の公式文書からの逐語的な表現ではなく、Mueller自身の特徴づけとして扱ってください。根底にある仕組み(失敗するURLが増えるほどクロールレートが下がる)は文書化されていますが、正確な因果関係は文書そのものより本人の発言で確認しやすいものです。いずれにしても、実務上のフィードバックループは理解しておく価値があります。リソース枯渇時の積極的なクロールが500を増やす → Googleがサイト全体のクロールを控える → それでもエラーが続けばページが削除される、という流れです。つまり500の問題は、常にコードのバグとは限りません。クローラーやトラフィックの急増時にだけ発生する同時負荷で、サーバーが耐えられなくなっている場合もあります。

どの程度が「多すぎる」のか

明確な線引きはありません。Google自身のトラブルシューティング文書は、エラー率の閾値をまったく公表していません。MuellerはSEO Office Hoursで、(公式のGoogle出版物ではなく、Search Engine Journal経由で伝えられたものですが)個人的な大まかな目安を示しています。

“My feeling is if you’re seeing something more than one percent then that sounds like something is kind of broken.” (翻訳)「私の感覚では、1%を超える何かが見えているなら、何かが壊れているように思えます。」

~1%はMuellerに帰属する非公式の異常検知の目安であり、Googleが文書化または強制している上限ではありません。これ未満ならおそらく問題ありませんが、超えているなら調査する価値があります。ただし1%を超えたことを自動的なトリガーと見なさず、1%未満であることも保証と見なさないでください。Googleが公に約束している唯一の数字は、数字がないことです。「we don’t have any strong thresholds.」 (翻訳)「厳格な閾値はありません。」

500と503:重要な違い

ここは多くの人が間違えるところです。503 Service Unavailableは、クローラーに「一時的に停止しています。後で戻ってきて」と伝える公認の方法です。Googleは意図的な状態として扱い、猶予期間を設けます。Google自身のクロールに関するトラブルシューティング文書は明確です。

“Return 503 or 429 HTTP response status codes temporarily for Googlebot requests when your server is overloaded. Googlebot will retry these URLs for about 2 days. Note that returning ‘no availability’ codes for more than a few days will cause Google to permanently slow or stop crawling URLs on your site.” (翻訳)「サーバーが過負荷のときは、Googlebotのリクエストに対して503または429のHTTPレスポンスステータスコードを一時的に返してください。GooglebotはこれらのURLを約2日間再試行します。なお、「利用不可」のコードを数日以上返すと、Googleはサイト上のURLのクロールを恒久的に遅くするか、停止します。」

対照的に、503は意図的で約2日間の再試行猶予があり、制御されていない500は意図的ではなく、そのような猶予がありません。Googleが諦めるまで再試行されるだけです。実務上の要点は、計画したメンテナンスや意図的な過負荷防御には、500や200のエラーページではなく、503(できればRetry-Afterヘッダー付き)を返すことです。本当の障害を200に見せてはいけません。

500を診断する方法

これを層ごとに進めます。アプリケーション/コード、プラットフォーム/CMS、インフラとリソース、設定の順に、費用が低く成功しやすいものから確認します。**(WordPress固有)**と記した手順は一般的なWordPressの実務であり、普遍的な修正ではありません。実際のスタックに合わせて調整してください。

  1. サーバーのエラーログ。 error.logaccess.log(またはプラットフォームのログビューアー)を確認します。失敗したリクエストと時刻を照合してください。実際のスタックトレース、PHPの致命的エラー、DB接続失敗はここに現れます。これを読むまでは、その後のすべてが推測です。
  2. GSC — Server error (5xx)レポート。 Google Search ConsoleのPage Indexingレポートは、Google自身が500を確認しているURLに印を付けます。次にCrawl Statsを開き、時間の経過に沿った**「by response」**の内訳を読みます。これで一時的な障害と、継続的な可用性問題を区別できます。
  3. Bing Webmaster Tools。 クロールエラーのアラートはServer Errors (5xx)をまとめ、具体的なURLとCrawl Informationツールを示します。
  4. ブラウザーだけでなく、ボットとして再現します。 クロールによる負荷、ボット検出/ファイアウォールの設定ミス、同時ボットトラフィック時だけ問題になる容量制限などにより、あなたには正常に読み込めてもGooglebotにはサーバーエラーを返すページがあります。URL Inspection(GSC)、Fetch as Bingbot、またはボットのユーザーエージェントを付けたcurlで、ボットだけの失敗を見つけます。「ブラウザーでは動く」は問題がない証拠ではありません。
  5. プラグイン/テーマ/モジュールの競合(WordPress固有のパターン。ほかでは適応)。 まずバックアップを取ります。無効化を始める前に、必ず戻せる手段を用意してください。その後、拡張機能を無効にし、1つずつ再有効化して原因を切り分けます。触れたもののファイル権限と所有者も確認してください。ホスティング事業者のWordPress向けトラブルシューティングガイドではこのパターンが頻繁に報告されていますが、どの環境でも最大の原因だという証拠ではありません。別のCMSやカスタムアプリでは、第三者モジュール、パッケージ、ミドルウェアの競合に相当します。
  6. リソース枯渇。 PHPのメモリ上限、データベース接続数の上限、共有ホスティングの容量、トラフィックまたはクロールの急増です。ホスト側で確認できることがあります。
  7. 設定と最近の変更。 壊れた.htaccess、誤ったサーバー設定の編集、最近のデプロイ、間違ったデータベース認証情報などです。まず調べる価値が高いのは最近の変更です。

修正方法(原因に合わせて修正する)

診断が示した層に合わせて修正します。次は実務家の解説で報告されている一般的なパターンであり、あなたのスタックで最も起こりやすいものを順位付けした普遍的な一覧ではありません。

  • 設定/デプロイが原因 → 変更をロールバックし、.htaccess、設定、認証情報を修正します。
  • リソース枯渇 → 上限(PHPメモリ、DB接続数)を引き上げるか、ホスティング層をアップグレードします。クロールが過負荷を引き起こしているなら、クロールレートの問題でもあります。
  • プラグイン/モジュールの競合 → 原因の拡張機能を削除または置き換えます。
  • コードのバグ → コードを修正し、不足しているエラーハンドリングを追加します。
  • 原因が分からない → 正確な時刻とログ行を添えてホストにエスカレーションします。本番環境で推測しないでください。

再発を防ぐ

5xx率の監視とアラート、本番投入前のステージング、既知のトラフィック急増前の負荷テスト、そしてGooglebotのクロール自体がトリガーならクロール負荷の管理を行います。実際の過負荷時には、サーバーに制御不能なエラーを出させるのではなく、意図的に503429を返します。

FAQ

500サーバーエラーはSEOに悪影響を与えますか? 文書化されたリスクは、主に規模を伴う継続です。単発のエラーは通常再試行され、1回の一時的な障害に対する文書化されたペナルティはありません。サイト全体でエラーが続くとクロールが遅くなり、インデックス削除につながる可能性があります。

500のページがGoogleによってインデックスから外れるまでどのくらいかかりますか? 固定された期間はありません。Googleはまず再試行してクロールを遅くします。インデックスから外れるのは、エラーが続いた場合だけです。修正すれば、クロールが再び成功した後、ページは通常戻ります。

サイトがGooglebotには500を返すのに、ブラウザーでは正常に読み込まれるのはなぜですか? ボットだけに起きるエラーは通常、容量またはボット処理の問題を意味します。クロールによる負荷、ファイアウォール/ボットルール、同時ボットトラフィック時だけ問題になる上限などです。手動のブラウザーチェックではなく、ログを信頼してください。

サイトの大部分でエラーが起きると、影響を受けたページだけでなくサイト全体のクロールを遅くしますか? はい。Googleの文書は、クロールレートの低下が失敗しているURL数に応じて大きくなることを確認しています。そのためサイトの大部分がエラーを返すと、サイト全体のクロールが遅くなります。Muellerはさらに、Google自身のクロールが過負荷の一因かもしれないとGoogleが疑う、という理由づけをしています。これは本人の特徴づけであり、現在の公式文書からの逐語的な表現ではありません。

WordPressで500が起きる原因は何ですか? WordPressに限ると、ホスティング事業者とWordPressコミュニティは、プラグイン/テーマの競合、壊れた.htaccess、PHPメモリ上限への到達を最も頻繁に報告しています。これはそのプラットフォームで報告されている内容であり、あらゆるエラーの普遍的な主原因だという主張ではありません。上の診断順序(まずログ、次に変更点)はCMSに関係なく同じです。

500の後にリクエストを自動再試行しても安全ですか? まずメソッドとリクエストの冪等性を確認した場合に限ります。ステータス自体は再試行ポリシーを許可しません。GETHEADPUTDELETEは冪等であるため、一般に再試行しても安全です(繰り返しても追加の副作用が起きないためです)。一方、APIが冪等性を明示的に保証していない限り、単独のPOSTは通常安全ではありません。冪等性キーなどがないまま盲目的に再試行すると、注文やメールの重複、決済の二重請求につながるおそれがあります。再試行する場合は、ジッター付き指数バックオフを使い、試行回数に上限を設け、苦戦中のサーバーに失敗の上に再試行の嵐を浴びせないよう再試行予算を設定します。

Try it live

This is a real endpoint on this site — not a simulation. Hit it from the button, open it in a new tab, or curl -i it from your terminal, and the server answers with the actual status code this article is about.

Open in new tab ↗

Add an expert note

Pin an expert quote

New person? Create their unclaimed profile at /admin/experts/ → Pin a quote first.