Domain 5 / 225

リダイレクトは URL 移転を Google に正しく伝える仕組み

リダイレクト の要点

リダイレクトは URL 移転を Google に伝える仕組みで、永続(301 / 308)は新 URL を canonical シグナル、一時(302 / 307)は元 URL を検索結果に残す。サーバー側が最も確実、JavaScript リダイレクトはレンダリング失敗で読まれないリスクがある

なぜこれを学ぶか

リダイレクトは サイト移転 / URL 構造変更で SEO 評価を引き継ぐ唯一の手段。 種類を間違えると「新ドメインに移ったのに旧 URL の評価が引き継がれない」「URL を変えただけで順位が消える」といった大きな流入損失が起きる。

EC のリプレイス、CMS 移行、HTTP → HTTPS、ドメイン統合、URL 構造刷新といった大型施策では、リダイレクトの設計品質がプロジェクトの成否を決める。

学ばないと起きること

よくある事故被害
恒久的な URL 変更で 302 を使う元 URL が検索結果に残り続け、新 URL の評価が育たない
サイト移転で 1 段階リダイレクトせず、複数段ホップさせるリダイレクトチェーンが長すぎて Google が追跡を諦める(5 ホップが上限)
HTTP → HTTPS の 301 を入れ忘れる同じページが HTTP / HTTPS の両 URL でインデックスされ、評価が分散
JavaScript リダイレクト(window.location)だけで済ますGooglebot のレンダリングが失敗するとリダイレクト自体が認識されない
旧 URL を 404 にして新 URL に置き換えるリンクシグナルがゼロから再構築になり、順位が長期間下がる
Crypto redirect(人間向けの「移転しました」リンクのみ)に頼るGoogle が認識する保証がなく、評価引き継ぎがほぼ期待できない
meta refresh の遅延秒数を 0 と非 0 で混同0 秒は永続、1 秒以上は一時扱いになる仕様を知らずに想定外の SEO 効果に

学ぶメリット

  • サイト移転 / URL リプレイスで評価を 100% に近い形で新 URL に引き継げる
  • リダイレクトチェーンや混在問題を Search Console で即座に切り分けられる
  • 「301 と 308 の違い」「302 と 307 の違い」をクライアントに即答できれば、技術 SEO の解像度の高さを示せる
  • HTTP → HTTPS / www 統一 / 旧キャンペーン URL の整理を Google 仕様に沿って組める

仕組み

永続リダイレクトと一時リダイレクトの違い

Google が両者を区別する理由は明確で、検索結果に出す URL が変わる。

タイプGoogle の挙動
永続(Permanent)新 URL を canonical シグナルとして扱い、検索結果に出す
一時(Temporary)元 URL を検索結果に残す(新 URL は別シグナル次第)

「もう元 URL は使わない」確信があるなら永続、「すぐ戻す可能性がある」なら一時を使う。

Google が認識するリダイレクト一覧(信頼性が高い順)

サーバーサイドが最も確実。JavaScript リダイレクトはレンダリング失敗のリスクがあるため、他の方法が使えない時の最終手段。

方法永続一時
サーバーサイド HTTP ステータス301 / 308302 / 303 / 307
meta refresh(HTML)content="0" 秒content="1 秒以上"
HTTP refresh ヘッダcontent="0" 秒content="1 秒以上"
JavaScript window.location永続扱い(レンダリング前提)-
Crypto redirect(手書きリンク)認識されないことが多い-

各 HTTP ステータスコードの意味

ステータス意味リンクシグナル主な用途
301Moved Permanentlyほぼ完全に転送サイト統合、URL 構造変更(恒久的)
302Found元 URL の評価を維持キャンペーン期間中の一時的な切り替え
303See Other元 URL の評価を維持フォーム送信後のリダイレクトなど
307Temporary Redirect元 URL の評価を維持 + HTTP メソッド維持POST のままリダイレクトしたい場合
308Permanent Redirectほぼ完全に転送 + HTTP メソッド維持POST のまま恒久転送したい場合

301 と 308、302 と 307 の違いは「HTTP メソッドを維持するか」のみ。SEO 観点ではほぼ同等。

リダイレクトチェーンとループ

