logo
GeekFormat

リダイレクトチェッカー

リダイレクトチェーン検査

301/302/307/308 リダイレクトをホップごとに検査し、ループ、クロスドメインリダイレクト、HTTPS ダウングレードの問題を特定します。

ブラウザにURLを入力すると、背後には見えない一連のジャンプが発生している可能性があります:HTTP→HTTPS、非www→www、旧ドメイン→新ドメイン、短縮URL→長いURL……リダイレクトの各ホップは時間を消費し、SEOランキングに影響を与え、さらにはHTTPSをHTTPに静かにダウングレードしている可能性もあります。リダイレクトチェッカーはサーバー視点でURLの完全なジャンプパスをホップごとに追跡し、各ホップのステータスコード(301/302/303/307/308)、Locationヘッダー、ターゲットアドレスを表示し、ループジャンプ、クロスドメインジャンプ、HTTPSダウングレード、チェーン切断などの問題を自動検出します。ドメイン移行、HTTPS展開、SEO最適化における隠れたリダイレクトの隐患を発見するのに役立ちます。

関連おすすめ

ユースケース

  • ドメイン移行検証:ウェブサイトを旧ドメインから新ドメインに切り替えた後、旧URLが正しく301永久リダイレクトで新アドレスに移行しているかホップごとに確認し、チェーンジャンプや誤ったステータスコードによるトラフィック損失を回避します
  • HTTPS展開チェック:HTTP→HTTPSジャンプチェーンが単一ホップの301か確認し、HTTP→HTTPS→HTTPのダウングレードループが存在しないかチェックし、HSTS設定が有効か検証します
  • 短縮URLランディングページ検出:短縮URL(t.cn/bit.lyなど)、マーケティングUTMリンク、ソーシャルシェアリンクの完全なジャンプパスを追跡し、最終ランディングページが期待通りのアドレスか確認し、中間ジャンプでトラッキングパラメータや悪意のあるジャンプが挿入されていないか調査します
  • wwwと非wwwの正規化:wwwドメインとルートドメインが正しく相互に301ジャンプして正規化バージョンになっているかチェックし、デュアルトラック運用による重複コンテンツのSEO問題を回避します
  • ループリダイレクト調査:ブラウザでERR_TOO_MANY_REDIRECTSエラーが発生した場合、ツールでループが発生するノードを正確に特定し、Nginx/Apache設定エラー、CDNルールの衝突、WordPressプラグインによるループかを区別します
  • CDNとリバースプロキシのデバッグ:Cloudflare、アリクラウドCDN、Nginxリバースプロキシなどの多層アーキテクチャにおけるリダイレクトの衝突を調査し、CDNルールとオリジンサーバールールの相互ジャンプ問題を識別します
  • SEO健全性監査:ウェブサイトのコアページのリダイレクトチェーン長を定期的にチェックし、多ホップジャンプがPageRank伝達効率に与える影響を評価し、長すぎるジャンプチェーンを最適化します
  • クロスドメインジャンプリスク評価:ログインジャンプ、OAuthコールバック、決済ジャンプなど、クロスドメインリダイレクトが関係するシナリオを検出し、Cookieとセッションがクロスドメイン過程で正しく伝達されるか確認します
  • ロードバランシングとマルチデータセンター検証:マルチデータセンター、GSLBグローバルロードバランシングシナリオでのリダイレクト戦略をチェックし、異なる地域のユーザーが最寄りの利用可能なノードに正しくジャンプするか確認します
  • リダイレクトキャッシュデバッグ:301永久リダイレクトと302一時リダイレクトのCache-ControlおよびExpiresヘッダー設定を検証し、ブラウザが古いリダイレクトルールをキャッシュすることによる異常なアクセスを調査します

