リダイレクトチェッカー
最大 20 件の URL を貼り付けると、リダイレクトチェーンの全ホップが分かります。ホップごとのステータスコード・移動先・Cache-Control・所要時間、最終 URL とステータス、ループ、3 ホップを超えるチェーン、301 の代わりの一時的な 302/307、http→https→www の二重チェーン、最終ページ内の meta refresh や JavaScript リダイレクト、最終 URL と一致しない canonical、そしてオプションで Googlebot がブラウザーと別の場所に送られていないかを確認できます。CSV でエクスポート可能。何も保存しません。
リクエストは当サイトのサーバーから Chrome のユーザーエージェント(選択時は Googlebot のものも)で送信されます。各ホップはプライベート/リンクローカルアドレスに対して検査され、何も保存・記録されません。制限: アドレスごとに 5 分あたり 10 回。このツールはチェーンの挙動を報告するだけで、リダイレクトが必要かどうかはサイト側の判断です。
仕組み
1. 各 URL を当サイトのサーバーから Chrome のユーザーエージェントで(選択時は Googlebot としてもう一度)リクエストする。リダイレクトは自動追従せず、各ホップを個別のリクエストにしてステータス・Location・Cache-Control・所要時間を記録する 2. チェーンあたり最大 10 ホップ。同じ URL に 2 回到達すればループ。リクエストあたり 8 秒、チェーンあたり 25 秒。各ホップは同じ公開ホスト検査を通る(プライベート、リンクローカル、localhost への到達は不可) 3. 最終応答の本文のみ、それも HTML の場合のみ 256 KB を上限に読み取り、<meta http-equiv="refresh">、インラインの location.href / location.replace() パターン、<link rel="canonical"> を探す 4. チェーンごとの検出結果: リダイレクトなし / 最終 OK / 最終エラー(4xx–5xx)、ループ、ホップ上限到達、3 ホップ超、チェーン内の 302 または 307、303、相対 Location、2 ホップに分かれた http→https→www、https→http のダウングレード、ホスト変更、meta refresh、JavaScript リダイレクト、最終 URL と異なる canonical、遅いチェーン(3 秒超) 5. Googlebot オプションでは 2 つのチェーンを比較し、最終 URL やステータスが異なれば指摘する。ユーザーエージェントに基づくクローキングやボット専用リダイレクトの典型的な兆候 6. 一括: 1 回に最大 20 件、5 件並列。各チェーンのホップ表を CSV でダウンロード可能
リダイレクトとチェッカーが報告する内容について
リダイレクトはクライアントに、リソースが別の URL にあることを伝えます。検索エンジンにとってステータスコードには意味があります。301 と 308 は移転が恒久的であることを示し、ランキングシグナルは移転先に集約され、旧 URL はインデックスから外れてよいことになります。302 と 307 は一時的であることを示し、元の URL がその位置を保つべきだと伝えます。Google は長く残っている 302 を実質的に恒久的として扱うと何年も前から述べていますが、それでも推測が必要です。301 なら推測が不要になります。303 は POST から GET への慣用句で、サイト移転には出番がありません。チェッカーは各ホップのコードを表示するので、チェーンの意図は推測ではなく目で確認できます。
チェーンはクロールバジェットを消費し、ホップごとにシグナルを少しずつ薄めます。Googlebot は 10 ホップで諦めます。よくある原因は 1 つの悪いルールではなく、正しいルールの積み重ねです。ウェブサーバーでの http→https、CMS での非 www→www、フレームワークによる末尾スラッシュ、アプリケーションでの URL 変更、と 1 ホップで済むところが 4 ホップになります。チェッカーが http→https→www のパターンを明示的に指摘するのは、最も多く、最終 URL へ直接飛ぶ 1 つのルールにまとめやすいからです。
すべてのリダイレクトが HTTP とは限りません。200 を返してから <meta http-equiv="refresh"> や 1 行の JavaScript で訪問者を移動させるページは、ユーザーにとってはリダイレクトですが、スクリプトを実行しないクローラーにとっては普通のページです。JavaScript をレンダリングする Google も、これらをサーバー側 301 に比べて弱いシグナルとして扱います。チェッカーは最終 HTML から両方のパターンを読み取って報告しますが、追従はしません。それこそが要点だからです。HTTP チェーンと実際の到達先は異なります。
ブラウザーと並べて Googlebot として取得すると、2 つの問題を同時に捉えられます。ボット専用リダイレクト、つまりクローラーをユーザーとは別のページに送ることは、意図の有無にかかわらず Google のクローキングポリシー違反です(設定を誤ったボット保護や地域ルールで十分に起こります)。また、ブラウザーを言語や国で振り分けつつ Googlebot をデフォルトに残すサイトもあり、これは問題ありませんが把握しておくべきです。チェッカーは 2 つのエージェントの最終 URL とステータスを比較し、一致するかを伝えます。差異にどう対処するかはその理由次第で、チェッカーは報告するだけです。
よくある質問
- 301 と 308 のどちらを使うべきですか?
- どちらも恒久的です。308 はさらにクライアントがメソッドを変えることを禁じます(POST は POST のまま)。これは API やフォームでは重要ですが、ページには関係ありません。サイト移転では 301 が広く理解されており、308 でも構いません。Google はインデックス上どちらも同じに扱います。
- 302 は SEO に悪影響がありますか?
- 必ずしもそうではありません。Google は残り続ける 302 をしばらくすると恒久的として扱い、いずれにせよシグナルを集約すると述べています。問題は曖昧さです。302 は「一時的」と言うので、移行中に検索エンジンが旧 URL を望むより長くインデックスに残す可能性があります。移転が恒久的なら 301 でそう伝えてください。チェッカーはチェーン内の 302/307 を指摘するので判断できます。
- 何ホップから多すぎますか?
- Google はチェーンあたり最大 10 回のリダイレクトを追従し、それを超えるとページはクロールされません。各ホップはユーザーには遅延を、検索には僅かなシグナル損失をもたらすため、実務上の目安は 1 ホップ、多くて 2 ホップです。チェッカーは 3 を超えると警告します。チェーンの修正は、他の URL がまだ必要とする中間ルールを削除するのではなく、最初の URL を最後の URL に直接リダイレクトすることで行います。
- 最終ページの canonical が異なるとはどういう意味ですか?
- チェーンの終点である HTML の <link rel="canonical"> が、到達した URL とは別の URL を指しているということです。canonical がページ C を示すページ B へのリダイレクトは、Google に 2 つの異なる話を伝えます。通常はどちらかが移行後に古くなったものです。チェッカーは不一致と両方の URL を報告します。
- リダイレクトループとは何ですか?なぜチェッカーは早く止まるのですか?
- ループとは、既に訪れた URL に戻ってくるチェーンです(A → B → A)。ブラウザーはエラーを表示し、クローラーは諦めます。チェッカーは URL が繰り返された時点で止まり、チェーンをループとして記録します。また、ループの有無にかかわらず 10 ホップで停止します。Googlebot がそうするからです。
- なぜ Googlebot として取得するのですか?
- 一部のサイトは、意図的にせよ誤ったルールにせよ、クローラーをブラウザーとは別の場所に送ります。Googlebot をユーザーとは別のページにリダイレクトすることは Google のスパムポリシー上クローキングです。ブラウザーを言語で振り分けボットをデフォルトに残すのは一般的で許容されますが、知っておく価値があります。チェッカーは 2 つのユーザーエージェントでチェーンを 2 回実行し、最終 URL とステータスが一致するかを報告します。なお、一部のボット保護サービスは未検証の IP から Googlebot を名乗るアクセスをすべてブロックするため、ボット実行での 403 はリダイレクトルールではなくそれが原因の場合があります。
- チェッカーは meta refresh や JavaScript リダイレクトを追従しますか?
- いいえ。最終 HTML でそれらを検出して移動先を報告しますが、表示するチェーンは HTTP チェーン、つまりスクリプトを実行しないクローラーが見るものです。Google は JavaScript をレンダリングしてこれらをリダイレクトとして扱いますが、サーバー側 301 より遅く確実性も低くなります。ツールがこれを報告した場合、実際の到達先は表が示すより 1 段先にあります。