
Webサイトを長く運営していると、必ずリダイレクトの問題が出てきます。
今回の記事ではリダイレクトの基礎的な知識から、実際にリダイレクトを設定するための方法や注意点について説明していきます。
リダイレクトとは
リダイレクトとは、WEBページに訪れたユーザーを別のURLに自動的に誘導・転送するためのしくみです。例えば、ページ移転前のURLにアクセスしたユーザーを新しいURLに転送したい際などに使用されます。
さらに、検索エンジンの評価を新しいページに引き継ぐこともできます。
そのためリダイレクトはユーザーにとってはもちろんのこと、SEOにとっても重要です。
ページやドメイン移転(URL変更)のあと、検索結果に表示されていた以前のページの評価は、リダイレクトを行わないままだと変更後の新しいページには引き継がれません。
そうすると検索エンジンの上位表示も消えてしまい、トラフィックを失ってしまうことになります。
これを防ぐために行うのがリダイレクトです。
リダイレクトの種類と設定方法
単にリダイレクトと言った場合にはHTTPリダイレクトを指すことがほとんどです。
HTTPリダイレクトとは転送を意味する300番台のステータスコードを伴うリダイレクトのことで、301や302のリダイレクトが代表的です。
HTTPリダイレクトは、サーバー側で行われるもので、.htaccessやphpなどにより設定することができます。
一方で、ユーザーのブラウザ(クライアント)側で行われる転送もあります。JavaScriptやmeta refreshを用いた転送がこれにあたります。
これらの転送は、ステータスコード200を返すページから行われます。
SEOにおいてはクライアントサイドでの転送は行わず、サーバーサイドでのリダイレクトを行うことが推奨されています。
それぞれリダイレクトの設定方法について、詳しく見ていきます。
.htaccessによるリダイレクト
htaccessファイルを使ったリダイレクトは、SEOにおいて最も推奨される方法の一つです。
.htaccessとはWebサーバー上に置かれる設定ファイルのことで、リダイレクトを含む様々な設定を行うことができます。
.htaccessはApacheが使用されているサーバーでないと使用できず、またファイル編集のためにFTPなどによってサーバーにアクセスする権限が必要です。
まずテキスタエディタを使って、適当なファイル名でhtaccessファイルを作成します(たとえば sample.htaccess など)。
作成したhtaccessファイルを開き、URLの移行(リダイレクトの仕方)に合わせた記述を行い保存します。
1.ページ単位でのリダイレクト
sample1.htmlからsample2.htmlに転送させるケースでの記述
RewriteEngine on RewriteRule ^sample1.html$ http://www.tensou.com/sample2.html [L,R=301]
2.ディレクトリ単位でのリダイレクト
sample1ディレクトリからsample2ディレクトリに転送させるケースでの記述
RewriteEngine on RewriteRule ^sample1(.*)$ /sample2$1 [L,R=301]
ほかにもhttpからhttps へのリダイレクト、httpsからhttpへのリダイレクト、wwwありのURLからwwwなしのURLへのリダイレクトなど、転送の形に合わせて記述を変えていきます。
記述が終わって保存した .htaccessファイルをサーバーにアップすれば、リダイレクトは適用されます。
詳しくは以下の記事もご覧ください。
htaccessによるリダイレクトの設定方法
phpによるリダイレクト
phpによるリダイレクトは、htmlファイルの先頭にphpを記述することでリダイレクトする方法です。
sample1.phpからsample2.phpに転送させるケースでの記述
<?php http_response_code( 301 ) ; header( "Location: ./sample2.php" ) ; exit ;
phpによるリダイレクトはhtaccessファイルの記述では条件分岐が複雑になってしまう場合に推奨されます。
ただし、htaccessファイルとは異なり、サイト内のリダイレクトを一元管理できなくなってしまうことに注意が必要です。
なお、WordPressを使用している場合には、プラグインなどでもリダイレクトを行うことが可能です。
参考:Redirectionを使ったWordPressのリダイレクト方法
JavaScriptによるリダイレクト
使用しているサーバーで HTTPリダイレクトができない場合は、代替としてJavaScriptによるリダイレクトができます。
JavaScriptによるリダイレクトはクライアントサイドで行われます。
sample2.htmlに転送させるケースでの記述
<script type=”text/javascript”> <!? setTimeout(“link()”, 0); function link(){ location.href=’https://(sample2.html)’; } ?> </script>
この方法の場合、JavaScriptを無効にしているブラウザでは適用されないので注意してください。
そのためJavaScriptを無効化しているユーザーを逃してしまう可能性があり、なるべく避けたい方法といえます。
また、Googleも一応JavaScriptによるリダイレクトはサポートしておりランキング評価を引く継ぐことは可能ですが、使用することは推奨されていません。
以下の記事もご覧ください。
javascriptで転送(リダイレクト)を行う方法と注意点
meta refreshによるリダイレクト
meta refreshはhtmlのheadタグ部分に記載する指示により転送する方法です。
そのためhtmlリダイレクトやmeta refreshリダイレクトとも呼ばれることもあります。
meta refreshもクライアントサイドでの転送です。
meta refreshはたとえば「当ホームページは移転しました。10秒後にジャンプします」という表示が出て、自動的に別のURLに転送される際などによく見られました。
しかし、HTMLの基準を定めるW3Cではずっと前からmeta refreshは非推奨となっており、現在ではあまり見かけることはなくなりました。
Googleもmeta refreshをサポートはしているものの、やはり非推奨という立場ですので、HTTPリダイレクトもJavascriptによるリダイレクトもできない場合の最後の手段として使うのがよさそうです。
10秒後にsample2.htmlに転送させる場合の記述方法
<meta http-equiv=”refresh” content=”10;URL=’sample2.html'” />
10の部分を5にすれば5秒後に、0にすれば即座にリダイレクトされます。
SEOの効果を期待するならば、転送までの時間は0秒を指定しておくことをお勧めします。
以下の記事もご覧ください。
htmlのmeta refreshを使ったリダイレクト設定
SEOにおけるリダイレクトの使い分け
これまでリダイレクトについて解説してきましたが、SEOにおいてURLを変更することは推奨されていません。可能な限りURLを変更せずに以前からのURLを使い続けることがおすすめです。
どうしてもURLを変更する必要がある場合にのみURLを変更し、リダイレクトを行います。
URLの変更が避けられない場合には、.htaccessなどによりHTTPリダイレクトを使用するのがおすすめです。
その場合のステータスコードとしては、よく301と302が使われます。
Googleはどちらのリダイレクトを使用しても評価を引き継ぎますので、以下のシチュエーションとして適切なほうを使用することをおすすめします。
301リダイレクト
恒久的なリダイレクトという意味を持つリダイレクトです。
次のような場合に使用します。
- ページの移転が完了し、もうもとのページに戻ることがない場合
- サイトをまるごと移転した場合
- httpからhttpsに変更(SSL化)した場合
- index.htmlのありなし、wwwのありなしをどちらかに統一したいとき
302リダイレクト
301が恒久的という意味合いを持つのに対し、302は一時的という意味合いを持ちます。
次のような場合に使用します。
- メンテナンスなどで、一時的に別URLでサイトを公開する場合
- デスクトップとモバイルで別々にページが存在しており、デバイスに応じて一方から他方へ転送したい場合
301と302の使い分けについてより詳しくは以下の記事を参照ください。
301リダイレクトの設定方法と302との違い
HTTPリダイレクトが使用できない場合
.htaccessやphpなどによるHTTPリダイレクトが使用できない場合はJavaScriptやmeta refreshによる転送を行います。
推奨されている方法ではないとはいえ、何もしない場合と比べれば大きな違いがあります。
HTTPリダイレクト(.htaccessやphp) > Javascriptによるリダイレクト > meta refresh
という優先度で検討しましょう。
リダイレクトに関するエラーや警告
この記事をご覧になっている方の中には、サイトを閲覧中にリダイレクトに関するエラーに行き当たって検索によりたどり着いた方もいるかもしれません。
これらのエラーについては以下で詳しく解説していますのでそれぞれご覧ください。
「リダイレクトが繰り返し行われました。」のエラーとは?リダイレクトループの原因と対処法
まとめ
リダイレクトはURLの変更があった際に使用するものですが、極力URLは変更しないことがおすすめです。
URL変更が避けられない場合のリダイレクトはHTTPによるリダイレクトを行い、それができない場合にはJavaScriptやmeta refreshによる転送を行います。
リダイレクトの設定忘れやミスはサイトの評価やトラフィックに大きな影響を与えますので、公開前には入念なチェックをしておきことをおすすめします。
『いまさら聞けないリダイレクト基礎知識』を無料でダウンロードする br>
リダイレクトの基礎と実践の2部構成資料を公開しておりますので、ぜひご活用下さい。
→https://sakurasaku.satori.site/free-document/redirect/