特徴

  • ホップごとの完全追跡:サーバー視点で各ホップのリダイレクトを追跡し、元のURL、各ホップのステータスコード、ステータステキスト、Locationレスポンスヘッダー、完全なジャンプパスを順に表示し、中間ノードを一切漏らしません
  • 全ステータスコード対応:301 Moved Permanently、302 Found、303 See Other、307 Temporary Redirect、308 Permanent Redirectの5種類の標準リダイレクトステータスコードをカバーし、各ステータスコードの意味の違いを表示します
  • リダイレクトループ検出:A→B→Aなどの閉ループジャンプパターンを自動識別し、ループが発生する具体的なノード位置とループ長をマークし、ERR_TOO_MANY_REDIRECTSエラーの根源を正確に特定します
  • クロスドメインジャンプ識別:ホップごとにHost/Domainの変化を検出し、クロスドメインジャンプノードをマークし、Cookie損失リスクとCORSプリフライトの問題を通知します
  • HTTPSダウングレード警告:リダイレクトチェーン内のHTTP(非HTTPS)ノード数を集計し、HTTPS→HTTPダウングレードジャンプをマークし、セキュリティリスクとSEOへの負の影響を通知します
  • チェーン切断保護:最大ジャンプ深度制限(20ホップ)を設定し、チェーンが長すぎる場合に自動的に切断してマークし、無限追跡によるリクエストタイムアウトを回避します
  • ジャンプ統計サマリー:総ジャンプ回数、最終ランディングURL、ループ検出の有無、クロスドメインの有無、HTTPノード数、チェーン切断の有無などの主要指標を一覧表示します
  • SEO影響評価:ジャンプ回数、ステータスコードタイプ、HTTPSカバー状況に基づいて、PageRankの伝達とCore Web Vitalsへの影響レベルを自動的に評価します
  • プリセットテストURL:geekformat.com、github.com、httpbin.org/redirect、短縮URLサービスなどの一般的なテストアドレスを内蔵し、ワンクリックで入力してすぐに体験できます
  • 最近の検索履歴:最近8件のクエリ履歴を自動保存(ブラウザローカルに保存)、ワンクリックで再検出可能。修復前後の効果を比較するのに便利です
  • 診断提案カード:検出されたループジャンプ、クロスドメインジャンプ、HTTPダウングレード、チェーン過長などの問題に対し、具体的な修復提案とベストプラクティスガイドを提供します
  • 詳細とサマリーのダブルビュー:デフォルトでチェーンサマリーカードを表示し、展開すると各ホップの完全なリクエストURL、レスポンスステータス、Locationターゲット、HTTPSマークを確認できます

使い方

  1. 入力ボックスに検出するURLを入力します(http://またはhttps://プロトコルプレフィックスが必要です)。またはプリセットURLボタン(geekformat.com/github.com/httpbin.org/redirectなど)をクリックしてテストアドレスをすばやく入力します
  2. 「リダイレクトチェーンを追跡」ボタンをクリックすると、ツールはサーバー側からリクエストを開始し、Locationレスポンスヘッダーをたどって各ホップの完全な情報を記録します
  3. 上部のジャンプサマリーカードを確認します:総ジャンプ回数、最終ランディングURL、ループ検出の有無、クロスドメインジャンプの有無、HTTPノード数、ジャンプ数過多によるチェーン切断の有無などが表示されます
  4. チェーン可視化エリアで各ホップの詳細情報を確認します:シーケンス番号、リクエストURL、レスポンスステータスコードと説明テキスト、Locationレスポンスヘッダー内のターゲットURL、HTTPSセキュリティマークなどです
  5. 診断警告カードに注目してください:ループジャンプ(赤)、HTTPSダウングレード(オレンジ)、クロスドメインジャンプ(黄)、チェーン過長(黄)が検出された場合、ツールは対応する位置をハイライト表示し、問題の説明を提供します
  6. SEO影響評価エリアを使用して、現在のリダイレクトチェーンがPageRank伝達効率、ページ読み込み速度、Core Web Vitalsに与える影響レベルと最適化提案を確認します
  7. 検出が完了したら、最近のクエリ履歴から任意のレコードをクリックしてすばやく再検出でき、修復前後のジャンプチェーンの変化を比較できます。また、検出結果をスクリーンショットまたはテキストでコピーして、チーム内のコミュニケーションやチケット記録に使用することもできます

よくある質問

リダイレクトチェーンは何ホップを超えると多すぎるのですか?SEOにどのような影響がありますか?

Google公式はリダイレクトチェーンを単一ホップに抑え、最大でも3ホップを超えないよう推奨しています。Google Search Centralのドキュメントによると、Googlebotは通常最大5つのリダイレクトホップまで追跡した後に追跡を停止しますが、だからといって5ホップが安全というわけではありません。リダイレクトの各ホップはページ読み込み遅延(100-300ms/ホップ)を増加させ、クロール予算を浪費し、PageRank伝達の減衰を引き起こす可能性があります。1ホップはSEOへの影響がほぼなく;2ホップは許容範囲ですが最適化を推奨し;3ホップ以上からLCPとクロール効率に影響が出始め;5ホップ以上はページがインデックスされないリスクがあります。本ツールを使用してコアページのジャンプチェーンを検出し、重要なURL(トップページ、コア製品ページ、高トラフィックのランディングページ)がすべて単一ホップで直接到達できるようにしてください。

301リダイレクトはSEOに有害ですか?PageRankは完全に伝達されますか?

正しく使用された301永久リダイレクトはSEOに有害ではありません。GoogleのGary IllyesとJohn Muellerは複数回にわたって確認しています:HTTPドメインからHTTPSドメインへの移行、および同一ドメイン内のページの永久移行における301リダイレクトのPageRank伝達は100%で、損失はありません。ただし注意点があります:1) 302一時リダイレクトはPageRankを伝達しません(または伝達効率が極めて低い);2) リダイレクトチェーン内にnoindex、robots.txtによるブロック、4xx/5xxエラーが出現すると、重み伝達は中断されます;3) クロスドメインの301移行後は、Google Search Consoleでドメイン変更通知を提出してインデックス移行を加速させる必要があります;4) 301はブラウザに長期的にキャッシュされるため、テスト段階ではまず302で検証してから301に変更することを推奨します。

