「リダイレクトは古いURLを開いた人を新しいページへ送る設定なので、送れれば301でも302でも同じ」。Google検索セントラルの説明にも、ユーザーは通常リダイレクトの種類の違いを区別できないと書かれているため、種類はどれを選んでもよいと思われがちです。ところが、Google検索はリダイレクトの種類を見て、検索結果に新しいURLと元のURLのどちらを出すかを決めます。種類は、元のURLに戻す予定があるかで選びます。
本記事では、リダイレクトの意味と種類から、URLを変えるときに旧URLごとの行き先と種類を決める手順まで、SEO対策を手がける会社の視点で順を追ってお伝えします。
- リダイレクトは、開いたURLから別のURLへ、ブラウザと検索エンジンを自動で送る
- 元のURLに戻さないなら301か308、戻す予定があるなら302か307を使う
- 設定はサーバー側で行い、meta refreshとJavaScriptはサーバー側で設定できないときに使う
- URLを変えるときは、旧URLごとに行き先を決め、移さないページには404か410を返す
- 転送は最終の行き先へ直接送り、少なくとも1年は残す
リダイレクトの意味と仕組み
リダイレクトとは、あるURLを開いたブラウザや検索エンジンを、別のURLへ自動で転送する仕組みです。Google検索セントラルのリダイレクトの説明では、ページが別の場所にあることを、ユーザーとGoogle検索に伝えるものとされています。
サーバー側のリダイレクトでは、旧URLへのリクエストに対して、サーバーが3で始まるステータスコードと、転送先のURLを書いたLocationヘッダーを返します。ブラウザはLocationヘッダーのURLをすぐに読み込むので、見ている人が転送に気づくことはほとんどありません。

Googleが、リダイレクトが特に役立つ場面として挙げているのは、次の4つです。
- ドメインを変えてサイトを移転したとき
- 同じページを複数のURLで開けるとき
- 2つのサイトを1つにまとめたとき
- ページを削除して、新しいページへ案内するとき
同じページを複数のURLで開けるのは、たとえばhttpとhttpsや、wwwのありとなしでURLが分かれているときです。Googleは、複数のURLのうち1つを正規のURLに選び、ほかのURLから正規のURLへ転送するよう勧めています。

リダイレクトの2つの種類
リダイレクトの種類は、元のURLに戻す予定があるかで、恒久的なリダイレクトと一時的なリダイレクトの2つに分かれます。
代表的なステータスコードは、次の4つです。
ステータスコード | 種類 | 検索結果に出るURL | GET以外のリクエスト |
|---|---|---|---|
301 Moved Permanently | 恒久的 | 転送先の新しいURL | GETに変えるブラウザがある |
308 Permanent Redirect | 恒久的 | 転送先の新しいURL | そのまま転送先へ送る |
302 Found | 一時的 | 元のURL | GETに変えるブラウザがある |
307 Temporary Redirect | 一時的 | 元のURL | そのまま転送先へ送る |
GET以外のリクエストとは、フォームの送信などで使うPOSTのように、ページを読み込む以外の目的で送るリクエストです。MDNのHTTPのリダイレクトの説明によると、301と302ではPOSTをGETに変えるブラウザがあり、308と307はリクエストの方法と本文を変えずに転送します。

