特定URLにアクセスしたユーザーを別URLへ転送する仕組み。
サイトリニューアルなどによって各ページURLが移転したとき、旧URLへ訪れたユーザーを新URLへ誘導する目的で利用されるケースが多い。
HTTPリダイレクト・URLリダイレクトなどと呼ばれる場合もある。
リダイレクトとは
リダイレクトとはURL自動転送の仕組みで、特定URLにアクセスしたユーザーを別URLへ転送するために用いられます。
リダイレクトのおもな利用用途は、下記の通りです。
・サイト内のページURLが移転したとき
・メンテナンスなどで一時的にアクセスを遮断したいとき
リダイレクトを用いることで、特定URLにアクセスしたユーザーを移転先の新URL・メンテナンスページなどに転送できます。
301リダイレクトと302リダイレクト
リダイレクトにはいくつか種類があり、一般的には「301リダイレクト」と「302リダイレクト」の2種類が用いられます。
▼301リダイレクトと302リダイレクトの違い
|
301リダイレクト |
302リダイレクト |
---|---|---|
意味 |
主にネットワークサービスの提供者を表す |
一時的な転送 |
おもな利用シーン |
主に非営利団体を表す |
・スマホページへの転送 ・メンテナンス画面への転送 |
ページ評価 |
主にビジネスを表す |
転送先URLに渡される |
検索結果画面 |
主に情報の提供者を表す |
転送元URLを表示 |
301リダイレクト
301リダイレクトによる転送は、永久的なものとして検索エンジンに認識されます。
ドメイン引っ越しなどで長期にわたるページ移転をする際に、Googleで推奨されている転送方式です。
301リダイレクトを設定した場合、Googleの検索結果画面には転送先のURLが表示されます。
▼301リダイレクトのおもな利用シーン
・ドメイン引っ越し・サイトリニューアル
・複数サイトの結合
・重複ページの一本化
※より詳しい内容は、用語辞典の「301リダイレクト」の項目をご参照ください。
302リダイレクト
302リダイレクトの転送は、一時的なものとして検索エンジンに扱われます。
301リダイレクトと異なるのは、検索結果画面に転送元URLが表示される点です。
▼302リダイレクトのおもな利用シーン
・ユーザー環境によって振り分けられるスマホページへの転送
・サイト改装時のメンテナンス画面への転送
※より詳しい内容は用語辞典の「302リダイレクト」の項目をご参照ください。
・ページ移転がずっと続くなら、301リダイレクト
・ページ移転が一時的なものなら、302リダイレクト
という感じで原則通り使い分ければ問題ないですよ~。
リダイレクトの方法
リダイレクトのおもな設定方法は以下の4種類です。
1 .htaccessファイルを用いたリダイレクト
2 PHPによるリダイレクト
3 HTMLのmetaタグを使ったリダイレクト
4 JavaScriptによるリダイレクト
オススメ度としては、「.htaccess>PHP>HTML=javascript」という感じです~。
また、wordpressを使用している人は「Redirection」というプラグインを使用する方法もあるですよ~。
1.htaccessファイルを用いたリダイレクト
「.htaccess(ドット・エイチ・ティ・アクセス)」を用いたリダイレクトは、Googleの「Search Consoleヘルプ」でも言及されており、最も基本的な設定方法といえます。
参照:ページURLの変更と301リダイレクトの使用 – Search Console
.htaccessによるリダイレクトを行う際には、Webサーバーが以下の条件を満たしている必要があります。
・Webサーバーが「Apache(アパッチ)」である
・Webサーバー上で「.htaccessファイル」を利用できる
・Apache の「mod_rewriteモジュール」使える(必須ではない)
これらの条件を満たす主要レンタルサーバーとしては、「さくら インターネット」「ロリポップ」「Xserver」などがあげられるです~。
【.htaccessファイルによるリダイレクト設定の流れ】
1.テキストエディタ上で、任意の名前でファイルを作成する(例:「*.htaccess」、「*.txt」など)
2.作成したファイルにリダイレクト設定を記述し、保存する
3..htaccessファイルをサーバーにアップロード(アップロード後、ファイル名を「.htaccess」に変更するのを忘れずに!)
環境によっては、拡張子(※)だけのファイル名が設定できなかったり、そもそも拡張子が.htaccessのファイルを保存できなかったりすることがあるです~。
そういうケースでは、ファイル作成の段階でファイル名を「.htaccess」以外にしておく必要があるんですね~。
※拡張子とは↓
ファイルの種類を識別するためにファイル名の末尾につけられる文字列。
「.webp」「.txt」「.htaccess」などが該当する。
【.htaccessリダイレクトの書き方】
.htaccessファイルへのリダイレクト設定の書き方を紹介します。
なお、紹介するサンプルにおいて、.htaccessファイルはサイトのトップディレクトリ(最上位の階層)に設置されていることが前提です。
〇1ページ単位でのリダイレクト
▼「https://example.com/old-page.HTML」から「https://example.com/new-page.HTML」へリダイレクトする場合の書き方
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /
RewriteRule ^example.com/page.HTML$ https://example.com/new-page.HTML[R=301,L]
</IfModule>
※【L】=「LAST(ここで処理が終わります)」という意味
【R=301】=301リダイレクトの意味。302リダイレクトにしたい場合、この記述を省略し、【L】だけ記述する。
〇ディレクトリ単位のリダイレクト(同一ドメイン内)
▼「old」ディレクトリから「new」ディレクトリへ転送する場合の書き方
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /
RewriteRule ^old(.*)$ /new$1 [R=301,L]
</IfModule>
「.htaccess」ファイルでは、ドメイン単位でのリダイレクトや、httpページからhttpsページへのリダイレクトなど、さまざまな条件を指定することも可能です~。
.htaccessのリダイレクトについて、より詳しい内容はコチラで解説してるです~。
PHPによるリダイレクト
転送元URLのHTMLファイルにPHPを記述することで、リダイレクトを行います。
.htaccessファイルでは条件分岐が複雑になってしまう場合に推奨される方法です。
PHPのリダイレクト設定は、HTMLファイルの冒頭に書かないとエラーを起こします。
設定する際は注意しましょう。
【PHPリダイレクトの書き方】
▼301リダイレクトで「http:/www.example.com」に転送する場合の書き方
<?php
$url = ‘http://www.example.com/‘;
header(‘Location: ‘ . $url, true, 301);
exit;
3.HTMLのmetaタグを使ったリダイレクト
HTMLのmetaタグ内でリダイレクト設定を行います。
ただし、HTMLのリダイレクトは下記のようなデメリットが指摘されています。
・一部ブラウザにおいて「戻る」ボタンが機能しなくなる
・SearchConsoleの「アドレス変更ツール」が使用できない
さらにGoogleやW3C(※)ではHTMLリダイレクトを推奨していないため、.htaccessやPHPによるリダイレクトができない場合の代替案と考えるのが良いでしょう。
※W3C↓
ウェブで利用される技術の標準化を進める非営利団体。
【HTMLリダイレクトの書き方】
▼10秒後に「http:/www.example.com」へリダイレクトする場合の書き方
<meta http-equiv=”refresh” content=”10;URL=’’http:/www.example.com” />
javascriptによるリダイレクト
サーバー環境により、上記3種類のリダイレクト設定が使用できないとき、代替としてjavascriptを用いるケースがあります。
ただし、javascriptを無効にしているブラウザではリダイレクト転送が行われません。
ブラウザでjavascriptを無効化しているユーザーの流入を逃すリスクがあるため、他の方法を用いるのが理想です。
【javascriptリダイレクトの書き方】
▼「https:/www.example.com」にリダイレクトする場合の書き方(例)
<script type=”text/javascript”>
<!–
setTimeout(“link()”, 0);
function link(){
location.href=’https://(www.example.com)’;
}
–>
</script>
javascriptでリダイレクトすると、Googleアナリティクスの流入解析が正しく行われなくなるので注意が必要です~。
これを回避する方法は、次のページを参考にしてほしいです~。
ページの移転をユーザー・検索エンジンにしっかり伝えるためには、できるだけ.htaccessやPHPによるリダイレクトを優先するのがオススメです~。
HTMLやjavascriptのリダイレクトは、それらができない場合に使用するのが良いでしょう~。
リダイレクト設定のチェック
リダイレクト設定が完了したら転送処理が正しく行われているか確認しましょう。
代表的なリダイレクトチェックツールのリンクを以下に記載するので、ご活用ください。
・リダイレクトチェッカーツール – WEB便利ツール@ABASHI
リダイレクトの注意点
1.301リダイレクトは1ページ単位が基本
2.不正なリダイレクトに注意
3.301リダイレクト設定は半永久的に残しておく
4.URL移転をsearchconsoleにも登録する
5.iPhoneブラウザ「多くのリダイレクトが発生しています」表示への対処
301リダイレクトは1ページ単位が基本
301リダイレクト設定は、原則1ページごとに、それぞれの対応ページへ向けて行いましょう。
対応ページ以外に301リダイレクトをすると、下記のような問題が発生する場合があります。
・ユーザーの利便性の低下
・転送元URLの評価が転送先に正しく受け継がれない
たとえば、サイト全体のドメインを引っ越しするケースを考えてみます。
旧ドメインの各ページURLから、新ドメインのトップページURLへ向けて301リダイレクトを行った場合、ユーザーが旧ドメイン内のどのページにアクセスしても、新ドメインのトップページへ転送されます。
しかし、旧ドメインに訪問したユーザーは、サイトのトップページではなく、特定ページのコンテンツを目的としているケースも多いです。
その場合、上記のリダイレクト設定では、ユーザーが目的のコンテンツにたどり着くまでの手間が増えてしまいます。
さらに、検索エンジンがドメイン移転を正しく認識できず、リダイレクトによるページ評価の受け渡しが正しく機能しないケースも想定されます。
そのため、301リダイレクトの転送先には、転送元と同じコンテンツを含むURLを指定するのが基本です。
例外として、サイトの下の階層でディレクトリ構成に変化がないなら、.htaccessでドメインごと、ディレクトリごとにリダイレクト設定をしても大丈夫です~。
不正なリダイレクトに注意
Googleの「searchconsoleヘルプ」では、不正なリダイレクトに関する情報を記載しています。
該当ページには、不正なリダイレクトの具体例として下記が挙げられています。
“・検索エンジンにはあるコンテンツが表示されるが、ユーザーはまったく違うコンテンツにリダイレクトされる。
・PC ユーザーには通常のページが表示されるが、モバイル ユーザーはまったく別のスパム ドメインにリダイレクトされる。”
出典:不正なリダイレクト – SearchConsoleヘルプ
基本的には、転送元と同じコンテンツを含むページへリダイレクトすれば問題ないでしょう。
ただし設定ミスなどにより、内容が大きく異なるページへの301リダイレクトが多数行われた場合はペナルティ対象となる可能性があります。
リダイレクト設定時には、転送元と転送先のURLに間違いがないか、よく確認するのが良いでしょう。
301リダイレクト設定は半永久的に残しておく
2015年9月11日、Googleのオフィスアワーライブ配信において、ジョン・ミューラー氏は「301リダイレクト設定は半永久的に残しておくのが良い」と説明しています。
https://www.youtube.com/watch?v=QWL864VlW7I&feature=youtu.be
301リダイレクトにエラーがなければ、その設定を残しておくことで、旧URLへ訪問したユーザーを確実に新URLへ転送できます。
そのため、外部サイトやSNSなどに設置された自サイトへのリンク・ブラウザのブックマークなどに旧URLが登録されていたとき、これらの経路から流入するユーザーを逃すリスクがなくなります。
【リダイレクト設定を削除する場合でも1年は残しておく】
やむを得ずリダイレクト設定を削除する場合にも、設定から1年は残しておくのが良いでしょう。
Googleの検索エンジンは301リダイレクトを見つけた際、その設定を可能な限り記憶しておこうとします。
ジョン・ミューラー氏によれば、がリダイレクト設定を記憶するまでには、半年~1年ほどの期間が必要です。
そのため、リダイレクト設定の削除は、設定から1年以上経過した後に行うのが無難といえます。
ただし、Googleによるリダイレクトの記憶は絶対ではありません。
リダイレクト設定を1年以上残しておいた場合でも、削除後に旧URLからの転送が行われなくなるリスクは存在するので注意してください。
URL移転はsearchconsoleにも登録する
URL移転に伴うリダイレクト設定が完了したら、新URLをsearchconsoleに登録しましょう。
searchconsoleのアドレス変更ツールを使用すると、検索順位への影響を最小限に抑えつつ、URL移転情報をよりスムーズに検索エンジンへ伝えることが可能です。
詳しくは「searchconsoleヘルプ – アドレス変更ツールの使用」を参照してほしいです~。
【iPhoneの「多くのリダイレクトが発生しています」表示への対処】
リダイレクトが設定されたページを閲覧する際、iPhoneのsafariブラウザで「ページを開けません。多くのリダイレクトが発生しています。」と表示されるケースがあります。
この原因について、Apple公式サポートでは、ページのリダイレクト設定、もしくはiphoneブラウザに問題がある可能性を指摘しています。
まずはページのリダイレクト設定を見直して、「リダイレクトループ」と呼ばれる現象が発生していないかチェックしてみましょう。
リダイレクトループが見つかった場合、該当ページにおいて転送先URLが正しく設定されているか見直してみましょう。
また、wordpressを使用している場合、プラグインを停止するなどの措置で改善する場合があります。
リダイレクト設定に問題がない場合は、iphoneブラウザ側でキャッシュやcookieを削除すると解決するケースがあります。
ユーザーから問い合わせがあった際には、下記のページを参考に返答すると良いでしょう。
https://support.apple.com/ja-jp/HT203370
「リダイレクト」のおさらい
・リダイレクトとは、ユーザーを別URLに自動転送する仕組み
・「ページURLの変更」「スマホページへの転送」「ドメイン移転」などの際に利用される
・301リダイレクトは「永久転送」、302リダイレクトは「一時的な転送」
・「.htaccess」によるリダイレクトが基本的
関連用語
・HTML
・PHP
・ブラウザ
・SEO
その他参考になる記事