HTTPステータスコード:404、500、503の解説
10 分で読める
HTTPステータスコード:404、500、503の解説
読了時間:約10分
かんたんな定義:HTTPステータスコードは、サーバーがブラウザや検索エンジンに返す3桁のレスポンスです。サーバーが「OK、ページはこちらです」(200)、「移動しました」(301)、「見つかりません」(404)、「不具合が起きています」(500)と伝える方法だと考えてください。
SEOにとって重要な理由:誤ったステータスコードは検索エンジンを混乱させ、クロールバジェットを無駄にし、順位を大きく下げます。
TLDR
HTTPステータスコードは、ページをどう扱えばよいかを検索エンジンに伝えます。通常のページには200、恒久的なリダイレクトには301、存在しないコンテンツには404を使います。よくある間違いは、恒久的な移動に301ではなく302を使うこと、404にすべきページで200を返すこと、500のサーバーエラーを放置することです。500エラーはすぐに直してください。サーバーエラーが続くと、インデックスから外れます。サイトのメンテナンスでは、503にRetry-Afterヘッダーを付けて、後で確認し直すようGoogleに伝えます。
5つのカテゴリ
| 範囲 | 意味 | 例 |
|---|---|---|
| 1xx | 情報(ほとんど見かけません) | 100 Continue |
| 2xx | 成功 | 200 OK |
| 3xx | リダイレクト | 301、302、307 |
| 4xx | クライアントエラー(ユーザー側の問題) | 404 Not Found、403 Forbidden |
| 5xx | サーバーエラー(御社側の問題) | 500 Internal Server Error、503 Service Unavailable |
2xx:成功のコード
200 OK(成功)
意味:「問題ありません。リクエストされたページはこちらです。」
SEOへの影響:
- ページをインデックスできます
- ページが検索順位に載る可能性があります
- 対応は不要です
見かける場面:
- 通常のページの読み込み
- 成功したAPIリクエスト
- 正常に表示される画像、CSS、JavaScript
確認すること:
curl -I https://example.com
# Output: HTTP/1.1 200 OK
3xx:リダイレクトのコード
301 Moved Permanently
意味:「このページは恒久的に移動しました。ブックマークを更新してください。」
SEOへの影響:
- リンクエクイティの90〜99%が新しいURLに引き継がれます
- 古いURLは検索結果から消えます
- 新しいURLがインデックスされます
使う場面:
- サイトの移行
- URL構造の変更
- HTTP → HTTPS
- wwwあり → wwwなし(またはその逆)
例:
Old: http://example.com/old-page
New: https://example.com/new-page
Status: 301 Moved Permanently
302 Found(一時的なリダイレクト)
意味:「このページは一時的に移動しました。古いURLは戻ってきます。」
SEOへの影響:
- リンクエクイティはほとんど、またはまったく引き継がれません
- 古いURLが検索結果に残ります
- 新しいURLがインデックスされない場合があります
使う場面:
- A/Bテスト
- 季節限定のコンテンツ
- メンテナンスのページ
よくある間違い:恒久的な移動に302を使うことです。本当に一時的なリダイレクトでない限り、必ず301を使ってください。
307 Temporary Redirect(HTTP/1.1)
意味:302と同じですが、HTTPメソッド(POST、GETなど)が保持されます
使う場面:POSTリクエスト(フォームの送信など)をリダイレクトするとき
308 Permanent Redirect(HTTP/1.1)
意味:301と同じですが、HTTPメソッドが保持されます
使う場面:HTTP/2以降の環境で、301に代わる新しい選択肢として
4xx:クライアントエラーのコード
404 Not Found
意味:「そのページは存在しません。URLは正しく入力しましたか?」
SEOへの影響:
- ページはインデックスされません
- 内部リンクが張られていると、クロールバジェットを無駄にします
- 外部の被リンクからのリンクエクイティが失われます
問題ない場合:
- ユーザーがURLを間違って入力した
- ページが正当な理由で削除された
問題になる場合:
- 内部リンクが404を指している
- 重要なページが404を返している
- 外部の被リンクが404に向かっている
404の見つけ方:
- Google Search Console → カバレッジ → エラー
- Screaming Frog SEO Spider
- サーバーログを確認する
直し方:
- 内部リンクが切れている → リンクを更新する
- 被リンクのある削除済みページ → 関連するページに301でリダイレクトする
- URLの打ち間違い → 正しい綴りに301でリダイレクトする
- 正当な理由でなくなったコンテンツ → 404のままにする(すべてをトップページにリダイレクトしない)
ソフト404(偽の404)
問題:ページは存在しないのに、サーバーが404ではなく200 OKを返します。
例:
GET /this-doesnt-exist
Response: 200 OK
Body: "Sorry, page not found"
SEOへの影響:
- Googleが本物のページだと判断します
- クロールバジェットを無駄にします
- 内容の薄いコンテンツとして指摘されることがあります
直し方:正しい404のステータスコードを返します。
// PHP
header("HTTP/1.1 404 Not Found");
// Node.js
res.status(404).send('Not Found');
// Apache .htaccess
ErrorDocument 404 /404.html
403 Forbidden
意味:「このページは存在しますが、閲覧する権限がありません。」
SEOへの影響:
- ページはインデックスされません
- 誤って公開ページに適用すると、検索結果から消えます
正しい場合:
- パスワードで保護されたページ
- 管理エリア
- 会員限定のコンテンツ
問題になる場合:
- 公開ページが403を返している(サーバーの権限を確認してください)
- Googlebotがファイアウォールやセキュリティプラグインにブロックされている
確認方法:
curl -I https://example.com/admin
# Output: HTTP/1.1 403 Forbidden
410 Gone(恒久的な削除)
意味:「このページはかつて存在しましたが、永久になくなりました。もう確認しないでください。」
SEOへの影響:
- 404よりも早く検索結果から削除されます
- Googleに「このURLを再確認して時間を無駄にしないで」と伝えます
使う場面:
- 代わりのない販売終了の商品
- 二度と戻さないと決めた削除済みのコンテンツ
- 終了したプロモーション
404と410の違い:
- 404:「いつか戻ってくるかもしれません」(Googleは定期的に再確認します)
- 410:「永久になくなりました」(Googleは、より早く確認をやめます)
5xx:サーバーエラーのコード
500 Internal Server Error
意味:「こちら側で何かが壊れました。原因はわかりません。」
SEOへの影響:
- ページはインデックスされません
- 続くと、ページが検索結果から削除されます
- クロールバジェットを無駄にします
- Googleに、サイトの品質が低いという信号を送ります
よくある原因:
- PHPのエラー(構文、メモリ上限)
- データベースの接続の問題
- 壊れた
.htaccessファイル - プラグインやテーマの競合(WordPress)
直し方:
- サーバーのエラーログ(
/var/log/apache2/error.log)を確認する - WordPressのデバッグモードを有効にする:
define('WP_DEBUG', true); define('WP_DEBUG_LOG', true); - プラグインを無効にしてテストする
- PHPのメモリ上限を引き上げる
- ホスティング会社のサポートに連絡する
502 Bad Gateway
意味:「サーバーが、別のサーバーから無効なレスポンスを受け取りました。」
SEOへの影響:500と同じです
よくある原因:
- NginxがPHP-FPMに接続できない
- サーバーの過負荷
- ファイアウォールが接続をブロックしている
直し方:
- PHP-FPMやNginxを再起動する
- サーバーの負荷を確認する(ホスティングのアップグレードが必要かもしれません)
- ファイアウォールのルールを見直す
503 Service Unavailable
意味:「サーバーは一時的に停止しています。後でもう一度お試しください。」
SEOへの影響:
- Googleは後で再試行します
- 何日も続くと、ページが検索結果から削除されることがあります
正常な場合:
- 予定されたメンテナンス(メンテナンスのページを503で表示します)
- サーバーの更新中
問題になる場合:
- サイトが予期せずダウンした
- 過負荷のサーバーがトラフィックをさばけない
直し方:
- ホスティング会社でサーバーの状態を確認する
- メンテナンスモードを正しく有効にする
- トラフィックが容量を超えている場合は、ホスティングをアップグレードする
メンテナンスモードの例:
<?php
header('HTTP/1.1 503 Service Temporarily Unavailable');
header('Retry-After: 3600'); // 1 hour
echo "We're performing scheduled maintenance. Back in 1 hour.";
?>
504 Gateway Timeout
意味:「サーバーの応答に時間がかかりすぎました。」
SEOへの影響:500と同じです
よくある原因:
- 遅いデータベースクエリ
- 外部APIのタイムアウト
- サーバーの過負荷
直し方:
- データベースクエリを最適化する
- PHPの
max_execution_timeを引き上げる - キャッシュを追加する
- サーバーのリソースを増強する
ステータスコードがSEOに与える影響
| コード | インデックスされる? | 順位がつく? | リンクエクイティを引き継ぐ? | 必要な対応 |
|---|---|---|---|---|
| 200 | はい | はい | はい | なし |
| 301 | 旧:いいえ 新:はい |
新しいURL | はい(約90〜99%) | リダイレクト先を確認する |
| 302 | 旧:はい 新:場合による |
古いURL | いいえ | 恒久的なら301に変更する |
| 404 | いいえ | いいえ | いいえ | 被リンクがあれば、修正またはリダイレクトする |
| 410 | いいえ | いいえ | いいえ | 削除したコンテンツには適切 |
| 500 | いいえ | いいえ | いいえ | すぐに修正する |
| 503 | 再試行される | 一時的に | 一時停止 | 早めに修正する(数日ではなく数時間で) |
ステータスコードの確認方法
ブラウザの開発者ツール
- 開発者ツールを開きます(F12)
- Networkタブを開きます
- ページを再読み込みします
- Status列を確認します
コマンドライン(curl)
# Check status code
curl -I https://example.com
# Follow redirects
curl -L -I https://example.com
# Check multiple URLs
for url in url1 url2 url3; do
curl -I -s $url | grep HTTP
done
オンラインツール
- HTTPステータスコードチェッカー
- リダイレクトチェッカー
- GTmetrix(すべてのリソースのステータスコードを表示します)
一括チェック(SEOツール)
- Screaming Frog SEO Spider:サイト全体をクロールし、ステータスコードで絞り込めます
- Ahrefs Site Audit:404、500、リダイレクトチェーンを表示します
- Google Search Console:カバレッジレポートに、インデックスの問題が表示されます
よくあるケース
ケース1:商品ページを削除した
良くない方法:
Old product URL: 404 Not Found
結果:リンクエクイティを失い、ユーザー体験も悪くなります
より良い方法:
Old product URL → 301 → Similar product or category page
結果:順位が保たれ、ユーザー体験も良くなります
ケース2:サイトの移行
誤り:
oldsite.com/page → 302 → newsite.com/page
結果:古いURLが検索結果に残ります
正しい方法:
oldsite.com/page → 301 → newsite.com/page
結果:新しいURLが、検索結果で古いURLに置き換わります
ケース3:メンテナンスモード
誤り:
example.com → 404 Not Found (site offline)
結果:Googleがサイトを壊れていると判断し、インデックスから外す場合があります
正しい方法:
example.com → 503 Service Unavailable
Retry-After: 3600
結果:Googleが一時的なものだと理解し、再試行します
ケース4:プラグインの競合(WordPress)
症状:管理ページで、ランダムに500エラーが出る
診断:
/wp-content/plugins/を/wp-content/plugins-disabled/に名前変更する- サイトが動けば、名前を元に戻して、プラグインを1つずつ無効にする
- 競合しているプラグインを特定する
対処:問題のあるプラグインを更新するか、置き換える
Surmado(スルマド)が確認すること
Site Auditが調べる項目:
- 内部リンクの404エラー
- 500や503のエラー(サーバーの問題)
- リダイレクトチェーン(301が何度も続く)
- 301にすべき302のリダイレクト
- ソフト404(「見つかりません」のページが200を返している)
クイックリファレンス
SEOに良いもの:
- 200 OK
- 301(恒久的な移動)
- 410(削除したコンテンツ)
注意が必要なもの:
- 302(恒久的なら301に変更)
- 404(内部リンクを修正し、被リンクがあればリダイレクト)
すぐに修正するもの:
- 500(サーバーエラー)
- 503(数時間以内に解消すべきもの)
- ソフト404(正しい404を返す)