新人コーダーに知っておいて欲しいリダイレクトの基本

ページ移動・サイト移転時の正しいリダイレクトの設定方法と、代表的なリダイレクトの種類やその実装方法をご紹介します。
※この記事は読者によって投稿されたユーザー投稿のため、編集部の見解や意向と異なる場合があります。また、編集部はこの内容について正確性を保証できません。

サイトを運営していると、サイト内のページの移動や削除、またはサイト自体の移転をすることがあります。その場合、リダイレクトという処理を用いて新たなページに転送を行いますが、正しい知識と手順を以って対応しなければ、検索順位の下降、ページランクやドメインエイジの喪失といったSEO的なペナルティを招いてしまいます。

そこで、そのようなペナルティを受けないために、ページ移動・サイト移転時の正しいリダイレクトの設定方法と、代表的なリダイレクトの種類やその実装方法をご紹介します。

リダイレクトの種類

リダイレクトには、HTMLやJavaScriptといったクライアントサイドプログラム、PHPやPerlといったサーバサイドプログラム、あるいは.htaccessの設定変更を行う等、様々な対応方法があります。そのうちのいくつかを、実際のサンプルソースとともに解説します。

metaタグによるリダイレクト

head要素内に記述されたmetaタグによりリダイレクトを行う方法です。記述としては、以下のようになります。
<meta http-equiv="refresh" content="秒数;URL=URL">

この方法を利用するメリットとして、
・HTMLのみで設定できる
・転送までの秒数が指定できる
という点が挙げられます。サイト内で転送設定を行う場合であれば、特別な準備は必要ないため、手軽に使うことができます。

ただし、サイト移転の場合に使うと、一部の検索エンジンで「前のドメインが持っていた情報が、新しいドメインに引き継がれない」という可能性があります。
例えば、Yahoo!ではmetaタグによる0秒指定のリダイレクトが後述の301リダイレクトとして扱われるため、前のドメインが持っていた情報が引き継がれますが、Googleでは.htaccessやPHPなどによる301リダイレクトを推奨していること、metaタグでのリダイレクトではスパム判定を受けることがあることから、前のドメインの情報が正しく引き継がれない可能性があります。

前のドメインの情報が引き継がれないということは、検索エンジンにしてみれば「これはまったく別のサイトである」という認識になります。 検索エンジンは、
・どのぐらい価値のあるコンテンツを提供しているのか
・どのぐらい他のサイトからリンクを張られているか=被リンクがあるのか
・どのぐらい長く運営されているのか

といった情報をそれぞれのサイトに対して持っており、その情報を元に表示される検索順位を決定しています。つまり、「まったく別のサイトである」ということは、それらの情報がリセットされてしまうということであり、検索順位のアドバンテージも失われてしまいます。それにより、「移転前は検索上位に表示されていたのに、移転後に急に順位が落ちてしまった」ということが起こりかねません。

また、この方法では検索エンジンに対して「サイトが移転した」という状況が伝わらないため、「内容が同じサイトが2つある」と判断され、ミラーサイトとしてペナルティを受けてしまう可能性もあります。

ミラーサイトとは、あるサイトの内容をそっくりそのまま、あるいは一部分をそのままコピーしたサイトのことを言います。同一の内容が複数のサイトやページに含まれている場合、それらの内容から検索した検索結果の質が下がってしまうため、これらは検索エンジンにとって「複製サイトである・重複コンテンツである」とみなされ、検索順位を下げられたり、最悪の場合は検索対象から外されてしまうことがあります。

そのため、metaタグによるリダイレクトは、あくまでサイト内での利用に留めておいたほうがSEO上はよいということになります。サイトの移転を行う際は、後述の「301リダイレクト」を利用するといいでしょう。

301リダイレクト

HTTPヘッダのステータスコードによりリダイレクトの種類を伝え、その上でリダイレクトを行う方法の一つで、「301」のステータスコードはMoved Permanently(恒久的な移動)を意味し、完全にサイトやページが移動した、ということを表します。

301リダイレクトを利用するメリットとして、前述のmetaタグによるリダイレクトと異なり、「サイトが移転した」という情報が正しく検索エンジンに伝わるため、移転前のサイトの情報が移転後のサイトに受け継がれる、という点です。
つまり、新規サイトやミラーサイトではない、れっきとした移転サイトであるということを示すことで、それまで積み重ねた検索エンジンからの評価をゼロにすることなくサイトの移転を行うことができるのです。

301リダイレクトの設定方法は、.htaccess、PHP、Perl、JSPやASPなど多岐にわたりますが、今回はその中でも比較的利用しやすい「.htaccess」と「PHP」の設定についてご紹介します。

サイト全体を.htaccessで301リダイレクトさせる場合

サイト内のすべてのページに対して、指定したURLへリダイレクトさせる場合は下記を指定します。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{http_host} ^現在のURL
RewriteRule ^(.*)$ 移転後のURL$1 [R=301,L]
</IfModule>

続きはこちらからご覧いただけます。
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
http://html-coding.co.jp/knowhow/tips/000572/

この記事が役に立ったらシェア!
メルマガの登録はこちら Web担当者に役立つ情報をサクッとゲット!

人気記事トップ10(過去7日間)

今日の用語

アップロード
手元のPCなどの機器から、ネットワークを介して、別のPCやファイルサーバー、ウェ ...→用語集へ

インフォメーション

RSSフィード


Web担を応援して支えてくださっている企業さま [各サービス/製品の紹介はこちらから]