メインコンテンツにスキップ

HTTPステータスコード:404、500、503の解説

10 分で読める

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
  • サーバーログを確認する

直し方:

  1. 内部リンクが切れている → リンクを更新する
  2. 被リンクのある削除済みページ → 関連するページに301でリダイレクトする
  3. URLの打ち間違い → 正しい綴りに301でリダイレクトする
  4. 正当な理由でなくなったコンテンツ → 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)

直し方:

  1. サーバーのエラーログ(/var/log/apache2/error.log)を確認する
  2. WordPressのデバッグモードを有効にする:
    define('WP_DEBUG', true);
    define('WP_DEBUG_LOG', true);
  3. プラグインを無効にしてテストする
  4. PHPのメモリ上限を引き上げる
  5. ホスティング会社のサポートに連絡する

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 再試行される 一時的に 一時停止 早めに修正する(数日ではなく数時間で)

ステータスコードの確認方法

ブラウザの開発者ツール

  1. 開発者ツールを開きます(F12)
  2. Networkタブを開きます
  3. ページを再読み込みします
  4. 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

オンラインツール

一括チェック(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エラーが出る

診断:

  1. /wp-content/plugins/を/wp-content/plugins-disabled/に名前変更する
  2. サイトが動けば、名前を元に戻して、プラグインを1つずつ無効にする
  3. 競合しているプラグインを特定する

対処:問題のあるプラグインを更新するか、置き換える


Surmado(スルマド)が確認すること

Site Auditが調べる項目:

  • 内部リンクの404エラー
  • 500や503のエラー(サーバーの問題)
  • リダイレクトチェーン(301が何度も続く)
  • 301にすべき302のリダイレクト
  • ソフト404(「見つかりません」のページが200を返している)

クイックリファレンス

SEOに良いもの:

  • 200 OK
  • 301(恒久的な移動)
  • 410(削除したコンテンツ)

注意が必要なもの:

  • 302(恒久的なら301に変更)
  • 404(内部リンクを修正し、被リンクがあればリダイレクト)

すぐに修正するもの:

  • 500(サーバーエラー)
  • 503(数時間以内に解消すべきもの)
  • ソフト404(正しい404を返す)

→ 関連:開発者向けGEO実装チェックリスト | llms.txt完全ガイド | よくある問題のトラブルシューティング