なぜ私のウェブサイトは自動的にHTTPSではなくHTTPにジャンプするのですか?修復方法は?

HTTPS→HTTPダウングレードジャンプは通常以下の原因によります:1) リバースプロキシ/CDNがHTTPでオリジンに戻しており、オリジンサーバーのNginx/Apacheが$scheme変数でプロトコルを取得するとhttpになってしまう;2) アプリケーション層コード内にhttp://プレフィックスのURLがハードコードされている;3) WordPressなどのCMSのHome URLまたはSite URLがhttpに設定されている;4) .htaccess内に旧HTTPルールが残存している;5) 第三者サービス(CDN/WAF)のSSL/TLS設定が「フレキシブル」モードで「厳格」モードではない。修復手順:まず本ツールでダウングレードがどのホップで発生するかを確認;CDNのSSLを「Full (strict)」モードに設定;NginxでX-Forwarded-Protoヘッダーを正しく処理;WordPressではwp-config.phpに$_SERVER['HTTPS']='on'; を追加;HSTSレスポンスヘッダーを展開してブラウザレベルでのダウングレードを防止;すべてのリダイレクトルールでターゲットがhttps://であることを確認。

Nginxのリダイレクトループ(ERR_TOO_MANY_REDIRECTS)を修復するにはどうすればよいですか?

Nginxのリダイレクトループの90%以上は、リバースプロキシ/CDNシナリオでX-Forwarded-Protoヘッダーが正しく処理されていないことが原因です。修復方法:1) CDN/ロードバランサーがバックエンドにX-Forwarded-Protoヘッダーを送信するようにする:proxy_set_header X-Forwarded-Proto $scheme; 2) Nginxの判断では、$schemeではなくX-Forwarded-Protoを使用してHTTPSへのジャンプ可否を決定します。mapブロックの使用が推奨されます:map $http_x_forwarded_proto $is_https { default 0; "https" 1; } server { listen 80; if ($is_https = 0) { return 301 https://$host$request_uri; } } 3) serverブロック内にrewriteルールを書いて自分自身に無限にマッチさせないようにする;4) wwwと非wwwのリダイレクトは1つのserverブロック内でのみ片道ジャンプを構成し、双方向に構成しない。

Apache .htaccessのリダイレクトループを修復するにはどうすればよいですか?

Apache .htaccessのループは通常RewriteRuleルールの衝突が原因です。修復手順:1) RewriteEngine Onが1回だけ出現するようにする;2) HTTP→HTTPSジャンプルールをすべてのルールの最前部に配置し、以下を使用:RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301];3) www/非wwwルールはHTTPSジャンプの後に配置し、かつ片道ジャンプ(非www→wwwまたはその逆)のみを行う;4) [L]フラグの意味は「last」ですが、ルールがURLを変更した場合は最初からマッチングをやり直すため、ループが発生する可能性があります。複雑なルールでは[END]フラグの使用を考慮してください(Apache 2.3.9+);5) 複数の.htaccessファイルがないか確認(サブディレクトリ内の.htaccessも有効になります);6) 一時的にR=301をR=302に変更してテストし、ブラウザキャッシュの干渉を避ける。

Cloudflareによるリダイレクトループを修復するにはどうすればよいですか?

Cloudflareのループで最も一般的な原因は、SSL/TLS暗号化モードの設定誤りまたはページルールの衝突です:1) CloudflareのSSL/TLSモードを「Flexible」から「Full」または「Full (strict)」に変更してください——FlexibleモードではCloudflareからオリジンサーバーへの通信がHTTPになるため、オリジンでHTTPS強制ジャンプを設定しているとループが発生します;2) Cloudflareの「Edge Certificates」にある「Always Use HTTPS」がオンになっているか確認し、オリジンとCloudflareの両方で重複してHTTPSジャンプを設定しないでください;3) Page Rulesに相互に衝突する転送ルールがないか確認してください;4) Cloudflare WordPressプラグインを使用している場合は、プラグインとCloudflareの両方でHTTPSリダイレクトを設定しないでください;5) Forwarding URLルールが、Cloudflareによって再びリダイレクトされるアドレスを指していないか確認してください。

301、302、307、308リダイレクトの違いは何ですか?どれを選ぶべきですか?

