← PC・IT用語集へ戻る

リダイレクト

Redirect
network web beginner
あるURLにアクセスしたユーザーや検索エンジンを、別のURLへ自動的に転送する仕組みのこと。ページ移転やURL変更時によく使われる。
リダイレクト (Redirect)

概要(サマリー)

リダイレクトとは、あるURLにアクセスしたユーザーや検索エンジンを、別のURLへ自動的に転送する仕組みのことである。

たとえば、古いページのURLを新しいURLへ変更したとき、古いURLにアクセスした人をそのまま新しいページへ案内できる。Webサイトの引っ越し、ページURLの変更、httpからhttpsへの統一、末尾スラッシュの統一などでよく使われる。初心者向けには、「古い住所に来た人を、新しい住所へ自動案内する仕組み」と考えるとわかりやすい。

詳細解説

リダイレクトは「別のURLへ自動で案内する仕組み」である

Webサイトでは、ページのURLが変わることがある。
たとえば、記事のスラッグを変更したり、サイト構成を整理したり、古いページを新しいページに統合したりする場合である。

このとき、古いURLへアクセスした人が404エラーになってしまうと、ユーザーは目的のページにたどり着けない。
そこで使うのがリダイレクトである。

リダイレクトを設定しておくと、古いURLへアクセスしたときに、自動的に新しいURLへ移動させられる。

https://example.com/old-page
↓
https://example.com/new-page

つまりリダイレクトは、URL変更時の迷子を防ぐための道案内である。

なぜリダイレクトが必要なのか

リダイレクトが必要になる理由は、大きく分けて2つある。

1つ目は、ユーザーを正しいページへ案内するためである。
古いリンク、ブックマーク、SNS投稿、外部サイトからのリンクなどは、URL変更後も残り続けることがある。
リダイレクトがあれば、古いURLから来た人も新しいページへ移動できる。

2つ目は、検索エンジンにURL変更を伝えるためである。
特にSEOでは、古いURLに付いていた評価を新しいURLへ引き継ぎたい場面がある。
そのとき、適切なリダイレクトを設定することで、検索エンジンに「このページは新しいURLへ移動しました」と伝えやすくなる。

HTTP Response と Status Code の関係

リダイレクトは、HTTP通信の中では HTTP Response の一種として扱われる。

ユーザーのブラウザが古いURLへ HTTP Request を送ると、サーバーは「このページはこちらへ移動してください」というレスポンスを返す。
そのときに使われるのが、300番台の Status Code である。

代表的なものは次の通りである。

  • 301
    恒久的な移動
  • 302
    一時的な移動
  • 303
    別のURLをGETで見に行かせる。フォーム送信後などで使われることがある
  • 307
    一時的な移動。HTTPメソッドを維持する
  • 308
    恒久的な移動。HTTPメソッドを維持する

初心者向けには、まず 301は本格的な引っ越し、302は一時的な転送 と覚えると分かりやすい。
フォーム送信やAPIのように、POST などのHTTPメソッドを変えたくない場面では、307や308が選ばれることがある。301や302では、実装や状況によって POSTGET に変わることがあるためである。

301リダイレクトとは何か

301リダイレクトは、「このURLは恒久的に別のURLへ移動しました」と伝えるためのリダイレクトである。

たとえば、ページのURLを完全に変更した場合や、古いページを新しいページへ統合した場合に使われることが多い。

旧URL: https://example.com/old-item
新URL: https://example.com/new-item

このような場合に301リダイレクトを設定すると、ユーザーも検索エンジンも新しいURLへ案内される。
SEO上も、旧URLの評価を新URLへ引き継ぐ意図を伝えやすい。

ただし、301は恒久的な移動を示すため、一時的なキャンペーンやテストには向かないことがある。

301でアクセスしたときに、ブラウザが実際に移動先(200)まで転送される様子を手元で体験したい場合は、以下のツールを使うと分かりやすい。

302リダイレクトとは何か

302リダイレクトは、「一時的に別のURLへ移動しています」と伝えるためのリダイレクトである。

たとえば、次のような場面で使われることがある。

  • 一時的なメンテナンスページへ移す
  • キャンペーン期間だけ別ページへ案内する
  • A/Bテストのために一時的に振り分ける

302は一時的な転送なので、検索エンジンに対しては「元のURLが本来の場所です」というニュアンスが残りやすい。
そのため、完全にURLを移転した場合に302を使い続けると、意図した評価移行にならない可能性がある。

