301リダイレクトとは?302との違い・設定方法とSEOの注意点
公開日 最終更新日

301リダイレクトとは、ページの URL が新しい URL へ恒久的に移ったことを、サーバーが HTTP ステータスコード「301」で伝え、アクセスした人や検索エンジンを新しい URL へ自動で転送する仕組みです。
サイトの移転・URL の変更・https や www あり・なしの統一などに使い、Google は301を「転送先の URL を検索結果に出す」強いシグナルとして扱うと説明しています。
この記事では、302・307・308との違い、使う場面、SEO への影響、設定の方法と確かめ方、設定するときの注意点を順に解説します。
目次
301リダイレクトとは?転送の仕組み

リダイレクトは、ある URL にアクセスした人や検索エンジンのクローラーを、別の URL へ自動で転送する仕組みです。
MDN の HTTP のリダイレクトの解説によると、ブラウザが URL を開くと、サーバーはページの中身の代わりに「3」で始まる HTTP ステータスコードと、転送先の URL を書いた Location ヘッダーを返します。ブラウザはそれを受け取り、転送先の URL を開き直します。
(ブラウザ) /old-page/ を要求する
(サーバー) HTTP/1.1 301 Moved Permanently
Location: https://www.example.com/new-page/
(ブラウザ) https://www.example.com/new-page/ を開き直す
301は、このステータスコードの一つで、名前は「Moved Permanently」(恒久的に移動した)です。HTTP の仕様のRFC 9110では、ページに新しい恒久的な URL が割り当てられ、これからはその URL を使うべきことを表すとされています。
利用者は古い URL のブックマークやリンクからでも新しいページにたどり着け、検索エンジンは「このページは新しい URL へ移った」と知ることができます。
301・302・307・308の違い

リダイレクトのステータスコードは、大きく「恒久的」と「一時的」に分かれます。さらに、前述の RFC 9110 と MDN の解説のとおり、フォームの送信のようなデータを送るアクセス(POST)を転送したときに、送信の方法を変えてよいかどうかで違いがあります。
| コード | 名前 | 恒久的/一時的 | 送信の方法(POST) | 主な使いどころ |
|---|---|---|---|---|
| 301 | Moved Permanently | 恒久的 | 歴史的な理由で、転送のときに GET へ変えてよいとされている | ページ・サイトの移転、URL の変更 |
| 308 | Permanent Redirect | 恒久的 | 変えない | 恒久的な移転で、送信の方法を保ちたいとき |
| 302 | Found | 一時的 | 歴史的な理由で、転送のときに GET へ変えてよいとされている | 一時的に別のページを見せるとき |
| 307 | Temporary Redirect | 一時的 | 変えない | 一時的な転送で、送信の方法を保ちたいとき |
| 303 | See Other | 一時的 | GET に変えて転送先を開く | フォームを送信した後の結果のページへ移すとき |
308と307は、301と302で送信の方法が変わってしまう曖昧さをなくすために後から加えられたコードです。ふつうのページの閲覧(GET)の転送では、301と308、302と307の違いはほとんど表に出ません。
検索エンジンにとって大事なのは「恒久的か、一時的か」です。Google のリダイレクトのガイドでは、次のように扱うと説明しています。
- 恒久的なリダイレクト(301・308):転送先の URL を正規の URL(検索結果に出す代表の URL)にする強いシグナルとして使い、検索結果には転送先が表示されます
- 一時的なリダイレクト(302・303・307):転送先を正規の URL にするシグナルとしては弱く、検索結果には転送元が表示されます
つまり、URL が今後も戻らないなら301(または308)、元の URL に戻す予定があるなら302(または307)と選び分けます。恒久的に移したのに302を使うと、検索結果に古い URL が残り続けることがあります。
新人ラッコ
ラッコ先輩301リダイレクトを使う場面

301リダイレクトは、ページの場所が変わり、元の URL に戻す予定が無いときに使います。
- サイトの移転・ドメインの変更:サイトを新しいドメインへ移すとき、古いドメインの各ページから新しいドメインの対応するページへ転送します。手順はGoogle のサイトの移転のガイドにあります
- ページの URL の変更:サイトのリニューアルでディレクトリ構成を変えた、記事のスラッグを付け替えた、といったとき
- ページの統合:内容の重なる複数のページを1つにまとめるとき、まとめた先のページへ転送します
- URL の正規化:Google の正規化の解説にあるように、http と https、www あり と www なしのように、同じページに複数の URL でアクセスできる状態を1つの形にそろえるとき
反対に、期間限定の案内ページを一時的に見せるなど、元の URL に戻す予定があるときは、302や307の一時的なリダイレクトを使います。
また、削除したページに、内容の対応するページが無いときは、無理に転送する必要はありません。Google のステータスコードの解説によると、404(見つからない)や410(削除済み)を返せば、その URL は Google のインデックスから外れていきます。関係の無いページへの転送は、後述の注意点のとおり、かえって問題になることがあります。
301リダイレクトのSEOへの影響(Googleの説明)

