HTTPステータスコードがSEOに実際に意味すること
クロール、インデックス登録、リダイレクト、インデックス削除に影響するレスポンスコードの実践ガイド — すべてのコードをランキング上の危機として扱わないために。
目次
- ステータスコードだけでSEOの全体像は決まらない
- 200 OK: インデックス可能だが、自動的に価値があるわけではない
- 301と308: 恒久的なリダイレクト
- 302と307: 一時的なリダイレクト
- 304 Not Modified: 有用だが、ランキングの近道ではない
- 404 Not Found: ページがなくなったときには通常のこと
- 410 Gone: 404より強いが、慎重に使う
- 401、403、ブロックされたアクセス
- 429 Too Many Requests: 影響を伴うクロール制御
- 500、502、503、504: 信頼性のシグナル
- リダイレクトチェーンとループには特別な注意が必要
- 実践的な優先順位リスト
- 適切なコードを選ぶためのシンプルなルール
HTTPステータスコードは、SEOの助言が妙に大げさになりがちなテーマのひとつです。ひとつの404が「オーソリティの喪失」とされ、リダイレクトが「リンクエクイティの漏出」と呼ばれ、500はデプロイ中の6分間だけだったとしても緊急事態になります。
より冷静に言えば、HTTPステータスコードは指示でありシグナルです。ブラウザ、ボット、キャッシュ、その他のクライアントに対して、URLをリクエストしたときに何が起きたのかを伝えます。検索エンジンはそれらのレスポンスを使って、ページをクロールするか、インデックスするか、保持するか、置き換えるか、削除するかを判断します。
ただし、すべてのステータスコードが同じSEO上の重みを持つわけではありません。日常的なものもあれば、大規模になって初めて問題になるものもあります。すぐに対応すべきものも少数あります。
ステータスコードだけでSEOの全体像は決まらない
ステータスコードはHTTPレスポンスの一部にすぎません。検索エンジンはほかにも次のような要素を見ています。
- リダイレクト後の最終URL
- canonicalタグ
- robotsディレクティブ
- ページコンテンツ
- 内部リンク
- サイトマップのシグナル
- 過去のクロール挙動
- 長期的なサーバー信頼性
つまり、「ページが200を返す」ことと「ページがインデックス可能である」ことは同じではありません。URLが200を返していても、noindexでブロックされていたり、別の場所にcanonical指定されていたり、コンテンツが薄いまたは空であるためにソフト404として扱われたりすることがあります。
同様に、404が自動的に悪いわけでもありません。削除されたページは通常、404または410を返すべきです。SEO上の問題は、存在しないページがあることではありません。重要なページが誤ったコードを返していること、またはサイトが矛盾したシグナルを送っていることです。
本番環境でこれをデバッグする場合、ブラウザに表示される内容だけに頼らないでください。実際のレスポンスチェーンを確認しましょう。生のヘッダーチェック、コマンドラインでのリクエスト、リダイレクトトレースは、目に見えるページより多くの情報を教えてくれます。実践的な手順は、本番環境でリダイレクトとHTTPヘッダーをデバッグするための小さなツールキットで取り上げました。
200 OK: インデックス可能だが、自動的に価値があるわけではない
200 OKレスポンスは、リクエストが成功し、サーバーがコンテンツを返したことを意味します。SEOでは、クロールされ、場合によってはインデックスされてほしいページに対する通常のレスポンスです。
しかし、200はインデックス登録を保証しません。ページが重複している、品質が低い、ページ単位のディレクティブでブロックされている、リンク経由で発見できない、といった場合、検索エンジンはインデックスしない判断をすることがあります。
200レスポンスで最もよくあるSEO上のミスは、実際にはページではないものに対して200を返すことです。
- 空の検索結果ページ
- 「申し訳ありません、利用できません」と表示する削除済み商品ページ
- 意味のあるコンテンツがない地域ページ
- 外枠だけをレンダリングする壊れたテンプレート
- 削除またはリダイレクトすべき期限切れの掲載ページ
これらはソフト404になることがあります。ソフト404とは、サーバーは「OK」と言っているのに、コンテンツがクローラーに対して「ここには有用なものがない」と伝えている状態です。検索エンジンはそのURLを、実質的に存在しないページのように扱うことがあります。
よい目安はこうです。人間が「このページはもう存在しない」と言うなら、サーバーはおそらく200を返すべきではありません。
301と308: 恒久的なリダイレクト
301 Moved Permanentlyと308 Permanent Redirectは、URLが恒久的に移動したことをクライアントに伝えます。SEOでは、ページに明確な移行先がある場合に適した手段です。
- HTTPからHTTPSへの移行
- 古いスラッグから新しいスラッグへ
- 統合した記事からより強い記事へ
- 販売終了商品から近い後継商品へ
- 末尾スラッシュやcanonicalホストの正規化
検索エンジンは通常、恒久的なリダイレクトを通じて正規化シグナルを引き継ぎます。平たく言えば、古いURLを適切な新しいURLへリダイレクトすれば、検索エンジンは古いページに関連する多くのシグナルを統合できます。
リスクは、301が本質的に有害であることではありません。リスクはマッピングの質が低いことです。
悪いリダイレクトパターンには次のようなものがあります。
- すべての古いURLをホームページへリダイレクトする
- 削除済みページを漠然と関連するカテゴリページへリダイレクトする
- A → B → C → D のようなチェーンを作る
- ブロック、noindex、または別の場所へcanonical指定されているURLへリダイレクトする
- モバイルとデスクトップで一貫性のないリダイレクトを行う
恒久的なリダイレクトは、ひとつの問いに答えるべきです。「このURLの現在の最良の同等ページは何か?」同等ページがないなら、404または410のほうが正直かもしれません。
302と307: 一時的なリダイレクト
302 Foundと307 Temporary Redirectは、移動が一時的であることを示します。元のURLは、時間が経っても主要なURLであり続けると想定されます。
一時的な状況に限って、一時的なリダイレクトを使いましょう。
- 短期キャンペーンのルーティング
- canonical URLを置き換えるべきではないジオロケーションやA/Bテスト
- 一時的なメンテナンス代替ページ
- 頻繁に変わる在庫や提供可否のフロー
SEO上の主な問題は曖昧さです。「一時的な」リダイレクトが何か月、何年も続くと、検索エンジンは最終的に移行先をcanonicalとして扱うことがあります。ただし、その解釈に依存すべきではありません。
移動が恒久的なら恒久的なリダイレクトを使います。一時的なら一時的なリダイレクトを使います。退屈な答えこそ正しい答えです。
304 Not Modified: 有用だが、ランキングの近道ではない
304 Not ModifiedはHTTPキャッシュの一部です。クライアントがすでに持っているバージョン以降、そのリソースが変更されていないことを伝えます。
このコードはクロール効率とパフォーマンスの衛生管理に役立ちます。不要なデータ転送を減らし、繰り返しのリクエストを軽くできます。ただし、単純な意味で直接的なランキング要因ではありません。
304はインフラ品質だと考えてください。クライアントとクローラーがサイトと効率的にやり取りする助けになります。弱いコンテンツを強いコンテンツに変えるものではありません。
404 Not Found: ページがなくなったときには通常のこと
404 Not Foundは、サーバーがリクエストされたリソースを見つけられないことを意味します。これは自動的にSEO上の大惨事になるわけではありません。
404が適切なケースは次のとおりです。
- ページが削除され、代替がない
- 存在しないURLに外部から誤ったリンクが張られている
- ユーザーがURLを入力し間違える
- 古いテストURLやステージングURLが、そもそも存在するべきではなかった
検索エンジンは、継続的に404を返すURLを最終的にインデックスから削除します。通常、それは望ましい結果です。
重要なURLに影響する404は修正すべきです。
- 価値あるバックリンクがあるページ
- 意味のあるトラフィックを受けているURL
- 移行中に誤って削除された重要ページ
- 存在しないページを指す内部リンク
- 404を返すサイトマップ内のURL
すべての404をホームページへリダイレクトしないでください。ユーザーにも検索エンジンにも混乱を招きます。関連する代替ページがあるならリダイレクトします。ないなら404を返し、人間向けには有用なエラーページを用意します。
410 Gone: 404より強いが、慎重に使う
410 Goneは、そのリソースが意図的に削除され、戻る見込みがないことを意味します。
SEOでは、URLをより明確に削除したい場合に410が役立つことがあります。
- 期限切れの法務関連ページ
- 削除されたユーザープロフィール
- 削除されたスパムページ
- 代替のない古いランディングページ
検索エンジンは、410を404より強い削除シグナルとして扱うことがあります。実務上の違いは、結果ではなく速度であることが多いです。継続的な404と410のどちらも、インデックス削除につながり得ます。
ページが恒久的になくなったと確信できる場合に410を使いましょう。ページが戻る可能性があるなら、404または一時的な処理のほうが安全な場合があります。
401、403、ブロックされたアクセス
401 Unauthorizedは認証が必要であることを意味します。403 Forbiddenは、サーバーがリクエストを理解したもののアクセスを拒否していることを意味します。
SEOでは、これらのコードは通常、保護されたコンテンツの通常のクロールとインデックス登録を防ぎます。非公開ダッシュボード、アカウント領域、ステージング環境、公開インデックスされるべきではない有料コンテンツでは、それで問題ありません。
問題は、公開ページが次のような理由で誤ってクローラーに401または403を返す場合に発生します。
- ボット保護ルール
- 誤設定されたファイアウォール
- 国別ブロック
- CDNルール
- 期限切れの認証前提
- 本番環境に持ち込まれたステージング制限
ログイン中のあなたには動作するページでも、クローラーには動作しない場合があります。必ず未認証のクライアントとしてテストしてください。
429 Too Many Requests: 影響を伴うクロール制御
429 Too Many Requestsは、クライアントがレート制限されていることを伝えます。ボットが実際にインフラに過度な負荷をかけている場合には適切なことがあります。
ただし、429を安易に使うとクロール活動を減らす可能性があります。検索エンジンはレート制限に繰り返し遭遇すると、リクエストを減らすことがあります。その結果、新しいコンテンツや更新されたコンテンツの発見が遅れる可能性があります。
レート制限が必要なら、精密に行いましょう。主要な検索クローラーを誤ってブロックしないようにしてください。サーバーログを使って、攻撃的なスクレイピングと正当なクロールを区別します。可能であれば、礼儀正しいクライアントがいつ戻ればよいか分かるように、Retry-Afterヘッダーを返します。
500、502、503、504: 信頼性のシグナル
5xx系は、サーバーが有効なリクエストを処理できなかったことを意味します。
よくある例は次のとおりです。
500 Internal Server Error502 Bad Gateway503 Service Unavailable504 Gateway Timeout
一時的な5xxレスポンスは起こり得ます。短時間のデプロイ問題は通常、壊滅的ではありません。継続的な5xxエラーは別です。クローラーに対してサイトが信頼できないことを伝え、検索エンジンはクロール速度を下げたり、繰り返し取得できないページを一時的に削除したりする可能性があります。
503 Service Unavailableは、計画メンテナンスに適したコードです。特にRetry-Afterヘッダーと併用すると有効です。「これは一時的です。後で戻ってきてください」と伝えます。メンテナンスページに200を返すのはより悪く、クローラーがメンテナンス内容をページ本文として扱う可能性があります。
障害が重要なURLに影響した場合は、復旧を監視してください。元のページが再び200を返していることを確認します。キャッシュされたエラーページ、リダイレクトループ、一時的なメンテナンステンプレートになっていないかも確認しましょう。
リダイレクトチェーンとループには特別な注意が必要
リダイレクトは普通のことです。リダイレクトチェーンは避けられる負債です。
古いURLから新しいURLへの単純なリダイレクトは問題ありません。5段階のリダイレクトチェーンはレイテンシを増やし、クロールバジェットを浪費し、リクエストが失敗する箇所を増やします。ループはさらに悪く、クライアントが最終ページに到達できません。
SEO移行では、リダイレクトマップを作成し、公開前にテストしましょう。廃止される各URLは、理想的には1ホップで最終的な移行先に解決されるべきです。公開後は、古いURL、高トラフィックURL、バックリンクの多いURLをサンプリングして確認します。
ここは、パフォーマンスとSEOが重なる領域でもあります。リダイレクトは実際のページ読み込み開始を遅らせます。クロール可能性とあわせてユーザー体験を確認しているなら、慌てずにLighthouseレポートを読むことで、深刻な読み込み問題とノイズの多い診断を切り分けやすくなります。
実践的な優先順位リスト
ステータスコードを監査する場合、すべての警告を同じ重みで扱わないでください。ここから始めましょう。
- 重要なURLが5xxを返している — まずサーバー信頼性を修正します。
- インデックス可能なページが誤ったステータスを返している — 意図した200レスポンスを復旧します。
- リダイレクトチェーンとループ — 1ホップのリダイレクトに簡素化します。
- サイトマップ内のURLが非200レスポンスを返している — サイトマップを清潔に保ちます。
- 404への内部リンク — ナビゲーションとコンテンツ内リンクを修正します。
- ソフト404のパターン — 空または削除済みのページに200を返すのをやめます。
- 意図しないクローラーブロック — 予期しない401、403、429レスポンスを調査します。
目標は、404がゼロのサイトではありません。それは非現実的で、多くの場合は不要です。目標は、各URLが正直で一貫したレスポンスを返すサイトです。
<!-- tool-cta:start -->
💡 試してみましょう: クローラーが見る完全なチェーンを表示する Redirect Checker で、あなたのURLが実際に返すステータスコードを確認できます。
<!-- tool-cta:end -->
適切なコードを選ぶためのシンプルなルール
迷ったら、ユーザーに見える実態に合ったコードを選びます。
- ページが存在し、利用可能であるべき:
200 - ページが恒久的に移動した:
301または308 - ページが一時的に移動した:
302または307 - ページが存在せず、代替もない:
404 - ページが意図的に永久に削除された:
410 - ページが一時的に利用できない:
503 - リクエストがブロックされている、または非公開である:
401または403
検索エンジンは、通常のWeb上の混乱を扱うのが得意です。SEO上の問題を引き起こすのは、大規模な不整合です。恒久的な移動を一時的と示すこと、削除済みページが有効であるふりをすること、サーバーエラーを放置すること、前回の移行以来だれもテストしていないリダイレクトロジックなどです。
HTTPステータスコードは、魔法のSEOレバーではありません。Webの基本的なセマンティクスです。正直に使えば、SEO上の利点の多くは自然についてきます。