ウェブサイトを運営していると、サイト移転やページの改修でURLの変更が必要なことがあるかと思います。ウェブサイトのURLを変更したら、旧URLへ訪問してしまうユーザーのために新しいURLへ誘導しなければいけません。そのときに、設定したいのがリダイレクトです。
旧URLから新URLにリダイレクトを設定することで、古いURLにアクセスしたユーザーをスムーズに新しいURLに誘導できます。今回は、リダイレクトとはどのような技術なのか、具体的な設定方法や主に使われている手法の特徴、またリダイレクト関連の警告メッセージについて分かりやすく解説していきます。
目次
リダイレクトとは、ウェブページのURLが移転や削除によって変更になった際、旧ページに訪問するユーザーを新ページのURLへと自動で転送する処理のことです。
たとえば、【example.com/a1】のURLが【example.com/a2】へと変更になった場合、リダイレクトを利用することで、【example.com/a1】を表示しようとしたユーザーは【example.com/a2】に自動転送されます。
リダイレクトには、さまざまな種類があり、主に利用されているのは.htaccessを使用した下記の2つの設定です。
それぞれのリダイレクト設定の特徴や効果をご説明します。
301リダイレクトとは、ページを恒久的に移転先へと転送する設定のことです。ウェブサイトのURLを変更しても、301リダイレクト設定をしておけば、新URLのページへユーザーを正しく誘導できます。301リダイレクトは次のようなときに利用します。
301リダイレクトによるリダイレクトは、SEOにも大きく影響します。過去の被リンクの評価引き継ぎや、旧ページの評価をほぼ保ったまま新ページへ引き継ぐ効果などが期待できます。301リダイレクトについては、下記の記事をご参照ください。
302リダイレクトとは、301リダイレクトのような恒久的な転送ではなく、一時的なURLが必要な際に利用することを目的としたリダイレクト方法です。例えば、サーバートラブルやサイトメンテナンスなど、問題が解決するまでの間のみリダイレクトが必要で、そのあとは従来のURLに戻ることを前提とした場合に利用します。
302リダイレクトも代表的なリダイレクト設定ではありますが、301リダイレクトと混同しやすいのでしっかりと違いを理解することが大切です。302のつもりが301で転送していた、その逆もよくないリダイレクトの例としてあるパターンです。ユーザーにとっては自動で転送されるため違いがわかりにくいですが、サイトのSEOに大きく影響しますので、注意しましょう。
リダイレクトは、主にクライアントサイドとサーバーサイドの2つに分けられ、それぞれの設定方法が異なります。
クライアントサイドリダイレクト
サーバーサイドリダイレクト
クライアントサイドリダイレクトとは、meta refreshや Javascriptによるリダイレクト設定方法で、htmlに転送先情報を記述することによって、ユーザーを転送することができます。サイトを訪れた際に、「このサイトは、新サイトへと移転しました。5秒後に自動的に転送します。自動転送しなければ、URLをクリックしてください。」というメッセージを見たことはありませんか? これがクライアントサイドリダイレクトを利用したリダイレクトです。
サーバーサイドリダイレクトとは、サーバー設定ファイルの .htaccessなどを利用したリダイレクト方法です。
先程のクライアントサイドリダイレクトと異なり、旧URLへアクセスしようとするとサーバー自体が転送先ページを返すので、ユーザーはすぐに新URLのページを閲覧できます。サーバーの仕様等の影響で .htaccessを利用できない場合は、PHPなどのサーバーサイド言語を用いて設定することも可能です。
Googleは、上記の2つのリダイレクト設定のうち、サーバーサイドリダイレクトの利用を推奨しています。なぜなら、クライアントリダイレクトでは、以前のウェブサイトの評価を引き継ぐ効果が期待できないからです。
さらには、クライアントサイドのリダイレクト設定をしても、旧ページと新ページが別ページとして扱われてしまうため、ミラーサイトの扱いになる可能性があります。最悪の場合、ミラーサイトとしてペナルティを受け、サイトの順位を大きく下げてしまう危険性もあります。そのため、リダイレクトを行う場合は、Googleから推奨されているサーバーサイドリダイレクトを利用しましょう。
ここでは Googleが推奨する .htaccessを使用した、サーバーサイドリダイレクトでの設定方法を解説します。リダイレクトの設定は、場合によってはサイトに重大な影響を与えることがあるため、慎重に進めるようにしましょう。
まずは、メモ帳を開きます。パソコン内に標準搭載されている一般的なメモ帳で構いません。メモ帳を開いたら、ファイル名を .htaccessに設定します。そして、ファイルの種類は、「すべてのファイル」に変更して保存します。
ファイルの保存が完了したら、ファイルに対してリダイレクトの指示内容を記述します。
※URLはご自身のものに変更してください。
RewriteEngine on
RewriteRule ^example.html$ https://www.url.com/example1.html [R=301,L]
上記の内容を .htaccessファイルに記述してサーバーにアップロードします。.htaccessファイルのアップロード先は、リダイレクトの適用範囲で異なります。たとえば、最上位となるトップページ階層にアップロードすると、ウェブサイト全体にリダイレクトが適用されます。
特定階層に限定してリダイレクトする場合は、リダイレクトしたい階層ディレクトリにアップロードしてください。
特定の階層ディレクトリにアップロードすると、そのディレクトリ配下のサブディレクトリも含めて、リダイレクトの設定が反映されます。それ以外のページについては、リダイレクトが反映されず通常の表示となります。
TOPと特定のディレクトリそれぞれに .htaccessが設置されている場合、特定のディレクトリにおいてはディレクトリに設置されている .htaccessが優先されます。
ディレクトリ単位でリダイレクトをする場合は、ページ単位のリダイレクトの手順と同じように .htaccessファイルを作成します。そのため、メモ帳でファイル名を「.htaccess」、ファイルの種類を「すべてのファイル」に変更し保存するまでの手順は、すべて同じです。
次に、.htaccessファイルにリダイレクトの指示内容を記述します。
※URLはご自身のものに変更してください。
RewriteEngine on
RewriteRule ^example(.*)$/ example1$1 [R=301,L]
修正が完了したら、先ほどと同じようにサーバーにアップロードしましょう。
www有無の URL正規化を行う場合も、これまでと同じように .htaccessファイルを作成します。次に、.htaccessファイルに対して、URL正規化に関するリダイレクトの指示内容を記述します。
※URLはご自身のものに変更してください。
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(example\.com)(:80)? [NC]
RewriteRule ^(.*) https://www.example.com/$1 [R=301,L]
上記のように記述したら、サーバーにアップロードしてリダイレクトを適用します。
一方で、wwwなしで記述したいこともあるでしょう。その場合は、下記のように記述します。
※URLはご自身のものに変更してください。
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www.example\.com)(:80)? [NC]
RewriteRule ^(.*) https://example.com/$1 [R=301,L]
こちらも記述が完了したら、サーバーにアップロードします。
www有無の URL正規化の必要性については、下記の記事をご参照ください。
index.html有無の URL正規化を行う場合も、.htaccessファイルを作成します。次に、.htaccessファイルに対して、URL正規化に関するリダイレクトの指示内容を記述します。
※URLはご自身のものに変更してください。
RewriteEngine on
RewriteCond %{THE_REQUEST} ^.*/index.html
RewriteRule ^(.*)index.html$ https://example.com/$1 [R=301,L]
一般的に、index.htmlはなしで設定します。そのため、上記の記述が完了したらサーバーにアップロードしましょう。
SSL化によるURL正規化を行う場合も、.htaccessファイルを利用します。次のように、.htaccessファイルに対して、URL正規化に関するリダイレクトの指示内容を記述します。
※URLはご自身のものに変更してください。
RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://example.com/$1 [R=301,L]
サーバーの仕様上の問題など何らかの理由で .htaccessファイルを利用・編集できない場合もあります。その場合はPHPなどサーバーサイド言語によるリダイレクトの実装を検討しましょう。ここでは PHPを用いたリダイレクトの設定内容を記述します。
※URLはご自身のものに変更してください。
<?php
header('Location: https://www.url.com/example1.html', true, 301);
exit();
?>
なお、PHPでリダイレクトを実装する場合は、ページ単位で上記のような記述を行う必要があります。したがって、多くのリダイレクト設定が必要な場合は、管理・保守が難しくなってしまうことがあるため、状況に応じて利用を検討しましょう。
WordPressで制作したサイトの場合は「Redirection」というプラグインを用いてリダイレクト設定が可能です。先述の .htaccess、PHPでの設定が難しい場合や、初心者の方でも設定しやすい方法となります。
meta refreshはクライアントサイドでのリダイレクトです。サーバーサイドでのリダイレクトが利用できない場合の選択肢となります。HTMLの metaタグに記述することで設定が可能です。
※URLはご自身のものに変更してください。
<meta http-equiv="refresh" content="0; url=https://url.com/example1.html">
content属性でリダイレクトの発生を遅延させる秒数を設定することもできます。記述例では 0秒を指定して即時リダイレクトする設定としています。
Javascriptもクライアントサイドのリダイレクトです。Googleのガイドラインによると、サーバーサイドリダイレクトまたは meta refreshリダイレクトが利用できない場合にのみ使用すべきであると記載されており、推奨度は低いと認識しておくと良いでしょう。HTML内に scriptタグで記述して設定します。
※URLはご自身のものに変更してください。
<script>
window.location.href="https://www.url.com/example1.html";
</script>
企業のウェブ担当者やサイト管理者の中には、リダイレクト設定の重要性について疑問をもっている方もいるでしょう。そもそも、どのような理由からリダイレクト設定を行う必要があるのでしょうか。
新しいURLにコンテンツが移行しても旧URLにアクセスしようとするユーザーは一定数存在すると考えられます。そのため、リダイレクトを行わないとユーザビリティの観点からさまざまな問題が発生します。たとえば、下記のような問題です。
このように、リダイレクトしていなければ、旧URLからアクセスできなくなり、ユーザビリティが著しく低下してしまいます。URLを変更した場合は、引っ越し先の新ページが適切に表示されるようにリダイレクト設定が必要です。
SEOにおいて、サイトの評価は順位にも影響する大きな要素です。
URL変更によって既存のコンテンツが新URLになる場合、旧URLについていた評価を引き継ぐ効果を期待できるのが301リダイレクトです。
長年ウェブサイトを運営したことで高く評価され、数多くの被リンクを集めている場合は、301リダイレクトを実行すれば転送先に被リンクの効果も継承できます。
301リダイレクトは既存の評価を新ページに移行するために、Googleから推奨されている方法でもあるため、大きなメリットがあります。
ここでは、リダイレクト設定をする際に気をつけたいことをご紹介します。
クライアントサイドリダイレクトであるmeta refreshによるリダイレクトは、HTMLの記述方法も簡単なので簡単に設定できます。
しかし、meta refreshには、大きな問題点があります。それは、meta refreshによるリダイレクトは旧URLが有している評価を引き継げない可能性があるということです。そのため、Googleでもmeta refreshの利用は非推奨とされています。meta refreshについては、下記の記事をご参照ください。
仕様上の問題で、サーバーサイドリダイレクトができない場合は、JavaScriptによるリダイレクトを実装することがあります。サーバーサイドリダイレクトの代替案として非常に優れていますが、1つ大きな問題点があります。
それは、ブラウザが Javascriptを無効化していれば、リダイレクトが適用されないということです。その場合、無効化ユーザーへの機会損失につながるため、なるべく避けた方が良いでしょう。
よくあるリダイレクトのミスとして、すべての旧URLから新URLのトップページにリダイレクトを集約してしまうパターンがあります。301リダイレクトは、同じコンテンツの内容が旧ページから新ページへと移管したことを伝える設定であるため、ページの内容に関係なく全部トップページにリダイレクトさせるのは非推奨事項になっています。
すべてトップページにリダイレクトさせるよりは手間がかかる作業かもしれませんが、正しく対応させましょう。新URLで旧URLの対応コンテンツがない場合は 404エラーページを返すようにします。
このように、リダイレクトは慎重に行う必要があり、さらには手間もかかる作業です。URLを変更する必要がなければ、極力維持することをおすすめします。また、301リダイレクトを設定したとしても必ずしもすべての SEO評価が引き継がれるわけではないとされています。
たとえば、SNSのいいね!の数や、はてなブックマークの登録数がゼロになります。これらの数の大きさがマーケティングに大きな影響を与えている場合は、十分に注意しましょう。
何らかのテンプレートを用いたサイトなど、仕様上の問題で、どうしてもリダイレクトが実装できないケースも少なくないと思います。そのような場合は新しいページへのリンクを設置し、「このページは移転しました。新しいページへのリンクから最新の内容をご確認ください。」など、ページが移転したことを伝えるテキストを表示しましょう。旧URLにアクセスしたユーザーに対して、新URLに遷移するよう促すことができます。
また、上記に加えて canonicalリンクタグを設定することが推奨されます。canonicalリンクタグの設定によって、Googleに対して正規のURLを伝えることができ、ページの評価を統一することができます。なお、canonicalリンクタグはあくまで Googleにシグナルを送るにすぎず、リダイレクトのような強制力をもって評価を移すことができない点に注意が必要です。canonicalリンクタグについてより詳しく知りたい方は下記ページをご参照ください。
リダイレクトに関連する Googleからのメッセージで「リダイレクトの警告」と「不正なリダイレクト」があります。それぞれの意味と対処法について解説します。
「リダイレクトの警告」とは、ページにアクセスしたときに表示されることのあるメッセージで、別のページにリダイレクトしようとしていることを警告しています。このような警告が表示された場合は、ブラウザバックを行い、その URLにはアクセスしないようにしましょう。たとえば、スパムサイトやマルウェアが仕込まれたサイトなど、危険性のあるサイトに誘導するためのリダイレクトである可能性があります。
「不正なリダイレクト」とは、検索エンジンに表示しているページとは別のページへユーザーを遷移させるなど、ユーザーを騙すリダイレクトのことです。Search Consoleに自分のサイトを登録している場合、このメッセージを受けることがあります。もし、このメッセージが届いた場合は、自分のサイトで設定している何らかのリダイレクトが Googleのガイドラインに違反している可能性があるため、設定の見直しを行いましょう。
主にサイトのメンテナンス中や、サーバーエラーなどで一時的にサイトを移転する場合に用いられます。
従来、302リダイレクトは一時的なサイト移転であるため引き継がれないですが、長期間の 302リダイレクトがされると 301リダイレクト同様にページランクが引き継がれるようになりました。SEO評価を引き継ぎたい場合は、301リダイレクトを推奨します。
リダイレクトの解除までの目安最低1年です。Googleがページの移行を認識するには1年程度の期間を要することがあるといわれているためです。ただし、リダイレクトを解除すると、以前の URLにアクセスしたユーザーは目的のページにたどり着くことができず、ユーザー体験を損ねてしまいます。したがって、リダイレクトは解除せず、そのままかけ続けることが理想となります。
302リダイレクトは一時的なサイト移転をする場合に用いられます。評価をはやく引き継ぐのであれば 301リダイレクトが確実です。
SEOを考慮するならサーバーサイドで設定する 301、302リダイレクトが推奨です。JavaScriptや meta refreshによるリダイレクトはできるだけ避けると良いでしょう。
自身のサイトで設定しているリダイレクトに何らかの問題が発生している場合に検出されるエラーです。問題のあるリダイレクトとして、Googleのヘルプでは下記の項目があげられています。
エラーの内容は、サーチコンソールのインデックス登録レポートで確認することができます。これらのエラーに該当した場合、ページ評価が適切に移行できていない可能性があるため、設定の見直しが必要です。リダイレクトエラーの詳細や解決方法については、下記ページで解説していますのでご確認ください。
転送元の URLを入力することでリダイレクトができているかが確認できるリダイレクトチェックツールを使うことで確認できます。リダイレクトする数が多い場合は、SEOに問題がないか SEO会社に確認するのがおすすめです。リニューアル時など正しく設定ができているか当社で確認することが可能です。
既存のウェブサイトのSEO評価を移転先に引き継ぐには、正しいリダイレクト知識が必要です。移転前のサイトにリダイレクト設定をしておけば、旧ページにアクセスするユーザーを新ページへと誘導できます。
逆に、リダイレクト設定を怠れば、多くの人からコンテンツの内容を高く評価され、数多くの被リンクを集めていても、移転先に引き継げないなどデメリットがあります。また、リダイレクトはクライアントサイドとサーバーサイドの2つに分類され、ページの評価を引き継ぐためにはサーバーサイドのリダイレクトが推奨されることにも注意が必要です。
リダイレクトは、ユーザビリティの向上やSEO評価の維持という点において大きなメリットがありますので、確実に自然流入を増やしながら売り上げのアップを目指していきましょう。
ディーエムソリューションズのSEOコンサルタント、犬塚と申します。 過去には、「SEOコンサルタントがこっそり教えるSEO施策のコツ」など、…
私たちがSEO事業をスタートした2006年のSEO施策は、現在の施策とは大きく異なるものでした。 人工的な外部リンクが隆盛を極め、とにかくリ…
皆さんはSEOを外注ではなく、自分で実施したいと考えたことはありませんか? 外部リンクによるSEOが終焉に近づき、コンテンツによるSEOが全…
みなさんはSEOにはブラックハットSEOとホワイトハットSEOと呼ばれる2つのアプローチがあることをご存知でしょうか?今回の記事ではブラック…
「WEBサイトの流入が増えない」「狙っているキーワードでの検索順位がなかなか上がらない」といったSEOに関する悩みを抱えているが、「原因が何…
日々進化し続けるGoogleのアルゴリズムに対し、最適化を図るSEO(Search Engine Optimization)もこれまでにいく…
今話題のAIによるコンテンツ自動生成機能も!SEO対策に本当に必要な機能だけを搭載した使いやすさとコストパフォーマンスに優れたWeb集客支援ツールです。
Webマーケティングに関わる施策全般をワンストップで
ご提供します。
お気軽にご相談ください。
Webマーケティング最新ニュースのレポートや無料セミナーの先行案内が届く、お得なメルマガ配信中!