Google は最大 5 ホップまでリダイレクトを追跡する。それを超えると追跡を諦め、404 と同じ扱いになる。 複数段リダイレクトしている場合は、可能な限り 1 段階に短縮する。

例:

  • NG: /old → /old2 → /new1 → /new2 → /current(4 ホップ、シグナル減衰)
  • OK: /old → /current(1 ホップ、シグナル最大)

キー概念

サーバーサイドリダイレクトの実装例

PHP で 301 を返す例。

header('HTTP/1.1 301 Moved Permanently');
header('Location: https://www.example.com/newurl');
exit();

Apache .htaccess の例。

# 単純な永続リダイレクト
Redirect permanent "/old" "https://example.com/new"

# 一時リダイレクト
Redirect temp "/two-old" "https://example.com/two-new"

mod_rewrite を使った正規表現リダイレクト。

RewriteEngine on
RewriteRule "^/service$" "/about/service" [R=301]

NGINX の例。

location = /service {
  return 301 $scheme://example.com/about/service;
}

meta refresh の使い分け

サーバー設定が触れない CMS / ホスティングで使う代替手段。 重要なのは秒数で、0 は永続、1 以上は一時に解釈される。

<!-- 永続扱い(0 秒)-->
<meta http-equiv="refresh" content="0; url=https://example.com/newlocation">

<!-- 一時扱い(5 秒)-->
<meta http-equiv="refresh" content="5; url=https://example.com/newlocation">

ユーザー体験的には 0 秒以外を入れると「移転中…」のような中継ページに使えるが、SEO 観点では一時扱いになるので注意。

JavaScript リダイレクト

サーバーサイドや meta refresh が使えない時の最終手段。Google はレンダリング後に window.location を実行して認識するが、レンダリングが失敗すると気づかれないリスクがある。

<head>
<script>
  window.location.href = "https://www.example.com/newlocation";
</script>
</head>

可能なら避ける。やむを得ない場合は、合わせて <noscript> でリンクを示すと安全。

alternate name(旧 URL の検索結果残留)

URL 移転後も、Google は一定期間「旧 URL」と「新 URL」の両方を覚えている。 旧 URL は新 URL の alternate name(代替名)として扱われ、ユーザーのクエリが旧 URL に強く一致する場合は検索結果に旧 URL が出ることがある。 これは仕様で、ユーザーが新ドメインに慣れるにつれて自然に消えていく。

よくある誤解

よくある誤解実際のところ出典
302 と 301 は SEO 的にほぼ同じ302 は元 URL を検索結果に残す(一時扱い)。恒久転送には 301 を使う301 リダイレクト
301 と 308 は別物SEO 観点ではほぼ同等。違いは「HTTP メソッドを維持するか」だけ同上
302 と 307 は別物同上。SEO 観点では同等、違いはメソッド維持の有無同上
meta refresh は SEO に悪い0 秒は永続、1 秒以上は一時として正しく解釈される。サーバーサイドが使えない場合の有効な選択肢同上
JavaScript リダイレクトでも 301 と同じ評価レンダリング失敗で認識されないリスクがある。最終手段同上
5 段階リダイレクトしても Google は全部追ってくれる最大 5 ホップで追跡を諦める。それを超えると 404 扱いrobots.txt の解釈
サイト移転後すぐに旧 URL は検索結果から消える一定期間 alternate name として残る。ユーザーの慣れに伴い自然に消える301 リダイレクト
「移転しました」のリンクを置けば Google が追ってくれるcrypto redirect は認識されないことが多い。サーバーサイドリダイレクトを使う同上

実務での適用

サイト移転時の標準フロー

  1. 旧サイトの全 URL → 新サイトの対応 URL のマッピング表を作成
  2. すべてに 301 を設定し、リダイレクトチェーンを作らない(必ず最終 URL に直行)
  3. 新ドメインの canonical / sitemap / hreflang を新 URL で更新
  4. Search Console「アドレス変更ツール」で Google に通知
  5. 旧サイトのリダイレクトを最低 1 年は維持する
  6. 新サイトの内部リンクは旧 URL を経由しないよう、すべて新 URL に張り直す