核心的な違いは「永久的かどうか」と「リクエストメソッドを保持するかどうか」の2つの軸にあります。簡単な選択ガイド:通常のウェブページGETリクエスト(ユーザーがページにアクセスする場合)——永久的な移行には301(ドメイン移行、HTTPS切り替え、URL永久変更)、一時的なジャンプには302(A/Bテスト、一時メンテナンス、ログインジャンプ)を使用してください;POST/PUT/DELETEリクエスト(API呼び出し、フォーム送信)——永久的な移行には308、一時的なジャンプには307を使用し、リクエストメソッドとリクエストボディが失われないようにしてください;303は、POSTフォーム送信後に結果ページにジャンプする場合に専用で使用します(強制的にGETにして重複送信を防止)。簡単な覚え方:301=永久・GET安全、302=一時・GET安全、307=一時・全メソッド、308=永久・全メソッド、303=POST後結果ページ。

ブラウザは301リダイレクトを永久にキャッシュしますか?301キャッシュをクリアするにはどうすればよいですか?

301永久リダイレクトはデフォルトでブラウザにキャッシュされますが、キャッシュ期間はレスポンスヘッダーのCache-ControlとExpiresの設定に依存します。キャッシュヘッダーが明示的に指定されていない場合、ブラウザによってデフォルトのキャッシュ動作が異なります:Chromeは通常301リダイレクトを数週間から数ヶ月キャッシュします(ブラウザを再起動した後もキャッシュされている場合があります);Firefoxはデフォルトで301をキャッシュしますが、ブラウザ再起動後に再検証する場合があります;Safariのキャッシュ戦略は比較的保守的です。301キャッシュをクリアする方法:1) Chrome:設定→プライバシーとセキュリティ→閲覧データを削除→期間を「すべての期間」に選択→「キャッシュされた画像とファイル」にチェック→データを削除;2) 開発者ツール(F12)を開いた状態でNetworkパネルの「Disable cache」にチェック;3) URLの後に意味のないクエリパラメータ(?nocache=1)を追加してキャッシュをバイパス;4) Chrome上級者はchrome://net-internals/#socketsでFlush sockets、またはchrome://net-internals/#dnsでClear host cache;5) テスト段階では301の代わりに302一時リダイレクトを使用し、確認後に301に変更してください。

Meta RefreshとHTTPリダイレクトの違いは何ですか?どちらが優れていますか?

Meta RefreshはHTMLドキュメント内の<meta>タグで実装されるリダイレクトであり(例:<meta http-equiv="refresh" content="0;url=https://example.com/new">)、ブラウザ側でHTMLを解析した後にジャンプが実行されます。一方、HTTPリダイレクトは3xxステータスコードによってHTTPプロトコルレベルでサーバーが直接指示します。違いの比較:1) 速度:HTTPリダイレクトはレスポンスヘッダーを受け取った時点でジャンプを開始しますが、Meta RefreshはHTMLのダウンロードと解析が完了するまで待つ必要があり、速度がより遅くなります;2) SEO:Googleは通常Meta Refreshを認識して重みを伝達します(delay=0の場合)が、公式にはHTTP 301/302リダイレクトの使用が推奨されています。Meta Refreshはクライアントサイドジャンプであるため、シグナルがサーバーサイドリダイレクトほど明確ではないからです;3) 遅延:Meta Refreshは遅延時間を設定できますが(content="5;url=..."なら5秒後ジャンプ)、HTTPリダイレクトにはこの機能はありません;4) アクセシビリティ:W3CはMeta Refreshの使用を推奨していません。スクリーンリーダーなどの支援技術での処理が適切でなく、ユーザーを混乱させる可能性があるからです;5) 戻るボタン:Meta Refreshは一部のブラウザで戻るボタンの動作を壊す可能性があります。結論:常にHTTP 301/302/307/308リダイレクトを優先的に使用し、サーバー設定を制御できない場合(静的ページプラットフォームでサーバー側ルールを設定できない場合など)を除き、Meta Refreshの使用は避けてください。

リダイレクトはCore Web VitalsのLCPに影響しますか?

はい、非常に大きな影響があります。リダイレクトはブラウザがHTMLドキュメントを取得する前に発生するため、リダイレクトの各ホップはHTMLドキュメントのダウンロード開始時間を遅らせます。LCP(Largest Contentful Paint、最大コンテンツフルペイント)の計算起点はナビゲーション開始時間であり、ブラウザは最終的なHTMLを取得した後でなければDOMの解析、CSSの読み込み、LCP要素のレンダリングを開始できません。1ホップあたり150msのネットワーク遅延(DNS+TCP+TLS+リクエストレスポンス)が増加すると仮定すると、3ホップのリダイレクトでLCPが少なくとも450ms増加し、これはLCPを「良好」(≤2.5s)から「要改善」(2.5-4s)の区間まで押し上げるのに十分です。GoogleのCore Web Vitalsドキュメントでは、「複数のリダイレクトを回避する」ことがLCP最適化の重要な提案の1つとして明記されています。ベストプラクティス:コアページはゼロリダイレクト(直接最終URLにリンク)を確保し、HTTP→HTTPSやwww正規化といった必要なリダイレクトは単一ホップに抑えてください。

