リダイレクトチェーンチェッカー
URLを入力すれば、その道のりを最初から最後まで確認できます。通過するすべてのリダイレクト、各サーバーが返したステータスコード、送られたLocationヘッダー、そして最終的にたどり着くページまで。
追跡は当社のサーバーを経由し、チェーン内の各URLにリクエストを送ってレスポンスヘッダーだけを読み取ります。ページ本文は取得しませんし、内容は一切保存されません。
各リダイレクトのステータスコードが意味すること
リダイレクトとは、3xxのステータスコードと、次のURLを指すLocationヘッダーを持つレスポンスのことです。ブラウザやクローラーはそのアドレスへ2回目のリクエストを送り、リダイレクトではないレスポンスが返ってくるまでこれを繰り返します。1ステップごとに往復が発生するため、リダイレクトが4回続くチェーンでは、画面に何かが表示されるまでに5回のリクエストが必要になります。
301 Moved Permanentlyと308 Permanent Redirectは、どちらもリソースの移転が恒久的であることを示します。302 Foundと307 Temporary Redirectは移転が一時的で、元のアドレスに戻る想定であることを示します。この違いは検索エンジンにとって重要です。恒久的なリダイレクトは古いURLを新しいURLに置き換えるよう求めるのに対し、一時的なリダイレクトは元のURLを保持するよう伝えるからです。ブラウザにとっても違いがあります。301のレスポンスはキャッシュして、サーバーに問い合わせ直さずに再利用できますが、302はレスポンスが明示的に許可していないかぎりキャッシュできません。
新しいほうの2つが生まれたのは、フォーム送信に対するクライアントの振る舞いが原因でした。301や302は次のホップでGETに変換されることが多く、リクエストボディが失われていたのです。307と308はそれを禁じており、メソッドとボディをそのまま繰り返さなければなりません。303 See Otherは逆の指示で、次のリクエストを必ずGETとして送ります。これはPOSTの後に望ましい挙動で、結果ページを再読み込みしてもフォームが二重送信されずに済みます。
リダイレクトコード早見表
3xxのレスポンスはすべてLocationヘッダーを伴います。コードは、その移転がどれだけ恒久的なのか、そしてリクエストメソッドがそのまま引き継がれるのかをクライアントに伝えます。
| 301 Moved Permanently | 恒久的。新しいURLが古いURLに取って代わります。既定でキャッシュ可能なので、ブラウザが問い合わせをやめることもあります。クライアントが次のリクエストをGETに変えることがあります。 |
| 302 Found | 一時的。有効なのは引き続き元のURLです。レスポンスが明示しないかぎりキャッシュされません。クライアントが次のリクエストをGETに変えることがあります。 |
| 303 See Other | 元のメソッドが何であれ、次のURLをGETで取得します。フォームのPOSTに対する標準的な応答で、再読み込みしても再送信されません。 |
| 307 Temporary Redirect | 302と同じく一時的ですが、メソッドとボディをそのまま繰り返さなければなりません。 |
| 308 Permanent Redirect | 301と同じく恒久的ですが、メソッドとボディをそのまま繰り返さなければなりません。 |
このチェッカーが教えてくれること
- すべてのホップを順番に。ステータスコード、その名称、実際にリクエストしたURLを表示
- 各リダイレクトが返したLocationヘッダーを、絶対URLに解決した形で表示
- 各ホップにかかった時間と、チェーン全体にかかった時間
- 最終URLとそのステータスコード。検索エンジンが記録するのはこのアドレスです
- 警告:2ホップ以上のチェーン、ループ、恒久的な移転に見えるのに一時的なコード、暗号化されていないhttpのホップ、ホストの変更、エラーで終わるチェーン
robots.txtテスター
robots.txtがどのクローラーを通しているのかが一目でわかります。Googlebot、Bingbot、GPTBotなどに対して任意のURLをテストし、判定の決め手になったルールも表示します。
robots.txtをテスト →