302 Found は、対象のリソースが一時的に別の URL に存在することを示します。その URL は Location ヘッダーで示されます。移動は一時的なものなので、クライアントは以降のリクエストでも元の URL を使い続けるべきです。
302 はデフォルトではキャッシュされず、Cache-Control や Expires で明示的に許可された場合にだけ再利用されます。そのため、ログインしていないユーザーをログインページに送るなど、訪問者の状況に応じたリダイレクトに安心して使えます。
301 と同じく、ユーザーエージェントは 302 をたどる際に POST を GET に変更してもよく、ブラウザーは実際にそうします。これは HTTP/1.0 が意図していなかった動作です。そのため HTTP/1.1 では、常に GET に切り替える 303 See Other と、メソッドを決して変更しない 307 Temporary Redirect が追加されました。今でも多くのフレームワークが、デフォルトのリダイレクトに 302 を使っています。
レスポンス例
HTTP/1.1 302 Found
Date: Fri, 06 Nov 2026 10:15:32 GMT
Location: https://www.example.com/login?next=%2Faccount
Cache-Control: no-store
Content-Length: 0 SEO とリダイレクトチェック
Google は 302 を、リダイレクト先を正規 URL とすべき弱いシグナルとして扱うため、通常は元の URL をインデックスと検索結果に残します。短期間のキャンペーン、メンテナンス、A/B テストなど、本当に一時的な状況ではこれが正しい動作です。長期間設定されたままの 302 は、いずれ恒久的なリダイレクトのように扱われることもありますが、それに頼らず、恒久的な移動には 301 または 308 を使ってください。
SEO でよくある不具合が、サイト全体の HTTP から HTTPS へのリダイレクトやドメインのリダイレクトを、誤って 302 で設定してしまうケースです。リダイレクトチェーンチェッカーと 301 リダイレクトチェッカーは一時的なホップを警告するので、こうした問題を見つけられます。
よくある原因と主な用途
- ログインが必要なページが、ログインしていない訪問者を
/login?next=...に送っている場合。 - 言語、国、デバイスの判定によって、訪問者をローカライズ版やモバイル版に送っている場合。スマートフォンと PC にそれぞれ何が返されるかは、モバイルとデスクトップのリダイレクト比較ツールで比べられます。
- クリック計測やアフィリエイトのリンクが、すべてのクリックを計測サーバーに通すために 302 を使っている場合。転送先は短縮 URL 展開ツールで展開できます。
- 恒久的な移動を誤って 302 で設定している場合。たとえば、ステータスを指定しない Apache の
Redirectディレクティブや、多くのフレームワークでデフォルトが 302 になっているredirect()ヘルパーです。301 または 308 に変更してください。