短縮URLが最終的にどこにジャンプするかを確認するにはどうすればよいですか?

短縮URL(bit.ly、t.cn、dwz.cn、url.cnなど)は通常1~3ホップのリダイレクトで最終URLに到達し、中間にUTMトラッキングパラメータ、デバイス検出ジャンプ、地域別ジャンプなどが含まれる場合があります。本ツールを使用すると:1) 短縮URLを入力し(http://またはhttps://を含む);2) 追跡をクリックして各ホップの完全なパスを確認し;3) 最終ランディングURL、ジャンプ回数、ステータスコードタイプを確認し;4) 中間ジャンプにHTTPダウングレードや異常なクロスドメインがないかチェックできます。注意:一部の短縮URLはUser-AgentやIP地域によって異なる最終目標を返す場合があります。本ツールはサーバーIPでリクエストを行うため、ブラウザで直接アクセスした場合と結果が若干異なる場合があります(特に海外の短縮URLサービスでは)。微信/QQのurl.cn短縮URLについては、微信環境内でないと目標ページに正しくジャンプしない場合があります。

HTTPS強制ジャンプは301と302のどちらを使うべきですか?HSTSは必要ですか?

HTTPS強制ジャンプには301永久リダイレクトを使用すべきです。HTTPからHTTPSへの移行は永久的な変更であり、一時的なジャンプではないからです。301を設定した後、HSTSレスポンスヘッダーも展開すべきです。完全なHTTPS強制スキームは3つの段階に分かれます:1) 第一段階(テスト期):まずHTTP→HTTPS 301リダイレクトを設定し、HSTSは有効にせず、1~2週間観察してすべてのリソースとサブドメインが正常に動作することを確認します;2) 第二段階(安定期):Strict-Transport-Securityレスポンスヘッダーを追加し、初期のmax-ageは短めに設定し(max-age=300の5分など)、段階的にmax-age=31536000(1年)まで増やしていきます;3) 第三段階(Preload):すべてのサブドメインがHTTPSをサポートしていることを確認した後、includeSubDomainsとpreloadディレクティブを追加し、HSTS Preload List(hstspreload.org)に提出して、ブラウザにドメインのHSTSポリシーを内蔵させ、初回アクセス時のHTTPウィンドウを解消します。HSTSは一度ブラウザにキャッシュされると、max-ageが期限切れになるまでサーバー側で取り消すことができないため、十分なテストを行ってください。

JavaScriptのwindow.locationジャンプとHTTPリダイレクトの違いは何ですか?

JavaScriptジャンプ(window.location.href='https://example.com'など)とHTTP 3xxリダイレクトには本質的な違いがあります:1) 実行レベル:HTTPリダイレクトはプロトコル層でサーバーがステータスコードを返し、ブラウザはレスポンスヘッダーを受け取った時点で即座にジャンプします;JSジャンプはHTMLのダウンロード、JSの解析と実行が完了した後にジャンプするため、速度がより遅くなります;2) SEO:検索エンジンクローラーはHTTP 301/302リダイレクトを正しく認識して追跡し重みを伝達しますが、JSジャンプのSEO効果はクローラーがJSを実行するかどうかと実行タイミングに依存し、シグナルが弱く不安定です;3) 中間過程:JSジャンプの前にページの読み込みが既に開始されているため(白画面や一部コンテンツのちらつきが発生する場合があります)、HTTPリダイレクトではユーザーが直接目標ページに到達するため、体験がよりスムーズです;4) 信頼性:JSはブラウザ、拡張機能、Content Security Policyによってブロックされる可能性がありますが、HTTPリダイレクトはブラウザのコア機能によって処理されるため、信頼性が最も高いです。結論:URLを永久的/一時的にジャンプさせる必要がある場合は常にサーバーサイドのHTTP 301/302リダイレクトを使用し、JSジャンプはインタラクティブロジック内のページナビゲーション(フォーム検証後のジャンプ、ボタンクリックによるジャンプなど)にのみ使用してください。

リダイレクトチェーンはA/Bテストの結果を不正確にしますか?

はい、リダイレクトチェーンはA/Bテストに多面的な影響を与えます:1) リダイレクトによってA/Bテストを実装する場合(ユーザーの50%を302でバージョンAに、50%をバージョンBにジャンプさせる場合)、リダイレクト遅延によって2つのバージョンのページ読み込み速度が異なり、速度自体がコンバージョン率に影響を与える可能性があるため(速度の速いバージョンは当然コンバージョン率が高くなります)、テストに偏りが生じます;2) リダイレクト過程でUTMパラメータや参照元マーカーが失われ、アトリビューションデータが不正確になる可能性があります;3) 302リダイレクトが長期間継続すると、Googleが独自に永久リダイレクトと判断して重みを伝達し、テストページのSEOに影響を与える可能性があります;4) 多ホップリダイレクトのいずれかのホップでCookieが設定されると、ユーザーのグループ分けロジックに影響を与える可能性があります。A/Bテストにはサーバーサイドレンダリングによる振り分けやクライアントサイドJSによる振り分け(Google Optimize、Optimizelyなど)を使用することを推奨し、リダイレクトによる振り分けは避けてください。どうしてもリダイレクトを使用する必要がある場合(完全に異なるURLパスをテストする場合など)は、302を使用し(301は使用せず)、かつ単一ホップで直接到達するようにし、テスト終了後は速やかにリダイレクトを削除してください。

