リダイレクト経路を調べる

実際にテストした七つのローカルHTTP例です。あなたのサイトのスキャンではありません。リンク元と応答を分けて示し、検索エンジンやリンク索引には問い合わせません。

表示したリンク元ページ以降のGETを数えます。六回の上限はこの学習用クライアントの設定で、Googlebotの制限ではありません。終端はエラーの場合もあり、200だけで内容の適合性は分かりません。

R01 · 移転先への対応がないページ

意図した結果
旧ガイドには/guideという適切な代替がありますが、旧URLは404です。
推奨する対応
宣言した代替先へ一段の恒久転送を設定します。
受け入れ条件
同じ旧URLが301を返し、/guideが想定した本文と200を返します。

リンク元ページのリンク・変更なし

GET /publisher/r1
HTTP 200
Content-Type: text/html; charset=utf-8
Cache-Control: no-store

<!doctype html><html lang="en"><head><title>Local source</title></head><body><h1>Source page</h1><a href="/r1/old-guide">Reference</a></body></html>

修正前

リンク元ページの後のリクエスト数: 1 · リダイレクト応答数: 0

GET /r1/old-guide
HTTP 404
Content-Type: text/html; charset=utf-8
Cache-Control: no-store

<!doctype html><html lang="en"><head><title>Unavailable</title></head><body><h1>Not available</h1></body></html>

終端応答に到達

修正後

リンク元ページの後のリクエスト数: 2 · リダイレクト応答数: 1

GET /r1/old-guide
HTTP 301
Location: /guide
Cache-Control: no-store

GET /guide
HTTP 200
Content-Type: text/html; charset=utf-8
Cache-Control: no-store

<!doctype html><html lang="en"><head><title>Replacement guide</title></head><body><h1>Replacement guide</h1><p>Equivalent guide content for the declared mapping.</p></body></html>

終端応答に到達

R02 · 動くが余分な中継があるチェーン

意図した結果
ガイドへは/middle経由で到達します。追加の段階は省けます。
推奨する対応
旧URLを/guideへ直接向け、必要な中継先のルールは残します。
受け入れ条件
三回のリクエストが二回になり、最終内容と元のリンクは同じです。

リンク元ページのリンク・変更なし

GET /publisher/r2
HTTP 200
Content-Type: text/html; charset=utf-8
Cache-Control: no-store

<!doctype html><html lang="en"><head><title>Local source</title></head><body><h1>Source page</h1><a href="/r2/old-guide">Reference</a></body></html>

修正前

リンク元ページの後のリクエスト数: 3 · リダイレクト応答数: 2

GET /r2/old-guide
HTTP 301
Location: /middle
Cache-Control: no-store

GET /middle
HTTP 301
Location: /guide
Cache-Control: no-store

GET /guide
HTTP 200
Content-Type: text/html; charset=utf-8
Cache-Control: no-store

<!doctype html><html lang="en"><head><title>Replacement guide</title></head><body><h1>Replacement guide</h1><p>Equivalent guide content for the declared mapping.</p></body></html>

終端応答に到達

修正後

リンク元ページの後のリクエスト数: 2 · リダイレクト応答数: 1

GET /r2/old-guide
HTTP 301
Location: /guide
Cache-Control: no-store

GET /guide
HTTP 200
Content-Type: text/html; charset=utf-8
Cache-Control: no-store

<!doctype html><html lang="en"><head><title>Replacement guide</title></head><body><h1>Replacement guide</h1><p>Equivalent guide content for the declared mapping.</p></body></html>

終端応答に到達

R03 · 二つのURLによるループ

意図した結果
旧URLと/r3/loopが相互に転送し、終端文書に到達しません。
推奨する対応
入口のルールを/guideへの直接対応に変更します。
受け入れ条件
繰り返しによる停止がなくなり、301と200の二つの応答になります。

リンク元ページのリンク・変更なし

GET /publisher/r3
HTTP 200
Content-Type: text/html; charset=utf-8
Cache-Control: no-store

<!doctype html><html lang="en"><head><title>Local source</title></head><body><h1>Source page</h1><a href="/r3/old-guide">Reference</a></body></html>

修正前

リンク元ページの後のリクエスト数: 2 · リダイレクト応答数: 2

GET /r3/old-guide
HTTP 301
Location: /r3/loop
Cache-Control: no-store

