オススメ記事

301リダイレクトの正しい書き方やSEO効果を解説します。サイト移転(ドメイン変更)などに伴い、ページのURLが変更したら必ず転送をかけましょう。.htaccessを使った設定方法から確認方法、意外と間違っている301と302の違いまで一挙解説します!
スポンサーリンク
目次
301リダイレクトとは?
301リダイレクトとは、webサイトを恒久的に移転先へ転送する仕組みのことです。サイト移転、ドメイン変更、URL変更といった際には、古いURLの評価を新しいURLに引き継ぐために必ず設定しましょう。
301リダイレクトのSEO効果
301リダイレクトにより、新しいURLにページランク(リンク評価)が引き継がれ、サイトの評価を保つことができます。
順位下落の可能性を防ぐためにも、適切な301リダイレクトでサイト(ページ)転送することが大切です。
301リダイレクトと302リダイレクトの違い
301リダイレクトは「恒久的」、302リダイレクトは「一時的」な転送を示します。
301リダイレクト | 302リダイレクト | |
---|---|---|
内容 | 恒久的な転送(リダイレクト) | 一時的な転送(リダイレクト) |
キャッシュ | キャッシュする | キャッシュしない |
ページランク | 渡す | 渡す |
インデックス | リンク先URL | リダイレクト元URL |
302リダイレクトもページランクを受け渡す?!
302はページランクを受け渡さないと勘違いしている方も多いですが、Googleのミューラー氏は「302リダイレクトもページランクを受け渡す」と公表しています。
302はウェブサイトに悪いことで、PageRankにも悪く、PageRankが消滅してしまい評価を渡さないと考える大きな誤解があるように思う。
これは明らかに正しくない。
私たちがリダイレクトを認識しそれが302なら、まず、一時的なリダイレクトだと想定する。そして、リダイレクト先のURLではなく元々のURLをインデックスさせたいのだろうと想定する。一般的には、これが私たちが302に対してやろうとすることの1つだ。
しかし、実際には恒久的なリダイレクトっぽくて、ひょっとしたら間違えて構成された302なのではないかと認識したら、そういった302を301として本当に扱う。つまり、リダイレクト元のURLではなくリダイレクト先のURLを代わりにインデックスしようとする。
したがって、PageRankを渡すとか渡さないという問題ではない。どちらのリダイレクトもPageRankを本当に渡す。どちらのURL(リダイレクト元URLかリダイレクト先URLか)を実際に検索結果に表示するかという問題にすぎない。
301リダイレクトと302リダイレクトの違いは、ページランクを受け渡すかどうかではなく、どちらをインデックスするか、であると述べている。
- 301リダイレクトは「リンク先のURL」をインデックスする
- 302リダイレクトは「リダイレクト元」のURLをインデックスする
ページランクはどちらも受け渡します。301リダイレクトをした場合には「リンク先のURL」が検索結果に表示され、302リダイレクトの場合には「リダイレクト元のURL」が表示されます。
301リダイレクトが必要なケース
301リダイレクト設定が必要なケースを紹介します。以下のような場合には、必ず .htaccess を使い転送をかけましょう。
- サイトのドメインが変更された場合
- ディレクトリ、ファイル名が変更された場合
- パーマリンクが変更された場合
- 「wwwのありなし」「https」でそれぞれアクセスできる場合
- 「index.html」など拡張子ありのURLが混在している場合
- 同じコンテンツのページなのに複数URLが生成されている場合
301リダイレクトの記述方法
301リダイレクトのケース別の記述方法を紹介します。状況に応じて正しい転送を行いましょう。
ページ単位のリダイレクト
ページ単位でリダイレクトさせる場合には、.htaccessに以下コードを記述します。
RewriteEngine on
RewriteRule ^old.html$ http://www.example.com/new.html [R=301,L]
上記は「old.html」にアクセスがあった場合に、「http://www.example.com/new.html」へ301リダイレクトさせる、という記述です。
ディレクトリ単位のリダイレクト
ディレクトリ単位でリダイレクトさせる場合には、.htaccessに以下コードを記述します。
RewriteEngine on
RewriteRule ^old_directory(.*)$ /new_directory$1 [R=301,L]
上記は「old_directory」というディレクトリにアクセスがあった場合に、「new_directory」へ301リダイレクトさせる、という記述です。
※ディレクトリ名を書き換わるだけなので、ファイル名が変更されている場合には404エラーになってしまうので、注意が必要です。
wwwあり・なしの統一
wwwを「あり・なし」いずれかに統一する場合には、.htaccessに以下コードを記述します。
▼wwwありに統一
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(example\.com)(:80)? [NC]
RewriteRule ^(.*) http://www.example.com/$1 [R=301,L]
上記は「http://example.com」にアクセスがあった場合に、「http://www.example.com」へ301リダイレクトさせる、という記述です。
▼wwwなしに統一
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www.example\.com)(:80)? [NC]
RewriteRule ^(.*) http://example.com/$1 [R=301,L]
上記は「http://www.example.com」にアクセスがあった場合に、「http://example.com」へ301リダイレクトさせる、という記述です。
index.htmlなしの統一
「index.html」なしに統一する場合には、.htaccessに以下コードを記述します。
RewriteEngine on
RewriteCond %{THE_REQUEST} ^.*/index.html
RewriteRule ^(.*)index.html$ http://example.com/$1 [R=301,L]
上記は「http://example.com/index.html」にアクセスがあった場合に、「http://example.com」へ301リダイレクトさせる、という記述です。
ドメイン全体を転送
ドメイン全体を転送する場合には、.htaccessに以下コードを記述します。
RewriteEngine On
RewriteCond %{http_host} ^www.old.com
RewriteRule ^(.*) http://www.new.com/$1 [R=301,L]
上記は「http://www.old.com」にアクセスがあった場合に、「http://www.new.com」へ301リダイレクトさせる、という記述です。
.htaccessが利用できない場合のリダイレクト方法
サーバーの環境上、.htaccessファイルが利用できない場合があります。そんな時には以下の代用方法で301リダイレクトを行います。
- canonicalを利用する
- PHPなどのプログラムを利用する
- meta refreshを利用する
- JavaScriptを利用する
詳しい対応方法は以下記事で紹介されています。
.htaccessなど、サーバー側でリダイレクトが利用できない場合どのように対処すれば良いですか?
301リダイレクトが適用されるまでの期間
301リダイレクト設定後、適応されるまでは「数週間~数ヶ月」かかる場合があるようです。Googleのマット・カッツ氏は以下のように説明しています。
- 301リダイレクトはページレベルで処理される。あるページで301が処理されたからといってドメイン全体で完全に301が適用されたわけではない。
- 一般的には、2、3週間〜4、5週間、ともすると2ヶ月くらいかけてサイト全体が移転したことを検出する。
- あるページは200、あるページは301を返したりするとGoogle(Googlebot)は、どう処理したらいいか(サイトの移転なのかどうか)分からないことがある。
- 1回のクロールで完了したりしない。すべてが魔法のように自動的に行われると思ってはいけない。
- 古いドメインから新しいドメインへ間違いなくサイトが移転したという確証が必要になる。それにはしばらく時間がかかるが、その時間さえあればきちんと認識すると思う。
▼マット・カッツ氏の発言動画
301リダイレクトはいつまで続けるべきか
301リダイレクトはいつまで続けるべきでしょうか?Googleのミューラー氏は以下のように説明しています。
論理的に言うと、301リダイレクトはずっと設定されておくべきものであり、半永久的に設置しておいて問題ありません。ただ、実質はこうして永久にファイルを残しておくと問題があることも少なくないでしょう。
実際は、こうした恒久的なりダイレクト設定を見つけた時、Googleはなるたけずっと記憶しておこうとします。あなたがサイトを移設して、Googleがサイト移設を認識するまで、おそらく半年、場合によっては一年ほどかかるかもしれませんが、そうなってはじめて、301リダイレクトを落とすのも可能になるのです。
ただ、ここまで来てもなお、だれかが古いURLにリンクを貼っていたら、301リダイレクトがないと、Googleで古いURLが表示されることもあります。これは注意したほうがよいでしょう。
可能なら「ずっとリダイレクト設定」し続けることを推奨しており、最低でも半年~1年以上置いた方が良いと言及しています。
しかし、ずっと古いファイルを保持し続けるのは難しいでしょう。そのため、状況を見ながら対応していくと良いでしょう。
▼ミューラー氏の発言動画
注意すべきポイント
301リダイレクトをする度に、ページランクが約10~15%失われるとされ、無闇に転送をかけるべきではありません。
さらに、誤った301リダイレクトはSEOの大きな損失を招きます。以下のポイントに注意しましょう。
適したページにリダイレクトをかける
サイト移転時に、それぞれのページからTOPページにまとめて転送しているケースがありますが、それだとページランクを正しく受け継ぐことができません。必ずページ単位で適したページに301リダイレクト設定を行いましょう。
全てのページをリダイレクトする
サイト移転時には、理由がない限り全てのページをリダイレクトしましょう。
被リンクやアクセスが少ないから301リダイレクトしても意味がないと考え、一部ページのみ転送をかけるケースがありますが、それだとそれまで培ったドメイン年齢やサイト全体の価値が失われてしまいます。原則、全てのページをリダイレクトしましょう。
内容の異なるページにリダイレクトをかけない
内容の異なるページに転送をかけるとページランクの損失を招きます。必ず対応するページにリダイレクトしましょう。
悪い評価(ペナルティ)もそのまま受け継ぎます
301リダイレクトは、「悪い評価(ペナルティ)」もそのまま渡してしまいます。そのため、ペナルティを受けたページはあえてリダイレクトから外し、削除するか内容を修正して移転先のサイトで新たに運用すると良いでしょう。
移転前のサイトを保持する
一旦リダイレクト設定を解除してしまうと、それまでの転送が消滅します。そのため、可能な限り301リダイレクトをし続けた方が良いと言われています。最低でも、完全に移転されたことが確認できるまでは、削除しないようにしましょう。
301リダイレクトの確認方法
正常に301リダイレクトされているかは、以下の方法で確認できます。転送をかけたら必ずチェックしましょう。
「リダイレクト検証ツール」で確認する
SEO検索エンジン最適化が提供する「リダイレクト検証ツール」で確認することが可能です。

Chrome拡張「Redirect Path」で確認する
Chrome拡張「Redirect Path」を使うことでも、301リダイレクトの確認が可能です。
