2021年、6ヶ月前に移行した400ページのeコマースサイトの監査を依頼されました。トラフィックが38%低下していて、クライアントは理由を特定できませんでした。移行を担当した開発者は、すべての古いURLに対して302リダイレクトを使用していました。彼は「以前うまくいった」と言っていたからです。サイトのドメインオーソリティは損なわれていません。バックリンクもそのままです。しかしGooglebotは古いページを一時的に移動したものとして扱っており、リンクエクイティが宙ぶらりん状態で、元のURLが戻ってくる可能性を待っていたのです。6ヶ月間そうでした。他の誰かがこの教訓を学ぶのを見るのは苦しいことです。
リダイレクトタイプについての問題点は、リンクをクリックするユーザーにはまったく同じに見えるということです。どちらの場合でもブラウザはAからBに移動します。しかし検索エンジンにとっては、移行を間違えると壊れるほど有意義な違いがあります。
これら2つのリダイレクトコードが実際に意味すること
HTTPプロトコルレベルでは、301はクライアント(ブラウザ、Googlebot、Binbotなど)に対して、リソースが新しい場所に永続的に移動したことを伝えます。302はそれが一時的に移動したことを示します。以上です。仕様レベルではこれが全てのちがいです。
しかし、SEOへの下流への影響は興味深いところです。
301リダイレクトを使用すると、Googleは旧URLのシグナル(バックリンク、ページオーソリティ、クロール優先度)を新しいURLに統合します。302の場合、Googleは移動が一時的なものであるため、元のURLをインデックスに保つことになっています。実際のところ、Googleはこの数年でこの扱いについて賢くなり、Googleの公式ドキュメントでも、Googlebot が302からもシグナルを転送する「可能性がある」ことを認めています。ですが「可能性がある」と「最終的には」という言葉に、クライアントの収益を賭けたいとは思いません。
リンクエクイティの問題
301からのリンクエクイティ転送は瞬時には起こりません。通常、数回のクロールサイクルが必要で、クロール予算とドメインサイズに応じて数日から数週間かかります。既存のオーソリティを持たない完全に新しい宛先URLの場合、その統合は非常に重要です。不正な302を301に修正し、修正された.htaccessファイルを実行してGoogle Search Consoleを通じて再クロールを強制することで、マイグレーション後6~8週間以内にマイグレーション前のトラフィックレベルに復帰したサイトを見てきました。
301リダイレクトを使用する場合
移動が本当に永続的である場合はいつでも301を使用してください。具体的なシナリオをいくつか示します:
- HTTPからHTTPSへ移行している(ここのすべてのリダイレクトは301であるべき)
- ページが削除されていて、URLをその最も関連のある代替ページに指している
- WordPressでパーマリンク構造を変更した(これは常に人々を悩ませる)
- マージまたはリブランド後に2つのドメインを1つに統合している
- 製品が廃止されていて、カテゴリページにリダイレクトしている
2022年後半にファッション小売業者向けに行ったWooCommerce移行では、古い商品URLが約800個あり、新しいURL構造へのリダイレクトが必要でした。Redirectionプラグインを使用して正規表現パターンマッチングで301リダイレクトを設定し、すべてを処理しました。セットアップに約2時間かかりました。手作業で行うか、「まずテストするために」302を使う代替案は、数ヶ月のリカバリー時間がかかっていたでしょう。
HTTPS移行のワナ
このケースです。HTTPからHTTPSへの移行時に302を使う開発者をまだ見かけます。理由は「SSLをまずテストしたい」からです。やめてください。証明書がインストールされて動作しているなら、すぐに301にしてください。HTTPS移行での302アプローチは、Google Search Consoleで悪名高い「重複コンテンツ」フラグの最も一般的な原因の1つです。なぜなら、Googlebotが一定期間両方のバージョンをインデックスする可能性があるからです。
302リダイレクトを使う場合
多くの人が考えるより本当にごく少数のケースです。302が適切なのは以下の場合です:
- ページのA/Bテストを実行していて、テスト中に元のURLがランキング信号を保持したい場合
- 一時的なプロモーションキャンペーンを実行している場合(たとえば、ブラックフライデーのために一時的なランディングページでホームページを置き換える場合)
- メンテナンスを実施していて、ユーザーを数時間ステータスページにルーティングしている場合
- ユーザーをページのローカライズ版にジオリダイレクトする場合(永続的にする必要がない場合)
最後の1つは立ち止まって考える価値があります。イギリスの訪問者を/en-gb/にリダイレクトしており、米国の訪問者を/en-us/にリダイレクトしている場合、これらは302である必要があります。なぜなら、単一のユーザーグループが正規URLを「所有」していないからです。Googleはhreflangを通じてジオターゲティングを個別に処理していますが、302は元のURLがまだ正規の宛先であることを示しています。
Seahawkは昨年、30日間の無料トライアルプロモーションを実施していたSaaS顧客がいました。このプロモーション期間中、ホームページは一時的に/free-trial/ランディングページにリダイレクトされていました。正しい選択肢は302です。彼らはプロモーション終了の瞬間にオリジナルのホームページがそのランキングを取り戻してほしいと考えていました。301を使用していた場合、ホームページのシグナルが/free-trial/に集約され始め、キャンペーン後に完全に消滅予定のページへ流れていたはずです。
「GoogleはGoogleは302を301のように扱う」というミス
これはどこかで読んだことがあるかもしれません。そして、その中には一定の真実があります。Googleは特定の状況では、特に宛先URLが長期間にわたって一貫している場合、長年存在している302を301に似た扱いをすることができます。John MuellerはさまざまなGoogle Search Centralのオフィスアワーセッションでこれについて言及しています。
ただし、ここが重要なポイントです:それはGoogleが開発者のミスに寛容であるというだけであり、あなたが計画の中心に据えるべき機能ではありません。Bingは同じように動作しません。ドメインマイグレーションのような重大な問題についてGoogleの判断に頼るのは、単に不適切な仕事です。正しいツールを使用してください。
現在どのタイプのリダイレクトが使用されているかを確認する方法
現在、サイト上で何がライブであるか確実でない場合、いくつかの迅速な方法があります。
最速の方法:ターミナルを開いてcurl -I https://example.com/old-pageを実行してください。レスポンスヘッダーの中からHTTP/1.1 301またはHTTP/1.1 302を探してください。5秒で完了します。
数百のURLに対するより徹底的な監査には、Screaming Frog SEO Spiderを使用しています。クロールをエクスポートして、レスポンスコード3xxでフィルタリングすれば、サイト上のすべてのリダイレクトとそのタイプを確認できます。Seahawkで何かに触れる前に、すべてのサイト監査の標準として実行しています。無料版は最大500のURLに対応しており、これは多くの小規模サイトをカバーしています。
WordPressの場合、Redirectionプラグインには、リダイレクト応答コードを含む、すべてのリダイレクトをリアルタイムで表示する組み込みログがあります。マイグレーション後に何か奇妙なことが起きていないかをキャッチするのに本当に便利です。
リダイレクトチェーン:誰もが十分に話さない問題
別の301にポイントしている301、そしてそれが最終URLにポイントしている。これはリダイレクトチェーンであり、複数回のマイグレーションやCMS変更を経たサイトではよく発生します。チェーン内の各ホップはリンクエクイティの転送をわずかに減弱させ、クロールバジェットを消費します。
私が従うルール:Screaming Frogで1つ以上のリダイレクトを含むチェーンが表示されたら、それを修正します。最初のURLを最終的な宛先に直接ポイントします。これは301チェーンと302チェーンの両方に適用されます。
リダイレクトの正しい実装方法
スタックによって異なりますが、最も一般的なシナリオは以下の通りです:
Apache (.htaccess): `` Redirect 301 /old-page https://www.example.com/new-page ``
Nginx: `` return 301 https://www.example.com/new-page; ``
WordPress(Redirectionプラグイン経由):HTTPコードフィールドを明示的に301に設定します。プラグインはデフォルトで301になっていますが、他のプラグインやインポートによって変更されることがあるため、常に二重確認してください。
Cloudflare Page Rules:CDNレベルで明示的な301または302ステータスコードを使用してリダイレクトルールを設定できます。リクエストがサーバーに到達する前のドメイン全体のリダイレクトに有用です。
追加で言うなら:リダイレクトを実装した後、curlまたはHTTP Status Checkerツールで検証してください。ブラウザでリンクをクリックするだけではいけません。ブラウザはリダイレクトを積極的にキャッシュするため、サーバーが初回訪問者に対して異なる内容を返していても、機能しているように思えます。
リダイレクトされたURLを指しているバックリンクに何が起こるか
短い答え:301リダイレクトは、時間をかけて、リンク価値をリダイレクト先のURLに統合します。ただし、バックリンク自体は消えたり自動的に更新されたりすることはありません。それらは依然として古いURLを指しています。リダイレクトはGoogleにそれらのリンクの価値を新しいリダイレクト先と関連付けるように指示します。
これがパーマリンク構造を301を設定せずに変更すると壊滅的な理由です。/blog/post-name/を指している過去に獲得したすべてのバックリンクは、そのURLが/articles/post-name/にリダイレクトするのではなく404になった場合、価値がなくなります。
2020年に、WordPressテーマを切り替えたコンテンツサイトを監査しました。新しいテーマには異なるURL構造が組み込まれていました。リダイレクトは設定されていません。約200の記事でリンク価値を一夜にして失っていました。Ahrefsのデータによると、適切に実装された301リダイレクトでも、リンク価値の約90~99%が保持されるようです。ただし、Googleは公式な数値を公表していません。重要なのは:不完全な301でも404には比較にならないほど優れているということです。
FAQ
301リダイレクトはリンク価値の100%を渡しますか?
いいえ、そしておそらくこれまで一度もありません。Googleは歴史的に、任意のリダイレクトを通じてPageRankのわずかな損失があることを示唆しています。引用されてきた古い数値は約15%の損失でしたが、Googleはそれ以来幾分か態度を軟化させています。AhrefsとMozはどちらも、単一のクリーンな301の場合、損失は最小限だと推定しています。あなたを傷つけるのは、チェーン、ループ、または完全に間違ったリダイレクトタイプを使用することです。
301リダイレクトを後で別の場所を指すように変更できますか?
はい。301はサーバーサイドの指示であり、Googleのインデックスに永遠に組み込まれているものではありません。いつでもリダイレクト先を更新できます。Googleは次のクロール時に新しいリダイレクト先をピックアップします。301の「permanent」は、その時点での永続的な意図を意味し、技術的に不変であることを意味するものではありません。
Googleが301リダイレクトを処理するのにどのくらい時間がかかりますか?
高いオーソリティを持つサイトで頻繁にクロールされている場合、時には1~2日以内です。より小さなサイトの場合、数週間かかることがあります。Google Search ConsoleのURL検査ツール経由で新しいURLを送信し、インデックス登録をリクエストすることで、これは大幅に高速化されます。すべてのマイグレーションで標準的に行っています。
すべての古いURLをリダイレクトすべきか、それとも重要なものだけにすべきか?
バックリンク、インデックスされたトラフィック、内部リンクがあるすべてのURLには、適切な301リダイレクトを設定すべきです。リンクもインデックストラフィックもないページについては、404でも問題ありません。価値がなかった完全に死んだURLをリダイレクトしてリダイレクト肥大化を招く必要はありません。
JavaScriptリダイレクトはどうですか?同じように扱われますか?
いいえ。JavaScriptリダイレクト(window.locationを使用)はJavaScript レンダリングが必要なため、Googlebotによってはるかに遅く処理されます。他のクローラー間での一貫性も欠けています。SEOに関わることは何でも、サーバーサイドリダイレクトを使用してください。常にです。
---
リダイレクトタイプは、見た目は些細に見えるまでは些細な問題です。クライアントに、マイグレーションから6ヶ月後にトラフィックが低下した理由を説明するために何時間も電話でやり取りしたことがあります。それは開発者が「より安全だから」という理由で302を使用する決定に遡ります。それはより安全ではありません。タイプを正しく設定し、チェーンを短く保ち、ブラウザ以外の何かで検証してください。