GET /r3/loop
HTTP 301
Location: /r3/old-guide
Cache-Control: no-store

URLの繰り返し:再リクエスト前に停止 · /r3/old-guide

修正後

リンク元ページの後のリクエスト数: 2 · リダイレクト応答数: 1

GET /r3/old-guide
HTTP 301
Location: /guide
Cache-Control: no-store

GET /guide
HTTP 200
Content-Type: text/html; charset=utf-8
Cache-Control: no-store

<!doctype html><html lang="en"><head><title>Replacement guide</title></head><body><h1>Replacement guide</h1><p>Equivalent guide content for the declared mapping.</p></body></html>

終端応答に到達

R04 · ホームが200でも内容が違う

意図した結果
読者はガイドを求めていますが/homeは一般ナビゲーションです。両段階とも200で終わります。
推奨する対応
任意の成功ページではなく適切な/guideへ向けます。
受け入れ条件
最終パスと本文も確認します。Googleによるsoft 404判定を観測したものではありません。

リンク元ページのリンク・変更なし

GET /publisher/r4
HTTP 200
Content-Type: text/html; charset=utf-8
Cache-Control: no-store

<!doctype html><html lang="en"><head><title>Local source</title></head><body><h1>Source page</h1><a href="/r4/old-guide">Reference</a></body></html>

修正前

リンク元ページの後のリクエスト数: 2 · リダイレクト応答数: 1

GET /r4/old-guide
HTTP 301
Location: /home
Cache-Control: no-store

GET /home
HTTP 200
Content-Type: text/html; charset=utf-8
Cache-Control: no-store

<!doctype html><html lang="en"><head><title>Home</title></head><body><h1>Home</h1><p>General navigation, no replacement guide.</p></body></html>

終端応答に到達

修正後

リンク元ページの後のリクエスト数: 2 · リダイレクト応答数: 1

GET /r4/old-guide
HTTP 301
Location: /guide
Cache-Control: no-store

GET /guide
HTTP 200
Content-Type: text/html; charset=utf-8
Cache-Control: no-store

<!doctype html><html lang="en"><head><title>Replacement guide</title></head><body><h1>Replacement guide</h1><p>Equivalent guide content for the declared mapping.</p></body></html>

終端応答に到達

R05 · 削除済みで同等の代替がない

意図した結果
内容は恒久削除され、/homeは目的を満たしません。
推奨する対応
この条件では410を返し、古い内部参照を除きます。
受け入れ条件
旧URLは利用不可のページと410を返します。代替先や順位回復を作り上げません。

リンク元ページのリンク・変更なし

GET /publisher/r5
HTTP 200
Content-Type: text/html; charset=utf-8
Cache-Control: no-store

<!doctype html><html lang="en"><head><title>Local source</title></head><body><h1>Source page</h1><a href="/r5/old-guide">Reference</a></body></html>

修正前

リンク元ページの後のリクエスト数: 2 · リダイレクト応答数: 1

GET /r5/old-guide
HTTP 301
Location: /home
Cache-Control: no-store

GET /home
HTTP 200
Content-Type: text/html; charset=utf-8
Cache-Control: no-store

<!doctype html><html lang="en"><head><title>Home</title></head><body><h1>Home</h1><p>General navigation, no replacement guide.</p></body></html>

終端応答に到達

修正後

リンク元ページの後のリクエスト数: 1 · リダイレクト応答数: 0

GET /r5/old-guide
HTTP 410
Content-Type: text/html; charset=utf-8
Cache-Control: no-store

<!doctype html><html lang="en"><head><title>Unavailable</title></head><body><h1>Not available</h1></body></html>

終端応答に到達

R06 · 一時移転を恒久と宣言している

意図した結果
元のサービスは戻る予定で、/holdingは一時のお知らせです。
推奨する対応
このGET例は302とし、サービスを戻す予定も記録します。
受け入れ条件
同じお知らせに301ではなく302で到達します。古いキャッシュと検索処理は別に確認します。

リンク元ページのリンク・変更なし

GET /publisher/r6
HTTP 200
Content-Type: text/html; charset=utf-8
Cache-Control: no-store

<!doctype html><html lang="en"><head><title>Local source</title></head><body><h1>Source page</h1><a href="/r6/old-guide">Reference</a></body></html>

修正前

リンク元ページの後のリクエスト数: 2 · リダイレクト応答数: 1