httpからhttpsへの統一でも使われる

リダイレクトは、URLの表記ゆれを統一するためにも使われる。

代表的なのが、http から https への転送である。

http://example.com
↓
https://example.com

HTTPS化したサイトでは、暗号化されていないHTTPアクセスをHTTPSへ転送する設定を行うことが多い。
これにより、ユーザーが古いHTTPリンクからアクセスしても、安全なHTTPS版へ案内できる。

同じように、次のような統一にもリダイレクトが使われる。

  • www あり / なしの統一
  • 末尾スラッシュあり / なしの統一
  • .html あり / なしの統一
  • 古いドメインから新しいドメインへの移転

Canonical との違い

リダイレクトと混同しやすいのが Canonical である。

  • Redirect
    ユーザーや検索エンジンを実際に別URLへ移動させる
  • Canonical
    ページを表示したまま、検索エンジンへ正規URLを伝える

たとえば、古いURLに来た人を新しいURLへ強制的に移動させたいならRedirectである。
一方、似た内容のページを表示したまま、「検索評価上の代表URLはこちらです」と伝えたいならCanonicalである。

つまり、リダイレクトは実際の転送、canonicalは検索エンジンへのヒントである。

Noindex との違い

Noindex もSEOで一緒に出てくるため、リダイレクトと混同されやすい。

  • Redirect
    別のURLへ転送する
  • Noindex
    検索結果に表示しないよう検索エンジンへ伝える

たとえば、古いページを新しいページへ移したならRedirectが向いている。
一方、ページ自体は表示できるが検索結果には出したくないならNoindexを使う。

「検索に出したくないからリダイレクトする」という考え方は、目的によってはズレることがある。
転送したいのか、検索結果から外したいのかを分けて考える必要がある。

Forwarding との違い

リダイレクトは日本語で「転送」と呼ばれることもある。
ただし、メールの Forwarding とは意味が違う。

  • Redirect
    WebのURLアクセスを別URLへ移動させる
  • Forwarding
    メールなどを別の宛先へ転送する

どちらも「別の場所へ送る」という意味では似ているが、WebサイトのURL転送で使う場合はRedirectと呼ぶのが一般的である。

リダイレクトの設定場所

リダイレクトは、環境によって設定場所が変わる。

たとえば、次のような場所で設定されることがある。

サーバー設定

Apache.htaccessNginxの設定ファイルなどでリダイレクトを設定する。

CMSやプラグイン

WordPressでは、リダイレクト用プラグインやSEOプラグインで設定できることがある。

アプリケーション側

PHPJavaScriptフレームワークルーティングなどでリダイレクト処理を書くことがある。

ホスティング管理画面

レンタルサーバーやクラウドサービスの管理画面で、ドメイン転送やURL転送を設定できることがある。

どこで設定するかによって、反映範囲や優先順位が変わることがあるため注意が必要である。

.htaccessでの例

Apache環境では、.htaccess にリダイレクトを書くことがある。

たとえば、古いページを新しいページへ301リダイレクトする例は次の通りである。

Redirect 301 /old-page.html https://example.com/new-page.html

これは、/old-page.html にアクセスが来たら、https://example.com/new-page.html へ恒久的に転送する設定である。

ただし、.htaccess の書き方を間違えるとサイト全体が表示できなくなることもある。
編集前にはバックアップを取り、少しずつ確認することが大切である。

Nginxでの例

Nginxでは、設定ファイル内で return を使ってリダイレクトを書くことがある。

たとえば、古いページを新しいページへ301リダイレクトする例は次の通りである。

location = /old-page.html {
  return 301 https://example.com/new-page.html;
}

これは、/old-page.html にアクセスが来たら、https://example.com/new-page.html へ恒久的に転送する設定である。
Nginxの設定を変更した場合は、設定テストを行ってから反映することが重要である。

リダイレクトチェーンに注意する

リダイレクトでは、転送が何段にもつながってしまうことがある。
これをリダイレクトチェーンと呼ぶ。

A → B → C → D

このように何度も転送されると、表示が遅くなったり、検索エンジンにとって分かりにくくなったりすることがある。

できるだけ、

A → D

のように、最終URLへ直接リダイレクトするほうがよい。
サイト移転やURL整理を何度も行った場合は、古い設定が残っていないか確認することが重要である。

リダイレクトループに注意する

もう1つ注意したいのがリダイレクトループである。

これは、AからBへ転送し、BからまたAへ戻すような設定になってしまう状態である。