新人ラッコ
ラッコ先輩301リダイレクトが SEO で大切にされるのは、URL を変えても、それまで古い URL が受けていた評価やアクセスを新しい URL へつなげられるからです。Google の公式の説明をまとめると、次のようになります。
| Google の説明 | 意味 |
|---|---|
| 恒久的なリダイレクトは、転送先を正規の URL にする強いシグナル(リダイレクトと Google 検索) | 検索結果に出る URL が、時間とともに新しい URL へ置き換わる |
| 301などの恒久的なリダイレクトで PageRank は失われない(Google のサイト移転のガイド) | 古い URL へ張られていたリンクの評価が、新しい URL のものとして扱われる |
| 転送元の URL が返した中身は無視され、転送先の中身が処理される(Google の HTTP ステータスコードの説明) | 評価されるのは転送先のページの内容 |
| 検索結果に出る URL を変えたいときは、できるだけサーバー側の恒久的なリダイレクトを使う(リダイレクトと Google 検索) | meta refresh や JavaScript より、サーバー側の301を優先する |
ただし、これらの説明の前提は、同じ内容が新しい URL へ移ることです。リダイレクトをしても、新しいページの評価は最終的に新しいページの内容で決まります。順位が一時的に揺れることもあり、転送しただけで順位が上がるものではありません。
リダイレクトそのものは、サイトの運営でふつうに使う仕組みです。Google も、サイトを新しいアドレスへ移すことや、いくつかのページを1つにまとめることを、リダイレクトの正当な理由に挙げています。一方で、検索エンジンと利用者に違う内容を見せたり、利用者が求めていたものと違う内容へ転送したりすることは「不正なリダイレクト」としてGoogle のスパムに関するポリシーに反します。
中古ドメインを転送に使うときは
SEO の手法として、被リンクの残る中古ドメインを運営中のサイトへ301リダイレクトする使い方が紹介されることがあります。しかし、過去のサイトと転送先の内容が対応しない転送では、評価がどこまで引き継がれるかは分からず、主に検索順位の操作を目的にした使い方は Google のスパムに関するポリシーに当たるおそれがあります。
中古ドメインのご利用にあたって
中古ドメインの利用は検索順位の上昇を保証するものではありません。また、検索順位の操作のみを目的とした利用(過剰な相互リンク網・無関係なサイトへのリダイレクト等)は、Googleのスパムに関するポリシー(リンクスパム/期限切れドメインの不正使用)に該当し、手動による対策(ペナルティ)を受ける可能性があります。過去の運用内容と関連性のある、利用者にとって価値のあるサイト運営を推奨します。中古ドメインのリスクについて
301リダイレクトの設定方法

リダイレクトの設定の方法は、大きく「サーバー側」「meta refresh」「JavaScript」の3つです。Google は、できるだけサーバー側で設定し、それができないときだけ meta refresh や JavaScript を使うよう案内しています。
| 方法 | Google での扱い | 向いているとき |
|---|---|---|
| サーバー側のリダイレクト(301・308など) | ステータスコードのとおり、恒久的/一時的として扱われる | 基本はこれ。サーバーの設定や .htaccess を変えられるとき |
| meta refresh(HTML の meta タグ) | すぐに転送する(0秒)ものは恒久的、秒数を置いて転送するものは一時的として扱われる | サーバーの設定を変えられないとき |
JavaScript(window.location) | ページの表示の処理(レンダリング)の後に転送に気づく。処理が失敗すると、転送に気づかないことがある | サーバー側も meta refresh も使えないとき |
サーバー側で設定する(.htaccess の例)
Web サーバーに Apache を使っていて、.htaccess での設定が許可されていれば、.htaccess に次のように書けます。書き方はApache の mod_alias の説明とRewriteRule のフラグの説明に沿った例で、example.com は自分のドメインに置き換えます。
# 1ページだけ:/old-page.html を新しいURLへ恒久的に転送する
Redirect 301 "/old-page.html" "https://www.example.com/new-page.html"
# 正規表現で:/old-dir/ の下のページを、/new-dir/ の同じ名前のページへ転送する
RedirectMatch 301 "^/old-dir/(.*)$" "https://www.example.com/new-dir/$1"
Redirectは、指定したパスで始まる URL をまとめて転送します。ディレクトリを指定すると、その下のページも同じ名前で転送先へつながります- 状態を書かないと302(一時的)になります。恒久的に移すときは
301(またはpermanent)を書きます - 複雑な条件で転送するときは mod_rewrite の
RewriteRuleも使えますが、Apache の mod_rewrite の解説では、単純な転送にはRedirect・RedirectMatchを使うよう勧めています。RewriteRuleで転送するときも、[R]だけでは302になるので[R=301,L]のようにコードを書きます
RewriteEngine On
RewriteRule "^old-dir/(.*)$" "https://www.example.com/new-dir/$1" [R=301,L]
.htaccess が使えるかどうか、どこに置くかは、サーバーの設定によって違います。Apache の .htaccess の説明では、サーバー本体の設定ファイルを変えられるならそちらに書くほうが、性能と安全の面で望ましいとしています。レンタルサーバーでは、管理画面に転送の設定があることや、.htaccess の扱いに独自の決まりがあることも多いので、使っているサーバーの案内を確かめてください。WordPress なら、リダイレクトを設定するプラグインを使う方法もあります。
meta refresh・JavaScript で設定する
サーバーの設定を変えられないときは、転送元のページの HTML に次のように書く方法があります。
<!-- meta refresh:<head> の中に書く。0 は「すぐに転送する」 -->
<meta http-equiv="refresh" content="0; url=https://www.example.com/new-page/">
JavaScript の場合は、ページの script 要素の中に次の1行を書きます。サーバー側も meta refresh も使えないときだけにします。
window.location.href = "https://www.example.com/new-page/";
どちらも、サーバーはいったんふつうのページ(ステータスコード200)を返し、ブラウザがページを読み込んでから転送します。HTML のページでしか使えず、検索エンジンが転送に気づくのも、ページを読み込んだ後です。
301リダイレクトが効いているかの確かめ方