よく使う リダイレクトパターン

目的リダイレクトの方向
HTTP → HTTPS の統一全 HTTP URL → 同パスの HTTPS URL(301)
www / 非 www の統一一方からもう一方へ(301)
末尾スラッシュの統一あり / なしどちらかへ(301)
旧キャンペーンページの整理旧 URL → 関連する現行ページ(301)
一時メンテナンスページ元 URL → メンテ告知ページ(302 / 307)
削除した記事の救済旧 URL → 関連カテゴリ or 検索ページ(301)

リダイレクトチェーンを Search Console で発見する

Search Console の URL 検査ツールで個別 URL のリダイレクトホップを確認できる。 大量に確認したい場合は Screaming Frog 等のクローラーで「Redirect Chains」レポートを取り、2 ホップ以上を 1 ホップに短縮する。

トラブル別の対処

症状確認すべきこと
移転後も旧 URL が検索結果に残り続けるalternate name の仕様。301 が正しく設定されていれば数ヶ月で自然消滅
新 URL の順位がなかなか上がらないリダイレクトチェーンの有無、内部リンクが旧 URL を経由していないか、canonical / sitemap が新 URL を指しているか
Search Console で「リダイレクトエラー」が増えたリダイレクトループ、5 ホップ超え、リダイレクト先が 404 / 5xx を返していないか
HTTPS 化したのに HTTP URL が検索結果に残るHTTP → HTTPS の 301 が漏れている、HSTS の設定確認、サイトマップを HTTPS で更新
キャンペーン終了後の 302 を 301 に戻したい既存の 302 を 301 に変更すれば Google が次回クロール時に認識する

公式ソース

自己テスト

Q1. URL を恒久的に変えたい時、301 と 302 のどちらを使うか?

301(Moved Permanently)。Google は永続リダイレクトと判断し、新 URL を canonical シグナルとして扱う。 302 は一時的な切り替え扱いになり、元 URL の評価が維持されるので恒久的な URL 変更には不向き

Q2. 301 と 308 の違いは?

SEO 観点ではほぼ同等。両者とも永続リダイレクトとして扱われる。 違いは「HTTP メソッドを維持するか」。308 は POST リクエストのまま転送するが、301 は GET に変換することがある。Web ページの単純な転送なら 301 で十分

Q3. meta refresh の content 属性で 0 秒と 5 秒の SEO 上の違いは?

0 秒の meta refresh は永続リダイレクト扱い、1 秒以上は一時リダイレクト扱いになる。 即時転送したい場合は必ず content="0" にする

Q4. JavaScript リダイレクト(window.location)でも 301 と同じ SEO 評価を期待できるか?

期待できない。Google はレンダリング後に JS リダイレクトを認識するが、レンダリングが失敗すると気づかれない。 サーバーサイドや meta refresh が使えない場合の最終手段

Q5. リダイレクトを何段階まで連鎖させて大丈夫か?

最大 5 ホップ。それ以上はリダイレクトを追跡せず 404 と同じ扱いになる。 SEO 評価のシグナル減衰も起きるので、可能な限り 1 段階(旧 URL → 最終 URL に直行)に短縮する

Q6. サイト移転後、旧 URL が検索結果に残り続けるのは設定ミスか?

設定ミスとは限らない。Google は旧 URL を新 URL の alternate name として一定期間覚えており、ユーザーのクエリが旧 URL に強く一致する場合は表示することがある。 ユーザーが新ドメインに慣れるにつれて自然に消える

Q7. サイト移転時に旧サイトのリダイレクトはいつまで維持すべきか?

最低 1 年は維持するのが推奨。 Google が新 URL に完全に切り替えるまで時間がかかり、被リンクの源も古い URL を残し続けるため、早期に外すと評価がリセットされるリスクがある

Q8. キャンペーン期間中だけ別ページに飛ばしたい場合、どのリダイレクトを使うか?

302 または 307。一時リダイレクトとして元 URL を検索結果に残せる。 キャンペーン終了後にリダイレクトを外せば、元の URL が検索結果でそのまま機能する

これらの内容を採点付きで挑戦したい場合は、本ドメインのプロ試験で 5 問形式で確認できる。