リダイレクト
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では、実装や状況によって POST が GET に変わることがあるためである。
301リダイレクトとは何か
301リダイレクトは、「このURLは恒久的に別のURLへ移動しました」と伝えるためのリダイレクトである。
たとえば、ページのURLを完全に変更した場合や、古いページを新しいページへ統合した場合に使われることが多い。
旧URL: https://example.com/old-item
新URL: https://example.com/new-item
このような場合に301リダイレクトを設定すると、ユーザーも検索エンジンも新しいURLへ案内される。
SEO上も、旧URLの評価を新URLへ引き継ぐ意図を伝えやすい。
ただし、301は恒久的な移動を示すため、一時的なキャンペーンやテストには向かないことがある。
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の .htaccess、Nginxの設定ファイルなどでリダイレクトを設定する。
CMSやプラグイン
WordPressでは、リダイレクト用プラグインやSEOプラグインで設定できることがある。
アプリケーション側
PHP、JavaScript、フレームワークのルーティングなどでリダイレクト処理を書くことがある。
ホスティング管理画面
レンタルサーバーやクラウドサービスの管理画面で、ドメイン転送や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を認識しているか確認すると安心である。
AI時代にリダイレクトの理解が重要な理由
AIを使ってページを作ったり、静的HTMLを生成したり、サイト構造を整理したりすると、URL変更が増えやすくなる。
そのとき、リダイレクトを理解していないと、古いURLからの流入や検索評価を失いやすい。
たとえば、次のような場面でリダイレクトが必要になることがある。
- WordPress記事を静的HTMLへ移行する
- 用語ページのslugを変更する
- 旧サイトから新サイトへ移転する
- ECサイトの商品URLを変更する
- httpからhttpsへ統一する
.htmlあり / なしを整理する
AIにリダイレクト設定を書いてもらうこともできるが、間違った設定はサイト全体の表示エラーにつながることがある。
そのため、意味を理解したうえで、少数のURLからテストすることが重要である。
初心者向けの理解の仕方
最初は、リダイレクトを「古いURLへ来た人を、新しいURLへ自動案内する仕組み」と覚えれば十分である。
特に次の3つを押さえておくと理解しやすい。
- 301 = 恒久的な移動
- 302 = 一時的な移動
- canonical = 転送ではなく正規URLのヒント
ページ移転やURL変更をするときは、削除して終わりではなく、必要に応じてリダイレクトを設定する。
この意識があるだけで、ユーザー体験とSEOの両方を守りやすくなる。
AIコーディングとの関係
AIにコード生成や修正を依頼するとき、リダイレクトの意味を理解していると、出力されたコードやエラー内容を判断しやすくなる。
あるURLにアクセスしたユーザーや検索エンジンを、別のURLへ自動的に転送する仕組みのこと。
AIへ相談するときは、「何をしたいのか」「どの環境で起きているのか」「どのファイルやエラーを見ているのか」を一緒に伝えるとよい。
用語だけを投げるより、具体的な状況と期待する結果を添えることで、より実用的な回答を得やすくなる。
よくある勘違い
リダイレクトは名前だけ覚えれば十分?
名前だけでは不十分である。
実際の開発では、どんな場面で使われ、何と混同しやすいかまで理解しておくと判断しやすい。
リダイレクトはAIに任せれば理解しなくてよい?
そうではない。
AIは説明やコードを出せるが、最終的にその内容が正しいか、今の目的に合っているかを確認するのは人間である。
リダイレクトは単独で覚えればよい?
単独ではなく、関連する用語や実際の作業の流れと一緒に覚えると理解しやすい。
用語同士のつながりを意識すると、AIへの質問やエラー調査もしやすくなる。
まとめ
- リダイレクトは、あるURLにアクセスしたユーザーや検索エンジンを、別のURLへ自動的に転送する仕組みのこと。
- 関連する用語や実際の作業場面と一緒に理解すると、使いどころを判断しやすい。
- AIコーディングでは、用語の意味を理解しているほど、AIの説明や生成コードを確認しやすくなる。
- 迷ったときは、エラー内容、目的、前提条件を整理してAIに聞くとよい。
より詳しくAIに聞いてみよう
- リダイレクトとは何かを、中学生でもわかるように具体例つきで説明してください。
- 301リダイレクトと302リダイレクトの違いを、初心者向けに整理してください。
- Redirect と Canonical と Noindex の違いを、SEO目線で説明してください。
.htaccessでリダイレクトを設定するときの注意点を教えてください。- WordPress記事を静的HTMLへ移行するときのリダイレクト設計を相談したいです。