「リダイレクトを設定したいけれど、301と302のどちらを使えばいいのか分からない」「以前301のつもりで設定した302リダイレクトを放置していて、SEOに悪影響が出ていないか不安」——サイト運用に関わっていると、こうした疑問に一度はぶつかるものです。リダイレクトは種類を1つ間違えるだけで検索順位に影響しかねないため、Web担当者にとっては地味ながら重要なテーマです。
この記事では、302リダイレクトの定義から301リダイレクトとの違い、SEOへの影響、具体的な設定方法(.htaccess・PHP・WordPressプラグイン)、そして正常に動作しない場合のトラブル対処まで、実務で必要な知識を一通り整理します。技術的な内容も含みますが、専門外の担当者でも判断できるよう、できるだけ平易に解説していきます。
302リダイレクトとは
302リダイレクトとは、アクセスされたURLを別のURLへ「一時的に」転送するための仕組みです。「今はこちらのページを見せますが、元のURLは今後も使い続けます」という状態を表します。
HTTPステータスコードにおける位置づけ
Webサーバーは、ブラウザからのリクエストに対して必ず「HTTPステータスコード」と呼ばれる3桁の数字を返しています。正常にページを表示できたときの「200 OK」や、ページが存在しないときの「404 Not Found」は目にしたことがある方も多いでしょう。
このうち300番台(3xx)は「リダイレクト(転送)」を意味するグループです。302はこの3xxに属し、正式名称は 「302 Found」 です。かつては「Moved Temporarily(一時的に移動)」と呼ばれていましたが、現在の仕様では「Found」という名称が使われています。
主なリダイレクト系ステータスコードは次の通りです。
| コード | 名称 | 意味 | 転送の性質 |
|---|---|---|---|
| 301 | Moved Permanently | 恒久的に移動した | 永久 |
| 302 | Found | 一時的に別の場所にある | 一時的 |
| 303 | See Other | 別のURLをGETで参照 | 一時的 |
| 307 | Temporary Redirect | 一時的リダイレクト(メソッド保持) | 一時的 |
| 308 | Permanent Redirect | 恒久的リダイレクト(メソッド保持) | 永久 |
302は、これらの中でも「一時的な転送」を表す最も基本的なコードという位置づけです。
「一時的な転送」を示す仕組み
302リダイレクトが返されると、サーバーはレスポンスヘッダーの中に 「Location」 というフィールドを含め、そこに転送先のURLを記載します。ブラウザはこのLocationヘッダーを読み取り、自動的に転送先のページへアクセスし直します。ユーザーから見れば、元のURLを開いたつもりが、意識しないうちに別のページが表示される、という動きになります。
ここで重要なのが「一時的」というシグナルの意味です。MDN(Mozillaの技術ドキュメント)でも、302は「リソースが一時的に別のURLにあるが、元のURLは今後も使い続けるべきである」ことを示すと説明されています。つまり302は、検索エンジンやブラウザに対して「元のURLをこれからも正規のURLとして扱ってください」と伝えるコードなのです。
この「元のURLを残す」という性質が、後述するSEOへの影響や301との使い分けに直結します。
301リダイレクトとの違い
302とよく比較されるのが301リダイレクトです。両者は「URLを転送する」という動作こそ同じですが、検索エンジンに伝えるメッセージが正反対と言ってよいほど異なります。
恒久的な転送(301)と一時的な転送(302)
最大の違いは、転送が 「恒久的か、一時的か」 という点です。
- 301(Moved Permanently):ページが「恒久的に」新しいURLへ移動したことを示します。「元のURLはもう使いません。今後は新しいURLを正規のものとして扱ってください」というシグナルです。
- 302(Found):ページが「一時的に」別のURLで表示されているだけであることを示します。「元のURLはこれからも使うので、正規のURLとして残しておいてください」というシグナルです。
両者の違いを整理すると次のようになります。
| 比較項目 | 301リダイレクト | 302リダイレクト |
|---|---|---|
| 転送の性質 | 恒久的(永久) | 一時的 |
| 検索結果に表示されるURL | 転送先(新URL) | 原則として元URL |
| 主な用途 | サイト移転、URL統合、HTTPS化 | メンテナンス、キャンペーン、A/Bテスト |
| ブラウザのキャッシュ | 強くキャッシュされやすい | キャッシュされにくい |
301は転送先のURLを検索結果に表示させ、評価も転送先へ寄せていくのに対し、302は元のURLを検索結果に残そうとする、という違いがポイントです。
使い分けの判断基準
どちらを使うべきか迷ったときは、シンプルに次の問いで判断できます。
「元のURLを、今後もう使わないか?」
- 今後もう使わない(完全に引っ越す)→ 301
- あとで元に戻す予定がある(一時的な差し替え)→ 302
たとえば「サイトを新ドメインへ完全移転する」「www有り・無しやHTTP・HTTPSを一本化する」といった、元に戻すことのないケースは301が適切です。一方、「数日間のメンテナンス」「期間限定キャンペーン」「一時的な在庫切れ」など、元のページに戻す前提のケースは302が適しています。
なお、Googleの公式ドキュメントでも、検索結果に表示するURLを変更したい場合は可能な限り恒久的なサーバーサイドリダイレクト(301)を推奨しています。裏を返せば、「元のURLを検索結果に残したい」明確な理由があるときにこそ302を使う、という考え方になります。
302リダイレクトのSEOへの影響
302リダイレクトを扱う上で最も気になるのが、SEOへの影響でしょう。「302だと評価が引き継がれず順位が下がる」といった話を聞いたことがあるかもしれません。ここは正確に理解しておく必要があります。
リンクジュース(評価)の引き継ぎについて
まず、Googleは「301も302もリダイレクト自体によってPageRank(ページの評価)が失われることはない」と説明しています。この点では、302を使ったからといって評価が「消える」わけではありません。
一方で、評価をどのURLに集約するかという扱いは301と302で異なります。
- 301:転送先の新URLへ評価を集約し、検索結果にも新URLを表示しようとします。
- 302:あくまで「一時的」と解釈するため、原則として元URLをインデックスに残し、評価も元URLに紐づけたままにしようとします。
つまり、恒久的にサイトを移転したのに302を使ってしまうと、「新URLに評価を集めたいのに、Googleは元URLを正規と見なし続ける」というちぐはぐな状態になりかねません。恒久移転で301を使うべきなのは、この評価集約の観点からも理にかなっています。
302を長期間放置するリスク
ここで押さえておきたいのが、Googleの近年の挙動です。Googleは、302リダイレクトが長期間そのまま残っている場合、それを301(恒久的)と同等に扱う可能性があることを認めています。
背景には、「本来301を使うべき場面で誤って302を設定してしまう」ケースが実務上とても多い、という事情があります。そのためGoogleは、リダイレクトを個別に評価し、「この管理者はおそらく恒久移転(301)を意図していた」と判断すれば、転送先をインデックスして評価を集約する、という柔軟な処理を行うとされています。
とはいえ、この「302を301として扱ってくれる」挙動はあくまでGoogle側の推測に依存する保証のない動きです。いつ、どのタイミングでそう判断されるかはコントロールできません。したがって実務上は、次のように考えるのが安全です。
- 恒久移転なら最初から明示的に301を使う(302の放置に頼らない)
- 302はあくまで「一時的な用途」に限定し、役目を終えたら速やかに解除するか301へ切り替える
- 長期間の302放置は、意図と検索エンジンの解釈がずれる原因になるため避ける
「302だから評価が飛ぶ」という単純な話ではなく、「用途と実態を一致させることが最も重要」と理解しておきましょう。
302リダイレクトを使うべきシーン
302リダイレクトが真価を発揮するのは、「元のURLを検索結果に残したまま、今だけ別のページを見せたい」場面です。代表的なケースを見ていきます。
サイトメンテナンス中の一時転送
サーバーメンテナンスやシステム更新で一時的にページを表示できないとき、メンテナンス告知ページへ302で転送するのは典型的な使い方です。恒久移転ではないため、元のURLを検索結果に残したまま「今は使えません」と案内できます。Googleの公式ドキュメントでも、サービスが一時的に利用できない状況の例として、元URLを損なわずに説明ページへ一時転送する用途が挙げられています。
キャンペーン・期間限定ページへの誘導
セールや期間限定の特設ページへ一時的に誘導したい場合も302が向いています。キャンペーン終了後は元のページに戻す前提のため、元URLの評価を維持できる302が適切です。
A/Bテストを行う場合
デザインや導線を検証するA/Bテストで、一部のユーザーを別バージョンのページへ振り分ける際にも302が使われます。テストは恒久的な変更ではなく、あくまで一時的な出し分けだからです。恒久扱いの301を使うと、検証用ページが正規URLとして評価されてしまう恐れがあります。
在庫切れ商品ページの転送
ECサイトで、一時的に在庫切れとなった商品ページを関連商品やカテゴリページへ誘導するケースも302が適します。商品が再入荷すれば元のページを復活させるため、元URLを残せる302が合理的です。ここで301を使ってしまうと、再入荷後に元URLの評価が戻りにくくなる可能性があります。
スマホ/PCで表示URLを分ける場合
デバイスによって表示するURLを出し分けている構成で、一時的な振り分けを行う際にも302が用いられることがあります。ただし現在はレスポンシブデザインが主流であり、URLを分ける構成自体が減っている点は補足しておきます。
これらに共通するのは、「あとで元の状態に戻す」前提があるという点です。この前提があるかどうかが、302を選ぶかの判断軸になります。
302リダイレクトの設定方法
ここからは、実際に302リダイレクトを設定する方法を、代表的な3つの手段に分けて紹介します。サーバー環境によって使える方法が異なるため、自社の環境に合わせて選んでください。
| 設定方法 | 難易度 | 向いているケース |
|---|---|---|
| .htaccess | 中 | Apacheサーバーで細かく制御したい場合 |
| PHP | 中 | プログラム側で条件分岐して転送したい場合 |
| WordPressプラグイン | 低 | コードを触らず管理画面で設定したい場合 |
.htaccessでの設定
Apacheサーバーを利用している場合、サイトのルートディレクトリにある .htaccess ファイルで302リダイレクトを設定できます。もっともシンプルな書き方は次の通りです。
Redirect 302 /old-page.html https://example.com/new-page.html
これは「/old-page.html へのアクセスを、302で new-page.html へ転送する」という記述です。特定のパターンにまとめて適用したい場合は、mod_rewriteを使います。
RewriteEngine On
RewriteRule ^old-directory/(.*)$ /new-page [R=302,L]
[R=302,L] の R=302 が「302でリダイレクトする」指定、L は「このルールで処理を終える」指定です。.htaccess は記述ミスがサイト全体の表示不能につながることがあるため、編集前に必ずバックアップを取り、反映後に動作を確認してください。
PHPでの設定
プログラム側で条件に応じて転送したい場合は、PHPで302リダイレクトを実装できます。PHPの header() 関数はデフォルトで302を返すため、次のように書くだけで302リダイレクトになります。
<?php
header("Location: https://example.com/new-page.php");
exit();
?>
ステータスコードを明示したい場合は、次のように書きます。
<?php
header("HTTP/1.1 302 Found");
header("Location: https://example.com/new-page.php");
exit();
?>
注意点として、header() はHTMLなど何らかの出力が始まる前に呼び出す必要があります。1文字でも先に出力があるとエラーになるため、ファイルの先頭に記述してください。また、転送後に処理を続けないよう、必ず exit() で止めるのが安全です。
WordPressプラグインでの設定
WordPressを使っている場合、コードを一切書かずに管理画面から302リダイレクトを設定できます。代表的なプラグインは以下の通りです。
- Redirection:無料で使える定番プラグイン。301・302・303・307・308など幅広いステータスコードに対応し、404エラーの記録機能も備えています。
- Rank Math:SEOプラグインの機能の一部としてリダイレクト管理を提供。301・302・307・410・451に対応しています。
たとえばRank Mathの場合、管理画面の「Rank Math SEO → Redirections」から「Add New」で新規ルールを作成し、転送元URL(Source URL)と転送先URL(Destination URL)を入力、リダイレクトタイプで 「302 Temporary Move」 を選ぶだけで設定完了です。サーバーファイルを直接編集しないため、非エンジニアの担当者でも扱いやすいのが利点です。
302リダイレクトが正常に動作しない・エラーが出る場合の原因と対処
設定したはずのリダイレクトが効かない、あるいはエラーが表示される——こうしたトラブルには、いくつかの典型的な原因があります。順に確認していきましょう。
リダイレクト先URLの記述・設定ミス
最も多いのが、単純な記述ミスです。転送先URLのスペルミス、https と http の取り違え、末尾スラッシュの有無、相対パスと絶対パスの混同などが原因で、正しく転送されなかったり、存在しないページ(404)へ飛んでしまったりします。
対処としては、転送元・転送先のURLを1文字ずつ確認し、実際にブラウザで転送先URLが正常に開けるかをチェックします。ブラウザの開発者ツールの「ネットワーク」タブや、オンラインのリダイレクトチェックツールを使えば、実際に302が返っているかを確認できます。
プラグインの設定不備
WordPressプラグインで設定している場合、ルールの優先順位や、複数プラグインの競合が原因になることがあります。たとえばSEOプラグインとリダイレクト専用プラグインの両方でルールを設定していると、意図しない挙動になることがあります。
対処としては、リダイレクト管理を1つのプラグインに集約する、ルールの適用順を見直す、不要なルールを削除する、といった整理が有効です。設定変更後はキャッシュをクリアして再確認しましょう。
ブラウザ/サーバー側のキャッシュ
「設定を直したのに古い転送先に飛ぶ」場合、キャッシュが原因のことがあります。とくに、過去に301(恒久)で設定していた履歴があると、ブラウザが301を強くキャッシュしているため、302に変えても古い転送が残ることがあります。
対処としては、ブラウザのキャッシュクリアやシークレットモードでの確認、サーバー側・CDN側のキャッシュクリアを行います。302はもともとキャッシュされにくい設計ですが、間にキャッシュ層(CDNやサーバーキャッシュ)がある場合は、そちらのクリアも忘れずに行ってください。
設定時の注意点
最後に、302リダイレクトを設定する際に押さえておきたい注意点を2つ紹介します。
301を使うべきケースとの混同に注意
繰り返しになりますが、302は「一時的」なリダイレクトです。サイト移転やURL統合、HTTPS化といった恒久的な変更に302を使ってしまうと、評価が新URLに集約されにくく、意図と検索エンジンの解釈がずれる原因になります。
「元に戻す予定があるか?」を毎回確認し、戻す予定がなければ301、戻す予定があれば302、という原則を徹底しましょう。Googleが長期放置の302を301扱いする可能性はあるものの、それに頼るのではなく、最初から正しいコードを選ぶことが重要です。
不正なリダイレクトループを避ける
設定ミスによって、AページからBページ、BページからAページへと転送が延々と続く「リダイレクトループ」が発生することがあります。ループに陥るとページが表示できず、ユーザーにも検索エンジンにも悪影響を与えます。
また、Googlebotがたどれるリダイレクトの回数には上限(おおよそ10回程度)があり、転送を何段も連鎖させる「リダイレクトチェーン」もクロールの無駄につながります。転送はできるだけ最終的なURLへ一段で飛ばすよう設計し、設定後は必ずループやチェーンが発生していないかを確認してください。
まとめ
302リダイレクトは、URLを一時的に別のページへ転送するためのHTTPステータスコード(302 Found)です。恒久移転を示す301とは役割が明確に分かれており、使い分けの判断軸は「元のURLを今後も使うかどうか」の一点に集約されます。
- 301:恒久移転。評価を新URLへ集約し、検索結果にも新URLを表示
- 302:一時転送。元URLを検索結果に残し、メンテナンス・キャンペーン・A/Bテスト・在庫切れなどに活用
SEOの観点では、302そのもので評価が消えるわけではありませんが、恒久移転に302を使うと意図と実態がずれます。Googleが長期放置の302を301扱いする可能性はあっても、それに依存せず、用途に合ったコードを最初から選ぶことが最も安全です。設定は.htaccess・PHP・WordPressプラグインのいずれでも可能なので、自社の環境に合った方法を選び、設定後は必ず動作確認を行いましょう。
リダイレクトの選定は、サイト全体のSEO設計やコンテンツ戦略と切り離せないテーマです。適切なリダイレクト運用が、検索エンジンとユーザー双方にとって使いやすいサイトづくりの土台になります。
