302 リダイレクトは、「この URL は一時的に別の場所にあります」とブラウザに伝える HTTP ステータスコードです。元の URL が将来的に復活する可能性がある場合や、クリック計測を正確に行いたい場合に使用します。
302 と 301 の実務上の最大の違いは、ブラウザのキャッシュ動作です。 301 はブラウザがリダイレクト先を記憶し、次回から直接アクセスしますが、 302 は毎回サーバーに問い合わせます。この性質が短縮 URL サービスにとって決定的に重要で、 Bitly をはじめとする主要サービスの多くが 302 を採用しています。毎回サーバーを経由することで、クリック数、アクセス元、デバイス種別などのデータを漏れなく取得できるためです。
SEO の観点では、 302 は検索エンジンに「元の URL を引き続きインデックスしてほしい」というシグナルを送ります。そのため、恒久的な URL 移転に 302 を使い続けると、新 URL がいつまでもインデックスされない問題が発生します。 Google の John Mueller 氏は「長期間の 302 は最終的に 301 として扱われる場合がある」と述べていますが、意図的に 301 を使う方が確実です。
HTTP/1.1 の仕様上、 302 にはリクエストメソッドの変更に関する曖昧さがありました。 POST リクエストを 302 でリダイレクトすると、ブラウザによっては GET に変換してしまう問題です。この曖昧さを解消するために、 307 リダイレクト (メソッドを保持する一時的リダイレクト) が後に定義されました。関連書籍は Amazon でも探せます。