ウェブサイト全体のリダイレクトチェーンを一括で確認するにはどうすればよいですか?

ウェブサイトのリダイレクトチェーンを一括確認するにはクローラーツールを組み合わせる必要があります:1) Screaming Frog SEO Spiderなどのクローラーツールを使用してウェブサイト全体をクロールし、Redirect ChainsレポートですべてのリダイレクトURLとチェーン長を確認します;2) Ahrefs、Semrush、SitebulbなどのSEOツールのサイト監査機能を使用すると、リダイレクトチェーンやループを自動的に検出してくれます;3) コアページリストについては、スクリプトを作成して本ツールのバックエンドAPIを呼び出し一括検出することもできます;4) Google Search Consoleの「ページインデックス」レポートで「リダイレクトエラー」や「リダイレクトチェーンが長すぎる」の通知を確認します;5) Chrome DevToolsのLighthouse監査を使用すると、Performance部分でリダイレクトの問題が指摘されます。優先的に確認すべきページ:トップページ、主要ナビゲーションページ、高トラフィックランディングページ、最近移行/リニューアルしたページ、HTTPS切り替え後のすべてのHTTP URL、旧ドメインのすべてのURL。

术语表

リダイレクト(Redirect)
サーバーが3xxステータスコードとLocationレスポンスヘッダーを返すことで、クライアントに別のURLに自動的にアクセスするよう指示するメカニズム。リダイレクトは通常ユーザーには透過的で、ブラウザは自動的にジャンプに従います。
301 Moved Permanently
永久リダイレクトステータスコード。リソースが永久的に新しい場所に移動したことを示し、検索エンジンは旧URLのPageRankを新しいURLに伝達し、ブラウザはこのリダイレクトを長期的にキャッシュします。GETリクエストシナリオでは、ドメイン移行、HTTPS切り替えなどの永久的な変更に推奨されます。
302 Found
一時リダイレクトステータスコード(旧称Moved Temporarily)。リソースが一時的に別の場所にあることを示し、検索エンジンは重みを移転せず、ブラウザは長期的にキャッシュしません。注意:POSTリクエストが302を受け取った場合、多くのブラウザはGETリクエストに変更してリダイレクトするため、リクエストボディが失われる可能性があります。
303 See Other
他の場所を参照ステータスコード。通常はPOSTフォーム送信後の結果ページジャンプに使用され、クライアントにGET方式で新しいURLをリクエストするよう明示的に要求し、フォームの重複送信を防止します。303レスポンスはキャッシュされるべきではありません。
307 Temporary Redirect
一時リダイレクトステータスコード(HTTP/1.1で導入)。意味は302と同じですが、リクエストメソッドとリクエストボディを保持するよう厳格に要求します——POSTリクエストが307を受け取った場合、POST方式のまま新しいURLをリクエストしなければならず、フォームデータは失われません。APIやフォームシナリオの一時ジャンプに適しています。
308 Permanent Redirect
永久リダイレクトステータスコード(RFC 7538で定義)。意味は301と同じですが、リクエストメソッドとリクエストボディを保持するよう厳格に要求します——POSTリクエストが308を受け取った場合、POST方式のままリダイレクトします。301の「メソッドセーフ」バージョンで、モダンブラウザでは完全にサポートされています。
Locationヘッダー
HTTPレスポンスヘッダーフィールドの1つ。3xxリダイレクトレスポンスでターゲットURLを指定するために使用されます。絶対URL(推奨)または相対URLが可能で、クライアントは受け取ると自動的にそのURLに新しいリクエストを開始します。Locationヘッダー内の非ASCII文字はURLエンコードする必要があります。
リダイレクトチェーン(Redirect Chain)
初期URLから最終ランディングURLまでの間に経由する一連の連続したリダイレクト。例えばA→B→C→Dは3ホップのリダイレクトチェーンを形成します。長すぎるリダイレクトチェーンは読み込み速度を低下させ、SEOの重みを損なうため、単一ホップに抑え、最大でも3ホップを超えないようにすることが推奨されます。
リダイレクトループ(Redirect Loop)
リダイレクトチェーン内であるURLが重複して出現し、無限ジャンプの閉ループを形成すること(A→B→Aなど)。ブラウザは最大ジャンプ回数(通常20回)に達するとERR_TOO_MANY_REDIRECTSエラーを表示します。一般的な原因にはHTTP↔HTTPSの相互ジャンプ、www↔非wwwの相互ジャンプ、リバースプロキシでのプロトコル損失などがあります。
ドメイン移行(Domain Migration)
ウェブサイトがあるドメインから別のドメインに永久的に切り替わるプロセス。ブランド名の変更、企業の買収合併などがあります。移行時には旧ドメインのすべてのURLを301永久リダイレクトで新ドメインの対応ページに移行し、Google Search Consoleでドメイン変更通知を提出する必要があります。
URL正規化(URL Canonicalization)
同一コンテンツの複数のURLバリアント(www/非www、末尾スラッシュの有無、HTTP/HTTPS、大文字小文字の違いなど)を唯一の標準URLに統一するプロセス。通常は301リダイレクトで実現されます。正規化により重複コンテンツ問題を回避し、SEOの重みを集中させます。
HTTPS強制ジャンプ
すべてのHTTP(80番ポート)リクエストを301リダイレクトでHTTPS(443番ポート)に移行する設定。SSL/TLS証明書の導入後に必要な手順です。通常はHSTSレスポンスヘッダーと併用され、初回アクセスのHTTP平文ウィンドウを解消します。
HSTS
HTTP Strict Transport Security(厳格輸送セキュリティ)。Strict-Transport-Securityレスポンスヘッダーを通じて、指定された期間内はそのドメインへのHTTPSでのアクセスのみを許可するようブラウザに伝えます。ブラウザは内部で自動的にHTTPをHTTPSにアップグレードし、サーバーのリダイレクトは不要になります。SSLストリッピング攻撃を効果的に防御します。
短縮URL(Short URL)
長いURLを短いURLに変換するサービス(bit.ly、t.cnなど)。アクセス時には301/302リダイレクトで元のURLにジャンプします。短縮URLの背後には多ホップのジャンプチェーンが隠れていることが多く、トラッキングパラメータが含まれていたり、特定の条件下で異なるターゲットにジャンプしたりする場合があります。
PageRank
Googleの創設者Larry PageとSergey Brinが発明したウェブページランキングアルゴリズム。リンク関係を通じてページの権威性を評価します。301永久リダイレクトは旧URLのPageRankを新しいURLに伝達しますが、302一時リダイレクトは通常伝達しないか、ほとんど伝達しません。
Core Web Vitals
Googleが定義したコアウェブエクスペリエンス指標。LCP(最大コンテンツフルペイント、読み込みパフォーマンスを衡量、良好基準≤2.5s)、FID/INP(インタラクティブ応答性、良好基準≤100ms/200ms)、CLS(視覚的安定性、良好基準≤0.1)を含みます。リダイレクトチェーンはHTMLのダウンロードを遅らせ、LCP指標を直接悪化させます。
クロスドメインリダイレクト(Cross-origin Redirect)
リダイレクトターゲットURLが元のURLのドメインと異なること(完全に異なるドメインまたは異なるサブドメインを含む)。クロスドメインリダイレクトは同源戦略の制限を受け、Cookieが送信されない、第三者Cookieがブロックされる、CORSプリフライトが失敗するなどの問題が発生する可能性があります。
チェーン切断(Chain Truncation)
リダイレクトチェーンのホップ数が、ツールまたはブラウザが設定した最大深度制限(本ツールは20ホップ、Chromeは20ホップ)を超えた場合に、トラッカーがそれ以降のリダイレクトの追跡を停止し、チェーンが切断されたとマークすること。チェーン切断は通常、無限ループまたは異常に複雑なリダイレクト設定が存在することを示唆します。

