リダイレクトの種類とGoogleクローラーとの関係について解説します。
リダイレクトとは
リダイレクトとは、あるURLへアクセスしたときに、自動的に他のURLへ転送されることを指し、代表的な使用ケースとしては下記のようなものがあります。
- ウェブページのURLが変更になった時の処理
- SSL化に伴うhttpからhttpsへの移行処理
- 会員ページにログインした時の処理
- メンテナンス時に一時的に別URLを表示させる時の処理
リダイレクトとGoogleクローラーの関係
リダイレクトはいくつかの種類がありますが、Googleクローラーの認識するリダイレクトは以下の2つです。
- httpリダイレクト(301リダイレクトと302リダイレクト)
- クッキーを読み込まない状態で実行される一部のJavaScriptリダイレクト
リダイレクトはできるだけ1回で処理できるようにします。
5回以上のリダイレクトを行うと、Googlebotは停止し404として対処することに注意が必要です。
リダイレクトの種類
一般的に実装される頻度の高いリダイレクトについて、種類別に紹介します。
301リダイレクト
サーバーサイド側で行なわれる「恒久的な」リダイレクトのこと。
URL変更、SSL化に伴う移行、ドメイン変更などのページやサイト移転の場合には301リダイレクトを使用することがベストです。
301リダイレクトを利用することでリダイレクト元からリダイレクト先にPagerankが引き継がれ、URL変更に伴うランキングも安定しやすいことが特長です。
302リダイレクト
サーバーサイド側で行なわれる「一時的な」リダイレクトのこと。
ページのA/Bテストを行う場合や、メンテナンスなどの理由で、ウェブページのURLが一時的に変更される場合に利用します。
あくまで「リダイレクトしているものの、いずれ元のURLに戻す」という用途です。
長期に渡って302リダイレクトを設定し続けると、Googleが301リダイレクトと認識してしまうことがあるので注意しましょう。
(この場合もリダイレクト先のページにPagerankが引き継がれます)
meta refreshタグによるリダイレクト
ページ内にmeta refreshタグを設定するリダイレクトのこと。
<meta name=”refresh” content=”0;https://example.com/”>
(https://example.com/にリダイレクト先のURLを記述)
上記記述をしたタグをページに入れることで「0秒以上の時間でhttps://example.com/にリダイレクトする」という処理が動きます。
W3Cではmetaリダイレクトを利用しないよう推奨しており、Googleもリダイレクト時には、meta refreshタグではなく301リダイレクトを行うよう推奨しています。
また、Google側で正しく処理されない可能性もあるため使用しないようにしましょう。
JavaScriptを使用したリダイレクト
JavaScriptを使用することにより実行されるリダイレクトのこと。
JavaScriptによるリダイレクトもGoogleは処理することは可能としていますが、注意点があります。
- 場合によってはGoogle側で処理できないことがある
- 使用する際にはJavaScriptの読み込みができるようにrobots.txtの設定をする必要がある
原則的にURL変更などの際には、サーバーサイドの301リダイレクトを1回で処理するようにしましょう。
Googleにリダイレクト処理されているかを確認する方法
実際にリダイレクトの設定後にGoogleが処理しているかを確認する方法について解説します。
Search Consoleで確認する
例えば以下のようなURL変更を行ったとします。
https://example.com/aaa.html
↓301リダイレクト
はじめにSearch Consoleの「カバレッジ」で、リダイレクト前の「https://example.com/aaa.html」を確認します。
Googleがリダイレクト処理を認識していれば「ページにリダイレクトがあります」という表記が表示されます。
(meta refresh、JavaScriptリダイレクトも同様に確認可)
上記のようになっていれば問題ありません。
もしリダイレクトを設定したのにこのようになっていない場合にはクローラーが来訪していないだけの可能性があります。時間をおいて確認してみましょう。
サイト移転(ドメイン変更)をした場合
以下のようなサイト移転(ドメイン変更)を行ったと仮定します。
https://aaa.com/
↓301リダイレクト
https://bbb.net/
この場合にリダイレクトが実行されているかどうか確認するには、移転元のサイト(上記例ではhttps://aaa.com/)のSearch Consoleを登録してリダイレクトを確認する必要があります。
その上で前述のURL変更と同様「ページにリダイレクトがあります」が確認できれば適切にリダイレクトが処理されています。
リダイレクトに伴うエラー
Search Console上でリダイレクトの設定周りでエラー表示されることがあります。
代表的なものを知っておきましょう。
リダイレクトエラー
Search Console「カバレッジ」のエラー(赤)でリダイレクトエラーが表示されているような場合、
- リダイレクトの回数が多すぎる(5回以上リダイレクトを繰り返している)
- リダイレクトがループしている(aaa.html→bbb.html→aaa.html…など)
などのミスが考えられます。
エラーのURLを確認し、設定の見直しを行いましょう。
(もし一時的なものであればSearch Console内で「修正を検証」を送信してください)
見つかりませんでした(404)
「見つかりませんでした(404)」はリダイレクトだけの問題ではありませんが、中にはリダイレクトが関わっているものもあるので注意しましょう。
例えば下記のようなリダイレクトを設定していた場合、
https://example.com/aaa.html
↓301リダイレクト
https://example.com/bbb.html
https://example.com/bbb.htmlが404ページだと「見つかりませんでした(404)」エラーに振り分けられることがあります。
遷移元のhttps://example.com/aaa.htmlのリダイレクト先を404ページにならないように修正しましょう。