リダイレクトとは?各リダイレクトの違いや仕組み、SEO効果について解説

リダイレクトとは、サイトやページに訪れたユーザーを、別のURLへ自動的に転送する仕組みのことです。
サイト移転やURLの変更時などでリダイレクトを意識するときが、SEO上重要なタイミングであることが多いです。そうした際に、数種類のリダイレクトをどのように用いればいいか気になっている方も多いのではないでしょうか。
今回の記事では、リダイレクトの意味や概要の基本から、推奨される種類と効果の違い、具体的な設定方法までを、SEOの観点で詳しく解説します。
この記事のポイント
- リダイレクトとは、ユーザーを別URLに自動で転送する仕組みを指す
- サーバーサイドとクライアントサイド(ブラウザ)で行われるリダイレクトの2種類があり、基本的にはサーバーサイドリダイレクトが推奨される
- 301リダイレクトは、URLが恒久的に変更された場合に用いられ、302リダイレクトは一時的な転送を表す
また、以下の資料では、リダイレクト設定するタイミングであるサイトのリニューアル時にSEO上で気をつけるべきポイントをまとめています。
\サイトリニューアルで気をつけるべきポイントはこちらから/
目次
そもそもリダイレクトとは?どんな意味?
リダイレクトとは、特定のサイトやページに訪れたユーザーを、別のURLへ自動的に転送する仕組みのことを指します。
例えば、運営しているサイトがこれまで使っていたURLから、新しいURLに変更したとします。このときに何もしないままでは、既存のユーザーは古いURLへとアクセスし続け、新しいサイトやページが閲覧されない事態が発生します。
このタイミングこそが、リダイレクトの必要な時です。リダイレクトを設定することで、古いページから新規ページへ自動的に遷移するため、ユーザーを新しいページに誘導することができるようになります。
ほかにも、
- 使用するデバイスによってURLを出し分ける
- 決済完了後、自動的にページを遷移させる
といった目的などでもリダイレクトは活用されます。
リダイレクトの重要性
リダイレクトを設定する目的の1つに、ユーザビリティが悪くならないようにすることがあります。
リダイレクトを設定していないままだと、ユーザーは旧サイトの更新されていない古い情報を見続けることになります。また、旧サイトをクローズ(404)してしまった場合は、新サイトにユーザー自身が移動しなければなりません。
適切にリダイレクトを設定すれば、こういったユーザビリティの悪化を防ぐことができます。
また、SEOの観点から考えてもリダイレクトは重要です。URLを変更した際にリダイレクト設定していないと、Googleなどの検索エンジンは、新しいページを別ページとみなすため、これまで積み上げた評価がリセットされてしまうのです。
正しくリダイレクトの設定を行えば、旧ページの検索エンジンの評価が新しいページに引き継がれるため、順位などのパフォーマンスをほとんど落とすことなく移行できます。
ただし、サイトリニューアル時のリダイレクトには、他にも注意しなければならない点があります。以下の資料にはサイトリニューアル時に気をつけるべきSEO上のポイントをまとめていますので、ぜひ参考にしてください。
\サイトリニューアルで気をつけるべきポイントはこちらから/
リダイレクトの設定が必要なタイミングとは?
前述したとおり、リダイレクトはウェブサイトの運営を行なっていく上でユーザビリティやSEOの観点からも覚えておくべきポイントです。
実際には、どういったときにリダイレクトが必要なのでしょうか。リダイレクトの設定が必要になるのは、主に以下のようなタイミングの時です。
- サイトのリニューアルを行なったとき(URLを変更)
- サイトのドメインを変更したとき
- PCからURLが異なるスマートフォンに移行させたいとき
- メンテナンス時など一時的に閲覧できないとき
- 期間限定キャンペーンなど一時的に閲覧してもらいたいページがあるとき
このようにリダイレクトが必要な状況は多様にあります。
サイトリニューアル時のリダイレクト方法については、以下の記事にてわかりやすく解説していますので、ぜひ参考にしてください。
リダイレクトの種類と違い
リダイレクトには大きく分けて、以下の2種類があります。
- .htaccessやPHPを用いるサーバーサイドのリダイレクト(HTTPリダイレクト)
- JavaScriptやmeta refreshを用いるクライアントサイドのリダイレクト
よく目にする「301リダイレクト」や「302リダイレクト」は、サーバーサイドのリダイレクトにあたり、SEOの文脈でGoogleが推奨する方法になります。
ここからは同じサーバーサイドのリダイレクトである「301リダイレクト」と「302リダイレクト」の違いや特徴についてみていきましょう。
301リダイレクト
「301リダイレクト」とは、URLが恒久的に変更された場合に用いられる転送処理のステータスコードです。
301リダイレクトは、以下のように「元のURLを今後使うことがない場合」に行います。
- サイトを丸ごとリニューアルしてURLが変更された場合
- SSL化をしてhttpからhttpsに変更した場合
- URLの正規化を実施する場合
検索エンジンも「新URLが表示すべきページ」だと認識し、基本的には速やかに新URLへインデックスが移行され、前のページの評価もそのまま引き継がれます。
302リダイレクト
「302リダイレクト」は、URLが一時的に変更された場合に用いられる転送処理のステータスコードです。
302リダイレクトをする場合は、以下のように一時的な変更を伝えるときに使います。
- A/Bテストでリダイレクトテストを実施するとき
- メンテナンス時に一時的に閲覧不可にするとき
- PCとスマートフォンで表示するURLを変えたいとき
- 一時的にキャンペーンページなどを経由してもらいたいとき
302リダイレクトは、一時的な変更の意味の通り、検索エンジンも「いつか元のURLに戻る可能性がある」と判断します。そのため、新URLのインデックス登録には、301リダイレクトに比べると時間がかかる傾向です。
ウェブサイト移転時などは301リダイレクトが推奨されます。なお、302リダイレクトでもページ評価は引き継がれますので、安心してください。
301リダイレクトと302リダイレクトの特徴や違いをまとめると、以下の通りです。
サーバーサイドのリダイレクト
ここからは、リダイレクトする仕組みの違いについて解説します。サーバーサイドでリダイレクトを設定する場合は、以下の2つの方法があります。
- .htaccessによるリダイレクト
- phpによるリダイレクト
.htaccessによるリダイレクト
.htaccessによるリダイレクトは、管理のしやすさ、設定のしやすさから最も推奨できるリダイレクト方法です。
ただし、.htaccessは、Apacheが使用されているサーバーであること、またサーバー上で.htaccessファイルにアクセスすることができるという条件が整っていないと、設定することはできないので注意しましょう。
1ファイルにまとめて記述できるほか、ファイル別やディレクトリ別など細かく設定することができます。wwwの有無や末尾のスラッシュ(トレイリングスラッシュ)など一括の対応は.htaccessで行うと便利です。
PHPによるリダイレクト
PHPによるリダイレクトとは、htmlファイルの先頭にheader関数を記述するリダイレクト方法です。
なお、リダイレクト時のステータスコードを設定することができますが、デフォルトの場合は302リダイレクトになってしまうため、サイト移転時などは301リダイレクトを必ず設定しましょう。
URLごとに設定ができることは便利ではあるのですが、管理の観点からは.htaccessがおすすめです。
クライアントサイドのリダイレクト
サーバーサイドでのリダイレクトについて紹介しましたが、クライアントサイドでリダイレクトを設定するケースもあります。
クライアントサイドでリダイレクトを設定する場合は、以下の2つ方法が用いられます。
- JavaScriptによるリダイレクト
- meta refreshによるリダイレクト
JavaScriptによるリダイレクト
JavaScriptによるリダイレクトとは、リダイレクト元のページ内の「scriptタグ」にリダイレクト用の「JavaScript」を記述してリダイレクトを設定する方法です。
JavaScriptによるリダイレクトをGoogleは適切に処理できるため、サーバーサイドのリダイレクトができない場合の第一候補になります。なお、ユーザーがJavaScriptを無効にしている場合は当然適用されないので注意しましょう。
また、特に意識しないとパラメータやリファラ情報を拾えなくなり、どのページから訪問したのかがわからなくなってしまうため、計測に影響を及ぼします。
以下の参考サイトを元に開発部門と相談しながら実装をしましょう。
参考:やはり、お前らのJavaScriptでのリダイレクト実装は間違っている - Qiita
meta refreshによるリダイレクト
meta refreshによるリダイレクトとは、metaタグの「http-equiv属性」に“refresh”を設定することでリダイレクトを設定する方法です。
そのため、htmlリダイレクトやmeta refreshリダイレクトとも呼ばれることもあり、昔は良く見られるリダイレクトの方法のひとつでした。
しかし近年では、HTMLの基準を定めるW3C やGoogleからも非推奨とされており、あまり見かけることもありません。基本的には.htaccessやPHP、JavaScriptによるリダイレクトもできない場合の最後の手段として使うようにしましょう。
リダイレクトの種類まとめ
リダイレクトには「サーバーサイド」と「クライアントサイド」で行うリダイレクトがあり、確実性やSEOの観点ではサーバーサイドのリダイレクトが推奨されています。
また、サーバーサイドのリダイレクトは「.htaccess」「PHPリダイレクト」が代表的であり、管理などの観点から「.htaccess」が最も推奨されます。
一方、クライアントサイドのリダイレクトには「JavaScriptリダイレクト」「meta refresh」の2種類がありますが、それぞれデメリットもあるため、サーバーサイドリダイレクトが使用できない場合に使用するのがおすすめです。なかでも、「meta refresh」は最後の手段としましょう。
リダイレクトの設定方法
ここからはこれまで紹介した、以下の4つのリダイレクトの設定方法をそれぞれ紹介します。
- .htaccess
- PHP
- JavaScript
- meta refresh
.htaccess
.htaccessのファイルがあるかサーバー内を確認します。サーバー内にファイルがない場合は、テキストエディタなどで新たに.htaccessファイルを作成し、該当するリダイレクトの記述を行いましょう。
リダイレクトの範囲によって記述が異なりますので、以下を参考にしてください。
ページ単位の場合
<IfModule mod_rewrite.c>RewriteEngine on
RewriteRule ^(リダイレクト元URL)$(リダイレクト先URL)[R=301,L]
</IfModule>
ディレクトリ単位の場合
<IfModule mod_rewrite.c>RewriteEngine on
RewriteBase /
RewriteRule ^old(元のディレクトリ)/(.*)$ /new(リダイレクト先のディレクトリ)/$1 [R=301,L]
</IfModule>
ドメイン単位の場合
<IfModule mod_rewrite.c>RewriteEngine on
RewriteCond %{HTTP_HOST} ^(元のドメイン)
RewriteRule ^(.*) (新しいドメイン)$1 [R=301,L]
</IfModule>
SSL化によるURLの変更の場合
<IfModule mod_rewrite.c>RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule ^(.*) (SSL化したリダイレクト先URL)$1 [R=301,L]
</IfModule>
URLを正規化する場合(www有りからwww無しにする場合)
<IfModule mod_rewrite.c>RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www有ページURL)
RewriteRule ^(.*) (www無しURL)$1 [R=301,L]
</IfModule>
上記の方法でリダイレクトが設定できない場合は、以下の記事を参考にしてみてください。
PHP
次にphpでリダイレクトの設定を紹介します。特定のページをリダイレクトする場合は以下の通りです。
<?phpheader('Location: (リダイレクト先のURL)', true, 301);
exit();>
*記述時、(リダイレクト先のURL)部分の()は除く。
phpでそのままリダイレクトを設定すると302リダイレクトになってしまうため、301リダイレクトを設定したい場合は、上記のように記述してください。
JavaScript
クライアントサイドでリダイレクトする場合は、JavaScriptを使って以下のように記述します。
<script type=”text/javascript”><!–-
setTimeout(“link()”, 0);
function link(){
location.href=’(リダイレクト先のURL)’;
}
––>
</script>
*記述時、(リダイレクト先のURL)部分の()は除く。
「使用しているサーバーでは、リダイレクトできない......」といったケースで、JavaScirptを使ったリダイレクトを設定することがあるので覚えておきましょう。
meta refresh
リダイレクトを伝えるページを表示してからリダイレクトをしたい場合は、meta refreshも利用可能です。
<meta http-equiv="refresh"content="リダイレクト先に飛ばすまでの秒数;URL=(リダイレクト先のURL)">
*記述時、(リダイレクト先のURL)部分の()は除く。
しかしSEOの評価を引き継げなかったり、ブラウザによってサポートされていなかったりすることもあり、Googleからも非推奨となっています。そのため、他のリダイレクトがどうしても利用できない場合のみ、利用を検討すると良いでしょう。
また、リダイレクト目的で使用する場合は、秒数を0秒に設定しましょう。そうすることで、扱いとしてはその他のリダイレクトと同じように処理されます。
リダイレクトの警告や不正が出た時の対処法
リダイレクトが実行される際に、以下の2種類の警告が出ることがあります。ここからは、それぞれ警告が出てしまった時の対処法を紹介します。
- リダイレクトの警告が出た場合の対処法
- 不正なリダイレクトが出た場合の対処法
リダイレクトの警告が出た場合の対処法
リダイレクト先が閲覧者にとって不利益になるものや、関連のないページの場合は警告が出てしまうこともあります。具体的な原因は、以下の4つが考えられます。
- cookieが原因の場合
- リダイレクト先がSSL化できていない場合
- リダイレクト先が関係ないページの場合
- リダイレクト先のURLを短縮URLにしている場合
- リダイレクトループ、リダイレクトチェーンが長くなる場合
警告が出てしまう場合は、リダイレクト先をSSL化しセキュリティ面を強化したり、短縮URLではなく元のURLに記述を変更したりなどで解消されるでしょう。
それでも警告がなくならない場合は、一度自分のCookieを削除し自分のパソコン自体に問題がないか確認してみるのがおすすめです。
不正なリダイレクトが出た場合の対処法
不正なリダイレクトと判断されると検索順位が下がるなどのペナルティが発生してしまうため、早急な改善が必要です。ですが、そもそも不正なリダイレクトとは、どういった場合に表示されるのでしょうか。
原因としては、以下の2つに該当している可能性があります。
- 検索エンジンでは正しいリダイレクト先が表示されるが、ユーザーには異なるページが表示される場合(クローキング)
- リダイレクト先が元ページと全く関係のないページ(スパムページなど)の場合
リダイレクトの設定ができていても、不正なリダイレクトの表示が出てしまう場合は、Googleから関連性がないと判断されてしまっている可能性が高いです。そのため、元ページとリダイレクト先に関連性を持たせる必要があります。
例えば、同じキーワードの設定やディスクリプションの設定にしてみたり、スマートフォンからリダイレクト先へ移動する場合のURLが正しいものになっているか確認してみたりするのがおすすめです。
リダイレクトの設定期間に関して
最後に、リダイレクトの設定期間に関して紹介します。リダイレクトの設定をしてもクローラーがリダイレクトを検出する前に解除してしまうと、新ページへ評価の引き継ぎがされず、順位の下落や、検索結果に表示されないという事態が発生します。
そのため、理想はずっと、最低でも1年間はリダイレクトを維持するようにしましょう。
この記事もチェック
また、決済後のページ遷移などでリダイレクトを使用する際に、リダイレクトの設定の仕方によっては自動で切り替わらないことも少なくありません。そのため、「自動で切り替わらない場合はこちらをクリック」などの文言を記載しておくことをおすすめします。
リダイレクトを正しく活用しよう
リダイレクトを正しく設定しないと、せっかくこれまで頑張ってきたSEOの評価を手放すだけなく、ユーザービリティを大きく下げることにもつながります。
サイトリニューアルやSSL化など、URLを変更する機会は決して少なくないからこそ、リダイレクトの重要性をしっかりと理解し、対応に抜け漏れが発生しないようにしましょう。
リダイレクトに関して、お困りでしたら弊社のコンサルタントがサポートいたしますので、お気軽にお問い合わせください。
なお、ナイルでは、サイトリニューアルでSEO上、気をつけるべきポイントをまとめた資料をご用意しております。
具体的な内容については、ダウンロードの上、ご確認ください。
サイトリニューアルで後悔したくない方へ
サイトリニューアルによる検索流入悪化、コンバージョン悪化を防ぐポイントを資料にまとめました。無料相談もお気軽にご利用ください!リニューアル実施の前後は問いません!