リダイレクトとは何だろう。どのようにしたらいいのだろうか。思われたことはないでしょうか。301リダイレクトと302リダイレクトは、Webサイトの運営、SEOにおいて重要な技術的要素です。これらは単なるURLの転送設定ではなく、サイトのSEOや利用者体験に大きな影響を与える重要な施策となります。実際にWeb制作の現場、企業の運用担当者で301と302リダイレクトとは?という場合も多いにあります。正しく理解して、活用することがより良いWebサイトの運用を行うことができます。実際に手を動かさなくてもよいので、どのようなことなのかを把握しておくことは担当として把握しておくと良いと思います。この記事では、リダイレクトの基礎知識から実装する設定方法、SEOへの影響までを紹介していきます。
リダイレクトの基礎知識
リダイレクトとは
リダイレクトとは、既存のURLを別のURLに解決することで、ページが別の場所に存在することをユーザーやGoogle検索に伝える仕組みです。これにより、ユーザーを自動的に正しいページへ誘導し、スムーズなサイト運営を実現します。
- ドメイン移転時の対応:サイトを新しいドメインに移転する際、シームレスな移行を実現するために使用
- URL正規化:同一コンテンツに複数のアクセスURL(https://○○○.com/home、http://home.○○○.com、https://www.○○○.comなど)が存在する場合、一つの優先(正規)URLにトラフィックを集約
- サイト統合:2つのウェブサイトを結合した際、古いURLへのリンクを適切なページへ転送
- コンテンツ再構築:ページを削除または移動する際、ユーザーを新しい適切なページへ誘導
主要なリダイレクトタイプ
リダイレクトは、ユーザーからは同じように見えますが、Google検索では強弱のあるシグナルとしてリダイレクト先の正規性を判断します。リダイレクトの期間と検索結果での表示希望に応じて、適切なタイプを選択することが重要です。
301リダイレクト(恒久的)
URLの恒久的な変更を示すステータスコードです。検索エンジンに対して、ページが完全に移転したことを通知します。Google検索結果には新しいリダイレクト先のURLが表示されます。
Googleは「Googlebotはリダイレクトの追跡を行い、リダイレクトはインデックス登録パイプラインによって、リダイレクト先が正規版であることを示す強いシグナルとして使用されます。」としています。
302リダイレクト(一時的)
URLの一時的な変更を示すステータスコードです。元のURLに戻る可能性がある場合に使用します。Google検索結果にはリダイレクト元のURLが継続して表示されます。
Googleは「Googlebotはリダイレクトの追跡を行い、リダイレクトはインデックス登録パイプラインによって、リダイレクト先が正規版であることを示す弱いシグナルとして使用されます。」としています。
インデックス登録パイプラインとは
「インデックス登録パイプライン」とは、検索エンジンがウェブ上のコンテンツを収集し、検索結果として表示するまでの一連の処理プロセスのことを指します。通常、以下のようなステップで構成されます。
1. クロール
検索エンジンのクローラー(ボット)がウェブページを巡回し、新しいページや更新されたコンテンツを見つけ出します。このプロセスでは、サイト内のリンクや外部リンクをたどりながら、情報を収集します。
2. レンダリング
クロールしたページをユーザーが閲覧する状態に近づけるため、HTML、CSS、JavaScriptを読み込みます。動的なコンテンツも含めて正確に読み取れるようにするための処理です。
3. インデックス登録
クロールおよびレンダリングで収集した情報を検索エンジンのデータベースに保存します。各ページのコンテンツ、タイトル、メタタグ、見出しタグなどが含まれ、後の検索クエリに応じて迅速に引き出せるように整備されます。
4. ランキング
インデックスに登録された情報をもとに、検索クエリに応じたページの順位を決定します。ユーザーが入力するキーワードに対して、関連性や品質、信頼性などを基にランク付けを行います。
301リダイレクトと302リダイレクトの違い
| 特徴 | 301リダイレクト | 302リダイレクト |
|---|---|---|
| 目的 | 恒久的な移転 | 一時的な移転 |
| SEO評価の移行 | 完全に移行 | 部分的に移行 |
| 検索結果表示 | 新URLが優先 | 元URLが優先 |
使い分けの基準
- 301使用時サイトの完全移転、SSL化、URL体系の変更
- 302使用時メンテナンス中の一時転送、A/Bテスト実施時
- 判断基準変更が恒久的か一時的かで選択
SEOへの影響と注意点
PageRankの扱いについて
2024年3月22日に更新されたGoogle検索セントラルによると「301 や 302 などのサーバーサイドのリダイレクトによって PageRank の損失が生じることはありません。」と記載されています。
正しく運用をすることで検索への影響は少なくできます。現在、GoogleはPageRankの移行について以下のように扱っています。
- 301リダイレクト:
- 検索結果に新しいリダイレクト先を表示
- 新URLへの完全な評価の移転
- インデックス更新の優先処理
- 302リダイレクト:
- 検索結果にリダイレクト元のページを表示
- 元URLの評価維持
- 一時的な変更として処理
リダイレクトの実装方法
サーバー側でのリダイレクト設定は、Google検索とユーザーを確実に正しいページに導くための最も信頼性の高い方法です。実装方法は、使用しているホスティング環境やサーバーの種類によって異なります。
主要なWebサーバーでの実装方法
Apache(.htaccess)での設定
Apache mod_aliasを使用した基本的な設定:
# 301(恒久的)リダイレクト Redirect permanent "/old" "https://○○○.com/new" # 302(一時的)リダイレクト Redirect temp "/temp-old" "https://○○○.com/temp-new"
より複雑なリダイレクトには mod_rewrite を使用:
RewriteEngine on # 301リダイレクト(恒久的) RewriteRule "^/service$" "/about/service" [R=301,L] # 302リダイレクト(一時的) RewriteRule "^/temp-service$" "/about/temp" [R=302,L]
NGINX での設定
基本的なリダイレクト設定:
location = /service {
# 301(恒久的)リダイレクト
return 301 $scheme://○○○.com/about/service;
# 302(一時的)リダイレクト
return 302 $scheme://○○○.com/about/temp;
}
複雑なパターンでのリダイレクト:
location = /service {
# 301リダイレクト
rewrite ^service/offline/([a-z]+)/?$
service?name=$1 permanent;
# 302リダイレクト
rewrite ^service/temp/([a-z]+)/?$
service?name=$1 redirect;
}
プログラミング言語での実装
PHPでの設定
301(恒久的)リダイレクト:
header('HTTP/1.1 301 Moved Permanently');
header('Location: https://○○○.com/new-page');
exit();
302(一時的)リダイレクト:
header('HTTP/1.1 302 Found');
header('Location: https://○○○.com/temp-page');
exit();
実装時の重要な注意点
- HTTPヘッダーは必ずコンテンツ出力前に送信する
- リダイレクト後は必ずスクリプトを終了する
- 絶対URLを使用することを推奨
- SSL/TLS使用時はHTTPSで始まるURLを指定
実装方法の選択
- サーバー設定可能な限りサーバー側の設定(.htaccessやNGINX設定)を優先
- プログラム実装動的な条件判断が必要な場合はPHPなどのプログラミング言語を使用
- 確認方法実装後は必ずブラウザとGoogle Search Consoleで動作を確認
実装のベストプラクティス
- 可能な限りサーバー側のリダイレクトを使用
- 正しいステータスコードの選択
- リダイレクトループの防止
- パフォーマンスへの影響を考慮
実装後の確認事項
- リダイレクトの正常動作
- ステータスコードの確認
- 検索結果への影響モニタリング
- ユーザー行動の分析
リダイレクト設定のベストプラクティス
設定時の注意点
- リダイレクトループの防止
- 循環参照の確認
- テスト環境での検証
- チェーン削減
- 直接的な転送設定
- 中間転送の最小化
- 監視と管理
- 定期的な動作確認
- アクセスログの分析
代表的な使用事例と設定例
SSL化対応
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
WWW対応
RewriteEngine On
RewriteCond %{HTTP_HOST} ^example\.com [NC]
RewriteRule ^(.*)$ https://www.○○○.com/$1 [L,R=301]
サイト移転
RewriteEngine On
RewriteCond %{HTTP_HOST} ^old-domain\.com$ [NC]
RewriteRule ^(.*)$ https://new-domain.com/$1 [R=301,L]
実装のポイント
- バックアップの作成
- 段階的な実装
- モニタリングの実施
効果測定の指標
- 検索順位の変動
- アクセス数の推移
- エラー率の確認