恒久的なリダイレクト
恒久的なリダイレクトは、URLを変えて元のURLに戻さないときに使い、ステータスコードは301か308です。Googleは、検索結果に出ているページのURLを変えるときは、できる限りサーバー側の恒久的なリダイレクトを使うよう勧めています。
Googleは308を301と同じに扱うので、ページの移転では301と308のどちらを選んでも、検索での扱いは変わりません。307と308が作られた経緯は、HTTPステータスコード301の記事で紹介しています。
一時的なリダイレクト
一時的なリダイレクトは、元のURLに戻す予定があるときに使い、ステータスコードは302か307です。Googleは例として、サービスを一時的に使えない間、状況を説明するページへ利用者を案内する使い方を挙げています。
一時的なリダイレクトでは、検索結果に元のURLが残りやすくなります。ただし、転送先を正規のURLと示すシグナルがほかにあると、転送先がインデックスに登録されることがあります。
見ている人には同じページが出るなら、URLを変えるときも302で設定しておけばいいのでは?
編集部
見ている人に表示されるページは、302でも301でも同じです。ただ、Googleは302を一時的な転送と受け取るので、検索結果に古いURLが残りやすくなります。URLを変えて元に戻さないなら、301か308を設定します。
リダイレクトを設定する3つの方法
リダイレクトを設定する主な方法は、サーバー側のリダイレクト、meta refresh、JavaScriptの3つです。Googleが勧めているのはサーバー側のリダイレクトです。Googleのサイト移転の説明では、ブラウザ側で転送する方法は、サーバー側で設定できないときの最後の手段とされています。
サーバー側のリダイレクト
サーバー側のリダイレクトは、サーバーが301や302などのステータスコードを返して転送する方法です。Apacheの.htaccessのような設定ファイルに書くか、PHPのようなサーバー側のプログラムで設定します。Googleの説明にある、Apacheのmod_aliasで恒久的なリダイレクトを書く例は次のとおりです。
Redirect permanent "/old" "https://example.com/new"Redirect permanentの行を書くと、/oldを開いたブラウザは、301でhttps://example.com/newへ転送されます。
ApacheのRedirectディレクティブは、permanentや301を書かないと、302の一時的なリダイレクトを返します。URLを変えて元に戻さないときは、ステータスコードの指定を書き忘れていないかを確かめます。
ページ単位やドメイン単位の書き方と、転送が効かないときの確かめ方は、.htaccessのリダイレクトの記事で紹介しています。
meta refresh
meta refreshは、HTMLのhead内に書いたmetaタグで、ページを読み込んだブラウザを転送する方法です。Googleは、待ち時間を0秒にしたmeta refreshを恒久的なリダイレクト、0秒より長く待たせるものを一時的なリダイレクトとして扱います。
MDNは、アクセシビリティのために、待ち時間を常に0にするよう勧めています。HTMLのページにしか書けないので、画像やPDFの転送には使えません。
JavaScriptのリダイレクト
JavaScriptのリダイレクトは、window.locationに転送先のURLを入れて、ブラウザに新しいページを読み込ませる方法です。Googleは、ページをクロールした後にJavaScriptを実行して、転送を読み取ります。
JavaScriptを実行しないクライアントでは、転送が動きません。Googleが正しく解釈しやすい順に並べた表でも、JavaScriptのリダイレクトは、サーバー側のリダイレクトとmeta refreshの後に置かれています。
旧URLごとの行き先と種類の決め方
URLを変えるときは、リダイレクトの種類より先に、旧URLごとの行き先を決めます。Googleのサイト移転の説明でも、旧URLから新URLへの対応を先に作り、その後でサーバーにリダイレクトを設定する順番になっています。
旧URLのページの状態ごとの行き先と、返すステータスコードは、次の4つに分かれます。
旧URLのページ | 行き先 | 返すステータスコード |
|---|---|---|
同じ内容のページが新しいURLにある | 新しいURL | 301か308 |
似た内容のページと1つにまとめ、旧ページの内容を移した | まとめた先のページ | 301か308 |
新しいサイトに移さない | なし | 404か410 |
一時的に別のページを見せる | 状況を説明するページ | 302か307 |
ドメインだけを変えてパスを変えないときは、旧URLの一覧を作らなくても、ワイルドカードを使ったサーバー側のリダイレクトでまとめて転送できます。

移さないページの扱いは、見落とされがちです。移さないページは、トップページへ転送せず404か410を返します。トップページへ転送すると、旧URLを開いた人は、探していた内容が無いページに着きます。Googleのサイト移転の説明でも、新しいサイトに移さない内容のURLには、404か410を返すよう書かれています。