新人ラッコ
ラッコ先輩リダイレクトを設定したら、次の点を確かめます。
- 301(または308)を返しているか(302になっていないか)
- 意図した転送先へ、1回で転送されるか(何度も転送を重ねていないか)
- 転送先のページが200で表示されるか(転送先が404になっていないか)
ブラウザで古い URL を開いて新しい URL に変わるかを見るだけでは、ステータスコードが301か302かは分かりません。ステータスコードは、ブラウザの開発者ツールの「ネットワーク」で、または次のようなコマンドで、応答のヘッダーを表示して確かめます。
curl -I https://www.example.com/old-page/
1行目に 301 、Location の行に転送先が出ていれば、301リダイレクトが設定されています。
なお、HTTP の仕様(RFC 9110)では、301の応答は、ブラウザなどのキャッシュに保存されることがあるとされています。設定を直した後も古い転送先へ飛ぶときは、キャッシュを消すか、プライベートウィンドウやコマンドで確かめ直します。
複数の URL をまとめて確かめるなら、当サイトの無料ツール「一括HTTPステータス/リダイレクトチェックツール」で、URL ごとのステータスコードと、転送の各段階のステータスコード・転送先・応答ヘッダーを一覧にできます。http と https、www あり・なしの4通りの URL や、サイトの移転で用意した新旧の URL の対応表の確認に使えます。
公開した後は、Google Search Console の「ページのインデックス登録レポート」も見ておきます。
- ページにリダイレクトがあります:別のページへ転送している URL(正規の URL ではない URL)なので、インデックスには登録されないという意味です。意図して301を設定した古い URL がここに出るのは、ふつうのことです
- リダイレクト エラー:転送の連鎖が長すぎる、転送がループしている、転送先の URL が長すぎる、連鎖の中に不正な URL や空の URL がある、のどれかです。設定を見直します
301リダイレクトを設定するときの注意点