A → B → A → B ...

この状態になると、ブラウザは何度も転送を繰り返し、最終的にエラーになる。
よくある原因として、http/https、wwwあり/なし、末尾スラッシュの統一設定が重複している場合などがある。

リダイレクトを設定したら、実際にアクセスして正しく1回で目的のURLへ移動するか確認することが大切である。

SEOでリダイレクトが重要な理由

SEOでは、URLの変更やページ統合を行うときにリダイレクトが重要になる。

もし古いURLを削除しただけだと、検索結果や外部リンクから来たユーザーが404ページにたどり着いてしまう。
また、旧URLに付いていた評価や被リンクの価値を新URLへ引き継ぎにくくなる。

そこで、関連性の高い新URLへ301リダイレクトを設定することで、ユーザーにも検索エンジンにも移転先を伝えやすくなる。

ただし、関係のないページへ何でも転送すればよいわけではない。
古いページと新しいページの内容が近いことが重要である。

リダイレクト後は、ブラウザで実際にアクセスして確認するだけでなく、Search ConsoleのURL検査などでGoogleがどのURLを認識しているか確認すると安心である。

初心者向けの理解の仕方

最初は、リダイレクトを「古いURLへ来た人を、新しいURLへ自動案内する仕組み」と覚えれば十分である。

特に次の3つを押さえておくと理解しやすい。

  • 301 = 恒久的な移動
  • 302 = 一時的な移動
  • canonical = 転送ではなく正規URLのヒント

ページ移転やURL変更をするときは、削除して終わりではなく、必要に応じてリダイレクトを設定する。
この意識があるだけで、ユーザー体験とSEOの両方を守りやすくなる。

AIコーディングとの関係

AIを使ってページを作ったり、静的HTMLを生成したり、サイト構造を整理したりすると、URL変更が増えやすくなる。そのとき、リダイレクトを理解していないと、古いURLからの流入や検索評価を失いやすい。

たとえば、次のような場面でリダイレクトが必要になることがある。

  • WordPress記事を静的HTMLへ移行する
  • 用語ページのslugを変更する
  • 旧サイトから新サイトへ移転する
  • ECサイトの商品URLを変更する
  • httpからhttpsへ統一する
  • .html あり / なしを整理する

AIにリダイレクト設定を書いてもらうこともできるが、間違った設定はサイト全体の表示エラーにつながることがある。そのため、意味を理解したうえで、少数のURLからテストすることが重要である。

よくある勘違い

リダイレクトチェーンやループは検索エンジンが自動で直してくれる?

そうとは限らない。何段にも連なるリダイレクトチェーンや、AとBを行き来するリダイレクトループは、表示速度の低下やクロールの妨げになることがある。検索エンジン側の解釈に頼らず、設定した本人が最終URLへ直接転送されているかを確認する必要がある。

302を使い続けても、いずれ301と同じようにSEO評価が移る?

そうとは限らない。302は「一時的な移動」という意味合いが残るため、恒久的にURLを変更した場合は301を使うべきである。302を使い続けると、旧URLの評価がなかなか新URLへ引き継がれないことがある。

リダイレクトさえ設定すれば、あとは何もしなくてよい?

そうではない。設定後は、実際にアクセスして1回で目的のURLへ移動するか、Search ConsoleのURL検査でGoogleがどのURLを認識しているかを確認する必要がある。設定ミスによるリダイレクトループやチェーンは、確認しないと気づきにくい。

まとめ

  • リダイレクトは、あるURLにアクセスしたユーザーや検索エンジンを、別のURLへ自動的に転送する仕組みのこと。
  • 301(恒久的)と302(一時的)は目的が異なり、URLを完全に変更した場合は301を使う。
  • リダイレクトチェーンやリダイレクトループは表示速度やSEOに悪影響を与えるため、設定後は必ず動作確認する。
  • Canonical(正規URLのヒント)やNoindex(検索結果非表示)とは目的が異なるため、混同しないようにする。

情報ソース

より詳しくAIに聞いてみよう

  • リダイレクトとは何かを、中学生でもわかるように具体例つきで説明してください。
  • 301リダイレクトと302リダイレクトの違いを、初心者向けに整理してください。
  • Redirect と Canonical と Noindex の違いを、SEO目線で説明してください。
  • .htaccess でリダイレクトを設定するときの注意点を教えてください。
  • WordPress記事を静的HTMLへ移行するときのリダイレクト設計を相談したいです。