Webサイトにアクセスした際に別のURLへ自動的に転送される「リダイレクト」は、様々なHTTPステータスコードによって実現されています。
その中でもステータスコード302は一時的なリダイレクトを示すコードであり、SEOへの影響や301との使い分けを理解することがWeb運用の重要なポイントです。
本記事では、ステータスコード302の正確な意味とLocationヘッダーによるリダイレクトの仕組み、SEOへの影響まで詳しく解説します。
301との違いや適切な使い分けについても取り上げますので、ぜひ参考にしてください。
ステータスコード302(Found)とは?基本的な意味と定義
それではまず、ステータスコード302の基本的な意味とHTTPリダイレクトにおける役割について解説していきます。
「302 Found」はHTTP標準で定義されているリダイレクトコードの一つであり、リクエストされたリソースが一時的に別のURLに存在することをクライアントへ通知するコードです。
「一時的」という点が重要であり、元のURLが将来的に再び有効になる可能性があることを示しています。
302 Foundの特徴まとめ
意味:リクエストされたリソースが一時的に別の場所にある
Locationヘッダー:リダイレクト先のURLを含む
キャッシュ:基本的にキャッシュされない(一時的なため)
SEO:リンクの評価(PageRank)はリダイレクト元に留まる
HTTPメソッド:リダイレクト後はGETに変わることがある
Locationヘッダーとリダイレクトの仕組み
302レスポンスにはLocationヘッダーが含まれており、そのヘッダーに指定されたURLがリダイレクト先となります。
ブラウザは302レスポンスを受け取るとLocationヘッダーのURLへ自動的に新しいリクエストを送信するため、ユーザーにはシームレスなリダイレクトとして体験されます。
サーバー側ではレスポンスヘッダーに「Location: https://new-url.example.com」を設定することでリダイレクトを実装できるでしょう。
302と301の使い分け
301(Moved Permanently)が恒久的なURLの移転を示すのに対し、302は一時的な転送を示します。
メンテナンス中の一時的な別ページへの誘導や、ログイン後のリダイレクトなど一時的な転送には302が適切です。
一方でサイトのURL変更やドメイン移転など恒久的な移転には301を使用することで、SEO的な評価も適切に引き継ぐことができるでしょう。
| コード | 種類 | SEO評価の引き継ぎ | 主な用途 |
|---|---|---|---|
| 301 | 恒久的リダイレクト | 引き継ぐ | URL変更・ドメイン移転 |
| 302 | 一時的リダイレクト | 引き継がない | メンテナンス・一時転送 |
| 307 | 一時的リダイレクト | 引き継がない | HTTPメソッドを維持した一時転送 |
| 308 | 恒久的リダイレクト | 引き継ぐ | HTTPメソッドを維持した恒久転送 |
302リダイレクトのSEOへの影響
続いては、302リダイレクトがSEOに与える影響と注意点を確認していきます。
302リダイレクトとPageRankの関係
Googleなどの検索エンジンは、302リダイレクトを「一時的なもの」として処理するため、リンクの評価(PageRank・リンクジュース)はリダイレクト先ではなくリダイレクト元のURLに留まります。
恒久的なURL移転で誤って302を使用すると、新しいURLへのSEO評価の移転が行われず、検索順位への悪影響が続く可能性があるでしょう。
URL変更を行う際は必ず301を使用し、302は本当に一時的な転送にのみ限定して使用することが重要です。
検索エンジンのクロールと302
Googlebotは302リダイレクトに遭遇すると、元のURLも引き続きクロール対象として認識します。
301の場合は新しいURLをインデックスの正規URLとして認識しますが、302では元のURLが依然として正規URLとして扱われる傾向があります。
長期間にわたって302を維持している場合、Googleが状況を判断して301と同様の処理を行う場合もありますが、意図通りの動作を保証するためには適切なコードを選択することが大切でしょう。
302リダイレクトが適切な使用シーン
302が適切に使われるシーンとしては、サイトのメンテナンス中に別のメンテナンスページへ一時的に誘導する場合があります。
また、A/Bテスト中に一部のユーザーを別のバリアントページへ誘導する際や、ログイン前後の画面遷移など、一時的かつ動的なリダイレクトにも適しています。
キャンペーンページへの一時的な誘導など、一定期間後に元のURLへ戻す予定がある場合にも302が正しい選択となるでしょう。
302リダイレクトの実装方法
続いては、302リダイレクトの実際の実装方法を主要な環境別に確認していきます。
ApacheとnginxでのHTTPサーバー設定
Apacheでは.htaccessファイルまたはhttpd.confで「Redirect 302 /old-path https://new-url.example.com」と記述することで302リダイレクトを設定できます。
nginxでは「return 302 https://new-url.example.com;」または「rewrite」ディレクティブを使用して302リダイレクトを実装します。
デフォルトのRedirectディレクティブはステータスコードを省略すると302として処理されるため、明示的にコードを指定することで意図を明確にするでしょう。
プログラミング言語での302レスポンスの返し方
PHPでは「header(“Location: https://new-url.example.com”, true, 302);」でLocationヘッダーとステータスコードを同時に設定できます。
PythonのFlaskでは「return redirect(url, 302)」、Node.jsのExpressでは「res.redirect(302, url)」という形式で302リダイレクトを返すことができます。
フレームワークによってはデフォルトのリダイレクト関数が302を返す場合もあるため、常にステータスコードを明示的に指定する習慣をつけることが大切でしょう。
302リダイレクトと307の違い
302と307は共に一時的なリダイレクトを示しますが、HTTPメソッドの扱いに違いがあります。
302ではリダイレクト後にGETメソッドへの変換が許可されていますが、307ではリダイレクト前後で同じHTTPメソッドを維持することが仕様で定められています。
POSTリクエストを一時的に別のURLへリダイレクトしたい場合、メソッドを変えたくなければ307を、GETへの変換が許容される場合は302を使うとよいでしょう。
まとめ
ステータスコード302(Found)はリクエストされたリソースが一時的に別のURLに存在することを示すリダイレクトコードです。
SEO的には301と異なりリンク評価がリダイレクト元に留まるため、恒久的なURL変更には必ず301を使用し、302は真に一時的な転送にのみ使用することが重要です。
メンテナンス中の一時誘導やA/Bテストなど、302が適切な場面を正確に理解した上で使い分けることが、健全なWeb運用の基本となるでしょう。