旧URLと新URLの対応表を作る手順は、リダイレクトがSEOに与える影響の記事で紹介しています。
URLを変える前後のリダイレクトの手順
URLを変えるときのリダイレクトは、旧URLの一覧作りから、Search Consoleへのサイトマップの送信まで、次の5つの手順で進めます。
サイトマップや、アクセス解析でアクセスの多いURLから、旧URLを集めます。Search Consoleのリンクのレポートで、内部リンクや外部リンクがあるページも加えます。画像やPDFのURLも一覧に入れます。
旧URLのページの状態で、転送先と返すステータスコードを決め、旧URLごとに対応表へ書き込みます。
内部リンクやcanonical、サイトマップのURLを、新しいURLに書き換えます。Googleは、移転先の各URLに、そのページ自身を指すcanonicalを入れるよう求めています。
サーバー側でリダイレクトを設定し、公開前に付けたnoindexやrobots.txtのブロックを外します。個々のURLはSearch ConsoleのURL検査ツールで、多数のURLはコマンドラインのツールやスクリプトで確かめます。
Search Consoleで新しいサイトマップを送ります。ドメインかサブドメインを変えたときは、旧サイトのSearch Consoleからアドレス変更も送ります。
Googleによると、小規模から中規模のサイトでは、大半のページの移転が検索に反映されるまでに数週間かかります。大規模なサイトでは、さらに長くかかります。
旧URLの一覧を前に、どのページをどこへ送るか決めかねていませんか
滋賀のSEO対策では、1か月目にサイトの現状を分析して設計し、2か月目から実行します。県外のサイトもオンラインで対応します。
リダイレクト設定の3つの注意点
リダイレクトの設定で避けるのは、次の3つの状態です。
- 旧URLから最終の行き先までの間で、転送が何段も重なっている
- 転送が一度通ったURLへ戻り、ループしている
- 転送先が、存在しないURLになっている
Googlebotは最大10回の転送をたどりますが、Googleは最終の行き先へ直接転送するよう勧めています。直接送れないときも、転送の回数は5回未満、できれば3回以下に抑えます。過去のリニューアルで設定した転送が残っているサイトでは、古い転送の行き先も、新しい最終のURLに書き換えます。
転送がループすると、ページは開けません。MDNによると、ループはほとんどの場合サーバー側の問題で、サーバーが検出すると500 Internal Server Errorを返し、検出できないときはブラウザがエラーを表示します。
存在しないURLへの転送は、Googleがサイト移転でよくある誤りとして挙げています。移転の後は、Search Consoleで404のエラーが通常より多く報告されていないかを確かめます。
リダイレクトのよくある質問
リダイレクトを設定するときに出てくる、3つの質問に答えます。
リダイレクトで検索の評価は引き継がれる?
恒久的なリダイレクトで転送しても、PageRankは失われません。Googleのサイト移転の説明では、301だけでなく、そのほかの恒久的なリダイレクトも同じとされています。ただし、Googleがサイトを再クロールしてインデックスに登録し直す間は、順位が一時的に変動することがあります。
リダイレクトはいつまで残す?
リダイレクトは、少なくとも1年は残します。Googleは、リダイレクトが残っている間に、古いURLを指すほかのサイトのリンクを再クロールし、シグナルを新しいURLへ移すと説明しています。
ほかのサイトのリンクから旧URLを開く人もいるので、Googleは利用者のために、リダイレクトを無期限に残すことも検討するよう書いています。
移転後も古いURLが検索結果に出るのはなぜ?
Googleは、リダイレクトの元と先の両方のURLを記録し、片方を正規のURL、もう片方を別名として扱います。検索した人にとって古いURLのほうが信頼されていると判断されると、新しいURLがインデックスに登録されていても、検索結果に古いURLが出ることがあります。
Googleは、サイトが新しいドメインに移ったときは、新しいURLが登録されても古いURLが表示されることがあり、それは正常な動作で、利用者が新しいドメイン名に慣れるにつれて何もしなくても表示されなくなると説明しています。
まとめ|リダイレクトは行き先を決めてから設定する
リダイレクトは、開いたURLから別のURLへ、ブラウザと検索エンジンを自動で送る仕組みです。種類は元のURLに戻す予定があるかで選び、戻さないなら301か308、戻すなら302か307を使います。URLを変えるときは、旧URLごとに同じ内容の新しいページがあるかを確かめて行き先を決め、移さないページには404か410を返します。
URLを変える前に確かめることは、次の3つです。
- 旧URLの一覧に、検索やリンクからの訪問があるページが入っているか
- 旧URLごとに、転送先か、404か410を返すかが決まっているか
- 恒久的に移すページに、302ではなく301か308を設定しているか
私たち合同会社Writers-hubは、滋賀のSEO対策として、サイトの現状の分析と設計から実行までを受け持っています。
URLを変えた後も、毎月の報告と見直しを続けませんか
滋賀のSEO対策は、月額20万円〜(税別・6か月〜)です。2か月目から実行し、毎月の報告と見直しを行います。オンラインで全国に対応し、彦根市とその周辺は訪問もできます。