HTTPリダイレクトステータスコード完全対照表

301Moved Permanentlyはい(永久)変更される可能性あり(POST→GET)ドメイン移行、HTTPS切り替え、www/非www正規化、URL永久変更
302Foundいいえ(一時)変更される可能性あり(POST→GET)一時メンテナンスページ、ログインジャンプ、A/Bテスト、短期キャンペーンページ
303See Otherいいえ(一時)はい(強制GET)POSTフォーム送信後の結果ページジャンプ、重複送信防止
307Temporary Redirectいいえ(一時)いいえ(元のメソッドを厳格に保持)API一時リダイレクト、POSTデータを保持する必要のある一時ジャンプ
308Permanent Redirectはい(永久)いいえ(元のメソッドを厳格に保持)RESTful API永久移行、PUT/DELETEメソッドを保持する必要のある永久リダイレクト

リダイレクトチェーンのSEO影響対照表

0ホップ(直接到達)影響なし、最適な状態追加遅延なし現状を維持。内部リンクは直接最終URLを指すように
1ホップPageRankは正常に伝達、SEO影響は無視できる約100-300msの遅延が増加(1回の往復)許容範囲。HTTP→HTTPSとドメイン正規化の一般的なホップ数
2ホップ重み伝達にわずかな減衰の可能性あり、クローラーは正常に追跡可能約200-600msの遅延が増加単一ホップに最適化することを推奨。内部リンクが中間ジャンプURLを指していないか確認
3ホップ重み伝達効率が低下、一部のクローラーは追跡を放棄する可能性約300-900msの遅延が増加、LCPに影響が出る可能性必須で最適化。リダイレクトルールを統合して直接最終URLに
4-5ホップPageRankが明らかに減衰、インデックスに影響が出る可能性、クロール予算の浪費500ms~1.5sの遅延が増加、LCPが基準超過の可能性大緊急で修復。CDN/オリジン/アプリの多層リダイレクトの重ねがけを確認
6ホップ以上深刻なリスク。検索エンジンが追跡を停止し、ページがインデックスから外れる可能性遅延が1秒以上、ユーザーエクスペリエンスが極めて悪い直ちにループまたは設定エラーを調査し、リダイレクトルールを再構築
ループ(ERR_TOO_MANY_REDIRECTS)ページが完全にアクセス不能、検索エンジンがインデックスから削除ページが読み込めず、ブラウザがエラーを表示最優先で修復。本ツールを使用してループノードを特定