GET /r6/old-guide
HTTP 301
Location: /holding
Cache-Control: no-store

GET /holding
HTTP 200
Content-Type: text/html; charset=utf-8
Cache-Control: no-store

<!doctype html><html lang="en"><head><title>Temporary notice</title></head><body><h1>Temporary notice</h1><p>The original service is expected to return.</p></body></html>

終端応答に到達

修正後

リンク元ページの後のリクエスト数: 2 · リダイレクト応答数: 1

GET /r6/old-guide
HTTP 302
Location: /holding
Cache-Control: no-store

GET /holding
HTTP 200
Content-Type: text/html; charset=utf-8
Cache-Control: no-store

<!doctype html><html lang="en"><head><title>Temporary notice</title></head><body><h1>Temporary notice</h1><p>The original service is expected to return.</p></body></html>

終端応答に到達

R07 · 正しい恒久転送を維持する

意図した結果
旧ガイドはすでに一回の301で適切な代替へ到達します。
推奨する対応
動作中の対応を対照例として維持します。
受け入れ条件
前後の証拠は同じです。不要な修正や順位改善を捏造しません。

リンク元ページのリンク・変更なし

GET /publisher/r7
HTTP 200
Content-Type: text/html; charset=utf-8
Cache-Control: no-store

<!doctype html><html lang="en"><head><title>Local source</title></head><body><h1>Source page</h1><a href="/r7/old-guide">Reference</a></body></html>

修正前

リンク元ページの後のリクエスト数: 2 · リダイレクト応答数: 1

GET /r7/old-guide
HTTP 301
Location: /guide
Cache-Control: no-store

GET /guide
HTTP 200
Content-Type: text/html; charset=utf-8
Cache-Control: no-store

<!doctype html><html lang="en"><head><title>Replacement guide</title></head><body><h1>Replacement guide</h1><p>Equivalent guide content for the declared mapping.</p></body></html>

終端応答に到達

修正後

リンク元ページの後のリクエスト数: 2 · リダイレクト応答数: 1

GET /r7/old-guide
HTTP 301
Location: /guide
Cache-Control: no-store

GET /guide
HTTP 200
Content-Type: text/html; charset=utf-8
Cache-Control: no-store

<!doctype html><html lang="en"><head><title>Replacement guide</title></head><body><h1>Replacement guide</h1><p>Equivalent guide content for the declared mapping.</p></body></html>

終端応答に到達

事例を実行する

リダイレクト経路を調べる

実際にテストした七つのローカルHTTP例です。あなたのサイトのスキャンではありません。リンク元と応答を分けて示し、検索エンジンやリンク索引には問い合わせません。

Python 3.10以上が必要です。ZIPをローカルに展開します。検証コマンドは一時的なループバックサーバーを起動し、全事例をテストしてJSONを出力した後に停止します。外部サイトには接続しません。

python3 redirect_lab.py --verify

Ctrl+Cで停止してから --phase after で再起動すると、同じURLを修正後の設定で確認できます。8766が使用中なら別のローカルポートを選んでください。

python3 redirect_lab.py --phase before --port 8766

python3 redirect_lab.py --phase after --port 8766

http://127.0.0.1:8766/publisher/r1

http://127.0.0.1:8766/r1/old-guide

http://127.0.0.1:8766/publisher/r2

http://127.0.0.1:8766/r2/old-guide

http://127.0.0.1:8766/publisher/r3

http://127.0.0.1:8766/r3/old-guide

http://127.0.0.1:8766/publisher/r4

http://127.0.0.1:8766/r4/old-guide

http://127.0.0.1:8766/publisher/r5

http://127.0.0.1:8766/r5/old-guide

http://127.0.0.1:8766/publisher/r6

http://127.0.0.1:8766/r6/old-guide

http://127.0.0.1:8766/publisher/r7

http://127.0.0.1:8766/r7/old-guide

表示したリンク元ページ以降のGETを数えます。六回の上限はこの学習用クライアントの設定で、Googlebotの制限ではありません。終端はエラーの場合もあり、200だけで内容の適合性は分かりません。

コマンドとパスは技術的な識別子です。レポート本文は翻訳されています。

インデックス登録、正規URLの選択、流入、順位は測定しません。引き継がれる評価の割合も計算しません。

インデックス登録、正規URLの選択、流入、順位は測定しません。引き継がれる評価の割合も計算しません。