Search Consoleの「サーバーエラー(5xx)」とは?
Search Consoleのページのインデックス登録で、「サーバーエラー(5xx)」と表示されることがあります。これは、Googlebotがページを取得しようとした時に、サーバー側から500番台のエラーが返った状態です。
ただし、今も壊れているとは限りません。一時的なサーバー混雑や、修正前のクロール結果が残っているだけのこともあります。この記事では、Search Consoleの表示、ライブURLテスト、ブラウザ表示、PHPエラー、.htaccessを分けて確認します。
先に結論
サーバーエラー(5xx)が出たら、次の順番で確認します。
- Search Consoleで対象URLと最終クロール日をメモする
- ライブURLテストで現在も取得できないか確認する
- ブラウザで対象URLを開き、500、503、真っ白、正常表示を分ける
- サイト全体か、特定ページだけかを切り分ける
- 直前に触ったPHP、
.htaccess、PHPバージョン、DB接続を確認する - ロリポップのPHPエラー確認やローカルの
php -lで原因を探す - 復旧後にライブURLテストを行い、必要ならインデックス登録をリクエストする
まず今もエラーか、過去のエラーかを分ける
Search Consoleのレポートは、Googleが最後にクロールした時点の情報を表示していることがあります。修正済みでも、レポート上はしばらく5xxに見える場合があります。
| 状態 | 判断 | 次にすること |
|---|---|---|
| ライブURLテストも失敗する | 現在も取得できない可能性が高い | サーバー、PHP、.htaccessを先に直す |
| ライブURLテストは成功する | 一時的な5xx、または修正済みの可能性 | 最終クロール日を見て、必要なら再リクエストする |
| ブラウザでも500が出る | ユーザーにも影響している | 公開サイトの復旧を最優先する |
| 自分のブラウザだけ正常 | Googlebotだけ失敗、または一時的な差 | 時間帯、WAF、アクセス制限、サーバー負荷を見る |
| 一部URLだけ5xx | 特定テンプレートやDB取得の問題かもしれない | 該当ページのPHP、include、DB処理を見る |
5xxの種類をざっくり分ける
Search Consoleではまとめて5xxと出ることがありますが、実際のHTTPステータスを見ると原因の方向が絞れます。
| 表示例 | よくある意味 | 見る場所 |
|---|---|---|
500 Internal Server Error | サーバー側処理に失敗 | PHPエラー、.htaccess、PHP設定 |
502 Bad Gateway | サーバー間の応答失敗 | 一時障害、サーバー側の状態 |
503 Service Unavailable | 一時的な停止、メンテナンス、過負荷 | サーバー混雑、メンテナンス表示、アクセス集中 |
504 Gateway Timeout | 処理が時間内に終わらない | 重いPHP処理、DB、外部API、タイムアウト |
429 Too Many Requests | リクエスト過多 | アクセス制限、WAF、レート制限 |
ロリポップや自作PHPサイトで多い原因
ロリポップやFTP運用のPHPサイトでは、5xxは「サーバーが壊れた」よりも、直前に触ったPHPや.htaccessが原因のことが多いです。
| 原因 | 確認するもの | 進む記事 |
|---|---|---|
.htaccessの記述ミス | 直前に変更した行、リダイレクト、許可されないディレクティブ | .htaccessで500エラーになった時の戻し方 |
| PHPの構文ミス | php -l、Parse error、直前の編集 | PHPエラーログを見る方法 |
| includeやrequireの失敗 | 本番パス、共通パーツ、ファイル名の大文字小文字 | PHP includeが本番だけ読み込めない時 |
| PHPバージョン変更後の互換性 | Deprecated、Fatal error、古い関数 | PHPバージョン変更後に動かない時 |
| DB接続や外部APIで止まる | 接続情報、タイムアウト、エラーログ | MySQLに接続できない時 |
サイト全体か、1ページだけかを見る
5xxの調査では、対象URLだけでなく、トップページ、カテゴリ、画像やCSS、別のPHPページも開きます。範囲で原因がかなり変わります。
- トップページも500なら、
.htaccess、PHP設定、サーバー側の影響を疑う - 特定記事だけ500なら、そのページのテンプレート、DB取得、includeを疑う
- フォーム送信時だけ500なら、送信処理、メール関数、外部APIを見る
- 管理画面や検索結果ページだけ500なら、重い処理やDBクエリを見る
- 短時間だけ発生したなら、サーバー混雑や一時障害も記録する
直してはいけない方向
5xxはサーバー側の取得失敗なので、記事本文やタイトルを先に直しても解決しないことがあります。まずGooglebotとユーザーがページを取得できる状態へ戻します。
焦ってやらないこと
- 5xxのURLをサイトマップから外してごまかす
- 500が出るページをトップページへリダイレクトする
- 原因不明のまま
.htaccessを全文置き換える - PHPエラー表示を本番で出しっぱなしにする
- AIにサーバーパス、DBパスワード、FTP情報を貼る
修正後にSearch Consoleで見ること
- ブラウザで対象URLが200表示されるか確認する
- 複数ページを開き、サイト全体の500が消えたか見る
- Search Consoleで公開URLをテストする
- 取得成功なら、必要に応じてインデックス登録をリクエストする
- ページのインデックス登録レポートで、数日から1週間単位で変化を見る
AIへ相談する時のメモ
5xxは原因候補が広いので、URLと画面文言だけでなく、直前の変更、対象範囲、エラーログをセットで渡します。秘密情報は伏せてください。
Search Consoleで「サーバーエラー(5xx)」が出ています。
対象URL:
Search Consoleの表示:
最終クロール日:
ライブURLテスト結果:
ブラウザで開いた結果:
200 / 500 / 503 / 真っ白 / 未確認
エラーが出る範囲:
サイト全体 / 一部ページだけ / フォーム送信時だけ / 不明
直前に変更したもの:
PHP / .htaccess / PHPバージョン / DB / フォーム / 不明
PHPエラーログ:
(秘密情報を伏せて貼る)
php -l の結果:
.htaccessを変更したか:
はい / いいえ / 不明
確認してほしいこと:
1. 今も5xxなのか、過去のクロール結果が残っているだけか
2. PHP、.htaccess、DB、サーバー負荷のどれを先に疑うべきか
3. 触る前にバックアップすべきファイル
4. Search Consoleで修正後に確認する順番
5. 秘密情報を貼らずに追加で集めるべき情報