2026年10月8日に、RFC 9110 HTTP SemanticsとGoogleのHTTP status codesガイドを再読しました。301・302と307・308は永続性とメソッド保持を分け、404・410・503は対象なしや一時障害として扱います。ステータスだけで順位や掲載継続を保証せず、変更時は実際のstatus、Location、応答本文、転送先、復旧時刻を確認します。
古いURLを整理するとき、先に決めたいのは「評価を渡したいか」ではなく、その情報が今どこにあり、今後どのURLを使ってほしいかです。HTTPの宣言、検索サービスの処理、人が見たときの案内を分けると、転送と削除を選びやすくなります。
30秒で要点
- 301・308は恒久的な移転、302・307は一時的な移転です。自動転送時のメソッドの扱いも確認します。
- 404は現在見つからない場合、410は利用できなくなった状態が恒久的と考えられる場合です。復旧時期が未定というだけで410にしません。
- Googleのクロール・インデックス処理はHTTPの規格とは別の層です。応答コードだけで順位や評価の移転を保証できません。
同じ番号を三つの層に分けて読む
表が収まらない場合は、横にスクロールできます
| 層 | 確かめる問い | 根拠の役割 |
|---|---|---|
| HTTPの意味 | 移転、一時停止、見つからない状態のどれか | RFC 9110の応答コードの定義 |
| Googleの処理 | クロールやインデックスでどう扱われるか | Googleのクローラー向け公開資料 |
| 自社の運用 | 誰が理由を決め、いつ見直すか | コンテンツの責任者、移転先、障害記録 |
移転先があるなら、期間とメソッドを確かめる
表が収まらない場合は、横にスクロールできます
| 状態 | 候補 | 自動転送に関する注意 |
|---|---|---|
| 恒久的に別のURLへ移る | 301 | POSTがGETへ変わる場合がある |
| 一時的に別のURLを使う | 302 | POSTがGETへ変わる場合がある |
| 一時的な転送でメソッドを保つ | 307 | 自動転送時にメソッドを変更しない |
| 恒久的な転送でメソッドを保つ | 308 | 自動転送時にメソッドを変更しない |
ここでいうメソッドは、取得のGET、送信のPOSTなどです。記事の閲覧URLの移転と、フォームやAPIの送信先の移転では検証条件が違います。メソッドを保つ転送でも、送信先への再送によって二重登録などが起きないかは別に確認が必要です。利用するクライアントとサーバーで実際の挙動を確かめてから適用します。
Googleの公開説明は、301と308について転送先の内容を処理する際の強いシグナル、302と307について弱いシグナルという違いを示しています。これは「302にはSEO上の効果が一切ない」「301なら順位がそのまま移る」という二択ではありません。HTTPの期間・処理上の意味に合うコードを選んだうえで、実際のクロールや正規URLの観測を続けます。
移転先は、元のページで読者が必要としていた情報を引き継いでいるかを確認しましょう。「古いページが多いので全部トップページへ」という方法は、読者の目的を満たす移転先かどうかを検討していません。
404・410・503は「戻る予定がない」の同義語ではない
表が収まらない場合は、横にスクロールできます
| コード | 宣言する状態 | 判断に必要な事実 |
|---|---|---|
| 404 | 現在の対象が見つからないなど | URL誤りか、削除か、非公開を隠す応答か |
| 410 | 利用できず、その状態が恒久的と考えられる | 終了判断と、代替情報の有無 |
| 503 | 一時的な過負荷やメンテナンス等で処理できない | 障害の範囲、責任者、次の確認時点 |
404は、それだけで一時的か永久かを決めるコードではありません。410は終了の見通しを含みます。503には再試行の目安を示すRetry-Afterを付けられますが、復旧日時の保証にはなりません。
復旧見込みがまだ分からない障害では、担当者と次の確認時点を決めます。「日時が未定」から「記事を永久に終了した」へ飛躍させず、障害対応とコンテンツ終了を別の判断として残してください。
Googleの資料では、429を除く4xxをクロール処理上同様に扱うと説明しています。これは404と410のHTTP上の意味まで同じということではありません。5xxや429はクロールを一時的に遅くする一方、応答が続けばインデックスから除かれる場合があります。「503なら掲載が永久に保たれる」という運用はできません。
401・403は認証やアクセス拒否の意味を持ちます。Googleはクロール速度を落とす目的でそれらを使わないよう案内しています。ただし、認証が必要な資源に正しく認証を設けることまでやめる、という意味でもありません。
架空の3URLで判断票を埋める
以下は説明のための架空例です。実サイトの応答や移行成果を示しません。
表が収まらない場合は、横にスクロールできます
| URLと事実 | 判断と理由 | 適用前に確かめるもの | 適用後の観測 |
|---|---|---|---|
/guide-old の内容を /guide へ統合し、元へ戻さない | 閲覧GETの恒久移転として301候補 | 新ページに旧情報があるか、転送先が200か | 旧URLの応答、Location、新ページ、内部リンク |
/event-2025 は終了し、引き継ぐページがない | 終了が確定しているので410候補 | 開催履歴を残す業務要件がないか | 実応答と利用者への終了案内 |
/booking がメンテナンス中、次の判定は15時 | 一時停止として503候補 | 復旧担当、告知、送信中データの扱い | 復旧後の200、予約機能、誤送信の有無 |
この表の一番右は「順位が上がるか」だけを見ていません。URLの移転なら、まず意図した応答・移転先・本文が成立しているかを見ます。予約の障害なら、画面の表示に加え、業務の機能が戻ったかを確認します。
恒久移転でもPOSTを扱うURLなら、最初の例の301を無条件に流用しません。メソッドを保つ要件と送信の重複防止を担当者へ渡し、308を含めた設計・検証に切り替えます。
数字の選択と実際の応答を別々に確認する
- 対象URL、変更理由、恒久・一時の判断、代替情報を一行にします。
- 実装担当者が、対象のメソッドと転送先を確認します。送信を伴う操作は検証用データ・環境を使います。
- ページ本文の見た目だけでなく、返るコードとLocation、転送後のコードを調べます。
- 元のURLを参照する内部リンク、サイトマップ、案内文を確認します。
- 日時と確認したURLを記録し、再確認担当を決めます。検索側の処理反映は、実応答の修正完了と分けて観測します。
「見つかりません」という本文なのに200を返す状態や、転送先がさらに転送を重ねる状態も確認対象です。200が返ったことだけで、Googleに掲載されるとは限りません。
手元の対象を三つ選び、上の判断票の「事実」を埋めてみてください。埋まらない項目はコード選択の前に必要な確認事項です。数値を暗記するより、情報の行き先と継続方針を説明できることを目標にします。
クローラー制御と非公開化の違いは、robots.txtの役割で扱っています。応答コードを認証や公開範囲の代わりにしないための関連テーマです。