301 と 302 リダイレクトの違い

恒久的な移動と一時的な移動、そしてメソッドを保持する 308・307 までまとめます。

301 Moved Permanently は、リソースが恒久的に新しい URL へ移されたことを意味します。検索エンジンはこの信号を見て、旧 URL の順位やリンク評価を新 URL へ引き継ぎます。ドメイン移転や HTTP→HTTPS 切替のように、元に戻さない移動に使います。

302 Found は一時的な移動です。元の URL はそのまま有効なので、検索エンジンは順位を移しません。メンテナンスページへの一時的な迂回やログイン後の移動のように、すぐ元に戻る状況に適しています。

一つ注意すべきはメソッドの保持です。301・302 は歴史的にブラウザが POST を GET に変えることもありました。メソッドを必ず保持する必要があるなら、恒久的な移動には 308、一時的な移動には 307 を使い、POST の後に結果ページへ送るときは 303 See Other を使います。