よくあるリダイレクト設定エラーと修復方案

ERR_TOO_MANY_REDIRECTSループエラー、HTTP↔HTTPSが繰り返しジャンプするCDN/ロードバランサーがHTTPでオリジンに戻し、オリジンサーバーがX-Forwarded-Protoヘッダーを正しく処理せず、常にHTTPSにリダイレクトするNginx設定に追加:set $forwarded_scheme $http_x_forwarded_proto; if ($forwarded_scheme != "https") { return 301 https://$host$request_uri; } または$scheme変数をproxy_set_header X-Forwarded-Proto設定と併用
wwwと非wwwが相互にジャンプしてループを形成するCDN層でwww→非wwwのジャンプを設定し、オリジンのNginxで非www→wwwのジャンプを設定しているため、ルールが衝突している1つの正規化バージョンを選択(非wwwまたはwwwを推奨、一貫性を保持)、1層のみ(CDNまたはオリジン)でリダイレクトを設定し、他の層の対応ルールを削除
リダイレクトチェーンが4-5ホップ経てから最終ページに到達するHTTP→HTTPSジャンプ→非www→wwwジャンプ→末尾スラッシュ追加ジャンプ→旧パス→新パス、と多層ルールが重ねがけされているリダイレクトルールを統合し、初期URLから直接最終URLに1ステップでジャンプさせる。Nginxではreturn命令を使用して一度に完全な最終アドレスにジャンプ
HTTPSサイトのリダイレクトチェーン内にHTTPノードが出現する(ダウングレード)サーバー設定内にhttp://プレフィックスのリダイレクトターゲットがハードコードされているか、アプリがリダイレクトURLを生成する際にHTTPSであることを認識していないアプリケーションがリバースプロキシを信頼し、X-Forwarded-Protoを正しく読み取るように構成;Nginxではhttps://の絶対URLまたは$scheme変数を使用(前提としてproxyが正しくschemeを設定していること);HSTSを展開
301リダイレクトを修正したのにブラウザが依然として旧アドレスにジャンプするブラウザが301永久リダイレクトルールを長期的にキャッシュしており、F5更新では無効にならないテスト段階では302一時リダイレクトを使用し、確認後に301に変更;ブラウザキャッシュをクリア(Chrome:設定→プライバシー→閲覧データを削除→キャッシュされた画像とファイル);DevToolsのDisable cacheオプションを使用
POSTリクエストがリダイレクト後にフォームデータが失われる301または302リダイレクトを使用しており、ブラウザが自動的にPOSTをGETリクエストに変更し、リクエストボディが破棄されるPOST/PUT/DELETEなどの非GETリクエストについては、307(一時)または308(永久)リダイレクトに変更し、リクエストメソッドとリクエストボディを厳格に保持
リダイレクト後のURLに%2520などの二重エンコーディング文字が出現するURLパラメータが既に1回URLエンコードされているのに、サーバーがリダイレクト時に再度エンコードしてしまっているリダイレクトロジックを確認し、URLのエンコードは1回のみにする;Nginxでは$uri(デコード済み)ではなく$request_uri(元のURI、デコードされていない)を使用
AJAX/fetchリクエストがクロスドメインリダイレクト後にCORSエラーを報告するクロスドメインリダイレクトのターゲットサーバーがCORSレスポンスヘッダー(Access-Control-Allow-Originなど)を構成していないリダイレクトチェーン内の各ホップのサーバーがCORSヘッダーを正しく構成していることを確認;またはAJAXリクエストでクロスドメインリダイレクトを使用せず、フロントエンドがターゲットURLを取得してから直接リクエストする方式に変更

Troubleshooting