リダイレクトチェーン(転送を重ねない)
「ページ1 → ページ2 → ページ3」のように転送が何段にも重なる状態を、リダイレクトチェーンと呼びます。サイトの移転やリニューアルを繰り返すと、古い転送の設定が残ってできやすくなります。
Google のクローラーは最大10回まで転送をたどりますが、Google はサイトの移転のガイドで、最終的な転送先へ直接転送するよう勧めており、それができない場合も、連鎖の回数は少なく、できれば3回まで、多くても5回未満にするよう案内しています。10回以内に中身にたどり着けないと、Search Console に「リダイレクト エラー」が表示されます。
新しい転送を足すときは、古い転送の設定も新しい最終の転送先へ向け直します。
リダイレクトループ(転送が循環しない)
「A → B → A」のように転送が循環すると、どこにもたどり着けず、ページが表示されません。サーバーやブラウザがループに気づくとエラーを表示します。表示の文言はブラウザによって違い、「リダイレクトが繰り返し行われました」「多くのリダイレクトが発生しています」などと出ます。
http から https への転送と、www の有無をそろえる転送を別々に書いたときや、サーバーの設定と WordPress などの CMS の設定が食い違ったときに起きやすいので、設定を変えたら4通りの URL すべてで確かめます。
関係の無いページへまとめて転送しない
削除したページや古いページを、内容の対応しないページ(たとえばトップページ)へまとめて転送すると、利用者を混乱させ、Google にソフト 404(中身の無いページ)として扱われることがあります。古い URL ごとに内容の対応するページへ転送し、対応するページが無ければ404や410を返します。
できるだけ長く残す
サイトの移転では、リダイレクトはできるだけ長く、一般に少なくとも1年は残すよう Google は案内しています。ほかのサイトから古い URL へ張られたリンクを、新しい URL へ付け替えるなど、すべてのシグナルを移すのに時間がかかるためです。
転送をやめると、古い URL へのリンクやブックマークから来た人は、目的のページにたどり着けなくなります。古い URL へのアクセスが続いている間は、残しておくのが無難です。
サイトの中の URL も新しくする
リダイレクトは、古い URL に来た人を受け止めるための仕組みです。自分のサイトの中のリンク・XML サイトマップ・rel="canonical" は、古い URL のままにせず新しい URL に書き換えます。内部リンクが古い URL のままだと、サイトの中を移動するたびに転送が起きます。
robots.txt で古い URL をブロックしない
古い URL を robots.txt でクロールさせないようにすると、Google のクローラーが古い URL を訪れられず、転送があることに気づけません。サイトの移転では、古い URL が robots.txt の disallow でブロックされていないことを確かめるよう案内されています。
まとめ
- 301リダイレクトは、URL が新しい URL へ恒久的に移ったことを伝えて転送する仕組みで、サイトの移転・URL の変更・ページの統合・URL の正規化に使う
- URL が戻らないなら301(または308)、元に戻す予定があるなら302(または307)を使う。内容の対応するページが無ければ、転送せず404や410を返す
- Google は恒久的なリダイレクトを、転送先を正規の URL にする強いシグナルとして扱うが、転送しただけで順位が上がるものではない。主に検索順位の操作を目的にした中古ドメインの転送は、スパムに関するポリシーに当たるおそれがある
- 設定はできるだけサーバー側で行い、301が返り、意図した転送先へ1回で転送されるかを応答のヘッダーで確かめる
- リダイレクトチェーン・ループ・関係の無いページへのまとめての転送を避け、転送はできるだけ長く(一般に少なくとも1年)残す
新人ラッコ
ラッコ先輩設定した転送は、当サイトの無料ツール「一括HTTPステータス/リダイレクトチェックツール」に URL を入れると、ステータスコードと転送の段数をまとめて確かめられます。
よくある質問
301リダイレクトはどれくらいの期間残せばいいですか?
できるだけ長く、一般に少なくとも1年が目安です。
Google はサイトの移転の説明で、すべてのシグナルを新しい URL へ移すために、リダイレクトをできるだけ長く、一般に少なくとも1年は残すよう案内しています。古い URL へのアクセスが続いていれば、それより長く残します。
301リダイレクトと302リダイレクトの違いは何ですか?
301は恒久的な移転、302は一時的な移転を表します。
Google は301を転送先を正規の URL にする強いシグナルとして扱い、検索結果に転送先を表示します。302はそのシグナルとしては弱く、検索結果には転送元が表示されます。URL が元に戻らないなら301を使います。
リダイレクトが動作しているか調べる方法は?
ステータスコードと転送先を、応答のヘッダーで確かめます。
ブラウザの開発者ツールの「ネットワーク」、curl -I などのコマンド、前述の当サイトの一括チェックツールで、301が返り、意図した URL へ1回で転送されているかを見ます。
リダイレクトはSEOに影響しますか?
正しく設定した301は、URL を変えても評価を新しい URL へつなぐ助けになります。
Google は、301などの恒久的なリダイレクトで PageRank は失われないと説明しています。一方で、302の使い間違い、リダイレクトチェーン・ループ、関係の無いページへの転送は、新しい URL がうまく評価されない原因になります。
Search Console に「ページにリダイレクトがあります」と表示されたら、どうすればいいですか?
意図して転送している URL なら、そのままで問題ありません。
これは、別のページへ転送している URL なのでインデックスに登録されない、という意味の表示です。インデックスに登録したいページがここに出ている場合は、そのページに意図しない転送が設定されていないかを確かめます。
リダイレクトを設定しないとどうなりますか?
古い URL にアクセスした人は、「ページが見つかりません」(404)の画面にたどり着きます。
古い URL へ張られたリンクやブックマークが新しいページにつながらず、検索エンジンも新しい URL を別のページとして一から評価することになります。URL を変えるときは、古い URL から新しい URL へ301リダイレクトを設定しておきます。
仕入れの段階で選別した中古ドメインを、品質保証付きで販売しています




