SEO研究所サクラサクラボ

SEO・コンテンツマーケティングを成功に導くパートナー

301リダイレクトの設定方法と302との違い

今さら聞けないリダイレクト基礎知識

リダイレクトとは、英語で「方向を変える」という意味ですが、IT分野においては、ページを訪れたユーザーを指定したURLへ自動的に転送する設定のことを表します。
リダイレクトには301と302がありSEO担当者も混同しやすいため、正しい知識が必要です。

本記事では301/302リダイレクトとは何か、それぞれの違いと設定方法について解説します。

301リダイレクトとは?

301リダイレクトとは”Permanent Redirect”(恒久的な転送」を意味し、サイトやページ完全に移動させる際に使用します。移転が完了して今後は常に移転先を参照して欲しいという意味が含まれています。

301や302というのはW3Cが定めるステータスコードの一種で、300番台のステータスコードはリダイレクト(転送)を意味します。
リダイレクトとは、WEBページに訪れたユーザーを別のURLに誘導・転送するためのしくみです。これにより、リダイレクトを設定されたページにアクセスしたユーザーを、自動的に設定されたURLに転送することができます。
特に、HTTPステータスコードを伴うリダイレクトはHTTPリダイレクトと呼ばれます。

検索エンジンのクローラーもこの指示に従うため、移転前のページが獲得していたSEO評価(PageRank)を、移転先に引き継ぐことが可能です。

仮に、転送設定を行わないで別の場所に移動してしまうと、ページがなくなってしまうだけなく評価も失われてしまうため、リダイレクトにより新しいサイトにユーザーを誘導するとともに、ページ評価も正しく引き継ぐ必要があります。

リダイレクトについて詳しくは以下の記事もご覧ください。

リダイレクトとは?リダイレクトの種類と設定方法
https://www.sakurasaku-labo.jp/blogs/redirect

301リダイレクトを設定するシチュエーション

301リダイレクトをいつ設定すべきかについては、ステータスコードの意味に基づいて、恒久的な移転を知らせる目的で使うのが適当です。
たとえば以下のようなシチュエーションが考えられます。

  1. サイトをドメインごと移転する場合
  2. サイト内の一部のページだけを移転する場合
  3. URLの正規化目的で使用される場合で、ユーザーにも検索エンジンにも重複ページを見せる必要がない場合

1と2のリダイレクトに関しては、ページやサイトが指定されたURLに移転が完了し、おそらく元のURLに戻らないことを意味しています。

3に関しては、wwwのありなしやindex.htmlのありなしなどで、まったく同じコンテンツが表示されてしまうような場合に、一方から他方の正規とするURLにリダイレクトを行うような場合です。
このようなケースでは常に正規としたURLを参照すればよいので、301の恒久的な転送を行うのが適切です。
一方、ECサイトにおける色違いの商品を別々のURLで表示しているような場合、検索エンジンに重複ページと扱われる可能性が高く、どちらかだけを検索結果に表示させるために正規化を行うケースがあります。
しかし、301リダイレクトを行ってしまうとユーザーも色違いの商品を見られなくなってしまいますので、こういった場合の正規化はcaonicalで行います。
検索エンジンもユーザーも、非正規のページにアクセスする必要がないケースでの正規化には301リダイレクトを使用します。

301リダイレクトの設定方法

301リダイレクトは、.htaccessやphp、CMSのプラグインなどで設定が可能です。

.htaccessでの301リダイレクトの書き方

.htaccessとはサーバーの制御ファイルのようなものです。
サーバーによっては使えないことがあるものの、このファイルを用いてリダイレクトを設定することが一般的です。

各シチュエーションでは、ファイル内に以下のような記述を行うことで設定が可能です。

ページ単位でリダイレクトする場合

RewriteEngine on
 RewriteRule ^old.html$ http://www.sample.com/new.html [L,R=301]

ドメイン単位でリダイレクトする場合

RewriteEngine On
RewriteCond %{http_host} ^www.old.com
RewriteRule ^(.*) https://www.new.com/$1 [R=301,L]

httpからhttpsにリダイレクトする場合

RewriteEngine on
 RewriteCond %{ HTTPS} off
 RewriteRule ^(.*)$ https://%{ HTTP_HOST}%{REQUEST_URI} [L,R=301]

wwwありからwwwなしへのリダイレクト

RewriteEngine on
 RewriteCond %{ HTTP_HOST} ^sample\.com
 RewriteRule ^(.*)$ http://www.sample.com/$1 [R=301,L]

以下の記事もご参考ください。

htaccessによるリダイレクトの設定方法
https://www.sakurasaku-labo.jp/blogs/htaccess-redirect

phpによる301リダイレクト

phpでも301リダイレクトを設定できますが、設定を一元管理できる.htaccessの場合と比べると管理がしづらくなるかもしれません。
phpでは各ページの先頭にリダイレクトのコードを記載する形となるため、ページ数の多いサイトでは煩雑になるためです。

設定時にはHTML(php)ファイルの先頭に以下のように記述します。

<?php
header( "HTTP/1.1 301 Moved Permanently" ); 
header( "Location: http://new.com/new.html" ); 
exit;
?>

注意点としては、phpのリダイレクトコードはページの先頭に記載する必要があります。
上記コードより上部に何か記載されていると、リダイレクトは機能しません。

CMSを使っている場合は、プラグインで設定できることもあります。
たとえばWordPressでリダイレクトが設定できるプラグインには以下のようなものがあります。

Redirectionを使ったWordPressのリダイレクト方法
https://www.sakurasaku-labo.jp/blogs/wordpress-redirect

302リダイレクトとは?

302リダイレクトとは、かつては”Temporary Redirect”(一時的な転送)を意味していたリダイレクトで、完全に移転したわけではないという際に使用されます。
現在では302のステータスコードは”Found”(見つかった)を意味するものとなっていますが、現在は転送が行われているものの、引き続き元のURLを使い続けるというニュアンスがあります。

しかし、SEOに関しては、Googleの仕様変更により、302リダイレクトであっても301と同じように扱われるようになりました。
かつては301リダイレクトとの違いとして、302リダイレクトは、転送前のページを評価し続け、ページランクは移転先のページに引き継ぐことはないと言われていましたが、仕様変更に伴い、引継ぎがされるようになったのです。
これにより、現在では301、302どちらのリダイレクトを設定しても、ページランクは引き継がれます。

302リダイレクトを設定するシチュエーション

302リダイレクトが301と同じように扱われるとはいえ、ステータスコードの意味に沿って使うほうが好ましいと考えられます。

たとえば以下のようなケースでは302リダイレクトを設定したほうがよいと考えられます。

  1. リニューアルやメンテナンスなどで、一時的に別のURLでページを公開している場合
  2. PCとスマホで別々のURLを用いており、デバイスに応じてリダイレクトを行う場合
  3. 国・IPなど条件に応じてリダイレクトを行う場合

1は、いずれもとのURLに戻るという、まさに一時的であるリダイレクトです。301リダイレクトとは異なり、近い内に本来のページに戻ること前提とした引越しのような意味合いをもたせる際に設定します。

2や3については必ずしも一時的ではありませんが、条件に応じてリダイレクトを行っているために302のステータスコードを用いたほうがよいケースです。

302リダイレクトの設定方法

302リダイレクトも301リダイレクトと同様に、.htaccessやphpにより設定します。
設定を一元管理できる.htaccessにて行うのがおすすめです。

htaccessでリダイレクトする場合

RewriteEngine on
 RewriteRule ^old.html$ http://www.sample.com/new.html [R=302,L]

phpで設定する場合

<?php
header("Location: /new.php",TRUE,302);
header("Location: /new.php");
exit;
?>

301と302の違いと使い分けは?

301と302リダイレクトの使い分けは基本的にはステータスコードの意味合いに沿って行っていれば問題ありません。
つまり、移転が恒久的であれば301を、一時的または条件付きであれば302を使用します。

なお、ユーザーに対しては301と302のどちらを用いても、自動的にページ遷移が行われます。301であっても302であっても同じ挙動で見分けがつかないため、ユーザー向けにはどちらを設定してもほぼ問題ないでしょう。

SEOを行う場合、検索エンジンに対してどう設定したらよいかは注意すべきです。

前述のとおり、Googleは301も302もPageRankを転送し、好きなほうを使ってよいと発表されていますので、以前よりは使い分けに厳密になる必要性は薄れています。
それでも、シチュエーションに応じて、ステータスコードの意味合いに近いものを使用するのが好ましいです。

もし移転先URLを今後ずっと使い続ける予定なら301を使用したほうがいいでしょう。

301リダイレクトと302リダイレクトに違いがあるとすれば、SEO上、完全な移転として認識されるまでの速度が異なるからです。

元のURLの持つ評価を転送先に譲渡することは301/302とも同じですが、検索エンジンが移転したことを確信し処理するまでの速度が301の方が速いからです。

恒久的な移転であるのに302リダイレクトを使用している場合、SEO評価が移転するのに時間がかかってしまう可能性があります。
逆に一時的な移転であるのに301リダイレクトを使用しており、再びURLが変更されてしまうような場合、Googleがどのページを評価してよいか混乱してしまう可能性があります。

なお、W3Cの定義によると、現在の302はかつてのTemporary Redirectではなく、Found(発見した)となっています。
302の本来の意味である、一時的な転送以外での目的で使用するウェブマスターが増えたためと言われており、Googleもこうした事情を受けて仕様を変更した可能性があります。

ステータスコードは本来の意味に沿って使うに越したことはありません。
まとめると、以下の表のようになります。

301リダイレクト 302リダイレクト
ユーザー 転送する 転送する
PageRank 転送する 転送する
主な用途 完全な移転
正規化
一時的な移転
条件付きリダイレクト
Googleが
完全な移転として
認識するまでの時間
短い 長い

まとめ

何かしらの理由でサイトの移転が必要な場合は、必ず301リダイレクト、もしくは302リダイレクトを設定します。
どちらも移転元ページのページランクを引き継ぐので特に意識して使い分ける必要はありませんが、恒久的な移転の場合は、処理速度が勝っている点を考慮し301リダイレクトを設定するようにしましょう。

.htaccessによるリダイレクトが使えない場合など、その他の設定方法については以下を参照ください。
リダイレクトとは?リダイレクトの種類と設定方法

『いまさら聞けないリダイレクト基礎知識』を無料でダウンロードする</ br>
リダイレクトの基礎と実践の2部構成資料を公開しておりますので、ぜひご活用下さい。
https://sakurasaku.satori.site/free-document/redirect/

今さら聞けないリダイレクト基礎知識

執筆者 / 監修者

監修者:笹本 雅人
監修者:笹本 雅人
2013年株式会社ブレインネットに入社し、会社合併を経てサクラサクマーケティング株式会社に合流した後も現在に至るまでSEOコンサルタントとして大小問わず様々なクライアントの集客向上に貢献。
特に大規模サイトのSEOを得意としているほか、自社メディアのブログの作成・監修を行い、数多くのキーワードで上位表示を達成している。

その他のブログ記事

Return Top