リダイレクトとは
リダイレクトとは、訪問者や検索エンジンを、あるURLから別のURLへ自動的に転送する仕組みです。ユーザーが元のURLを要求すると、サーバーは別の宛先へ移動するよう指示を返します。リダイレクトは、ウェブサイトの保守、ドメイン移行、URL構造の変更、コンテンツの場所が変わった際のSEO価値の維持に欠かせません。HTTPリダイレクトの種類
301 - 恒久的リダイレクト
ページが恒久的に移転したことを示します。
HTTP/1.1 301 Moved Permanently
Location: https://newsite.com/page
- SEO価値(リンクエクイティ)を新しいURLへ引き継ぐ
- 検索エンジンがインデックスを更新する
- ブラウザーがリダイレクトをキャッシュする場合がある
- URLを恒久的に変更するときに適している
302 - 一時的リダイレクト(Found)
一時的な移転を示します。
HTTP/1.1 302 Found
Location: https://temporary-url.com/page
- SEO価値を恒久的に引き継ぐとは限らない
- 検索エンジンは元のURLを引き続きインデックスする
- ブラウザーはそれほど積極的にはキャッシュしない
- 一時的な変更に限って使用する
307 - 一時的リダイレクト(厳密)
リクエストメソッドを維持するHTTP/1.1のリダイレクトです。
- POSTやGETのメソッドを維持する
- 302より厳密な動作をする
- APIのリダイレクトに使用される
308 - 恒久的リダイレクト(厳密)
リクエストメソッドを維持するHTTP/1.1の恒久的リダイレクトです。
- 307と同様にリクエストメソッドを維持する
- 301と同様に恒久的である
- 最新のブラウザーが対応している
よくあるリダイレクト用途
ドメインの統合
すべての表記揺れを主要ドメインへ転送します。
example.com → www.example.com (or vice versa)
http:// → https://
oldbrand.com → newbrand.com
URL構造の変更
ウェブサイトの構成を再編成する場合に使用します。
/old-page/ → /new-page/
/category/page → /new-category/page
/blog/2020/post → /articles/post
コンテンツの移行
プラットフォーム間またはドメイン間でコンテンツを移動する場合に使用します。
blog.example.com/post → example.com/blog/post
oldsite.com/* → newsite.com/*
HTTPSの強制
すべての通信を安全なHTTPSへ転送します。
http://example.com → https://example.com
実装方法
サーバー設定(Apache)
# .htaccess
Redirect 301 /old-page https://example.com/new-page
# Multiple redirects with RewriteRule
RewriteEngine On
RewriteRule ^old-path/(.*)$ /new-path/$1 [R=301,L]
# Force HTTPS
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
サーバー設定(Nginx)
# Single redirect
location /old-page {
return 301 https://example.com/new-page;
}
# Pattern-based redirect
location ~* ^/old-path/(.*)$ {
return 301 /new-path/$1;
}
# Force HTTPS
server {
listen 80;
server_name example.com;
return 301 https://example.com$request_uri;
}
JavaScriptリダイレクト(クライアント側)
// Immediate redirect
window.location.href = "https://example.com/new-page";
// Delayed redirect
setTimeout(() => {
window.location.replace("https://example.com/new-page");
}, 3000);
メタリフレッシュ(HTML)
<meta http-equiv="refresh" content="0;url=https://example.com/new-page">
*注: SEO用途では推奨されません。*
SEO上の考慮事項
ベストプラクティス
1. 恒久的な変更には301を使う: ランキングシグナルを引き継ぐ
2. リダイレクトチェーンを避ける: A→B→C→Dのような連鎖はクロールを遅くする
3. 内部リンクを更新する: 最終的な宛先を直接指すようにする
4. リダイレクトの性能を監視する: アナリティクスで追跡する
5. 適切なカノニカルを設定する: リダイレクトを補完する
SEOへの影響
| リダイレクトの種類 | リンクエクイティの移転 | インデックス更新 |
|---|---|---|
| 301 | 約90〜99% | あり |
| 302 | 限定的 | なし |
| メタリフレッシュ | 状況による | 遅い |
| JavaScript | 限定的 | 信頼性が低い |
よくあるリダイレクトの問題
リダイレクトチェーン
複数のリダイレクトが順番に実行される状態です。
A → B → C → D (Bad: 4 hops)
A → D (Good: Direct)
リダイレクトループ
リダイレクトが無限に循環する状態です。
A → B → A → B → ... (Error: ERR_TOO_MANY_REDIRECTS)
混在コンテンツへのリダイレクト
HTTPSページをHTTPへ転送する、または適切な連鎖なしにその逆へ転送する状態です。
適切に実装されたリダイレクトは、URLやドメインを変更する際に、ユーザー体験と検索エンジンのランキングを維持するために不可欠です。