301リダイレクトとは?

何らかの事情で自社サイトのドメインやページのURLを変更せざるを得なくなった場合、それまでのURLを使ってアクセスするユーザーを新しいURLへ転送しなければなりません。

その転送処理に使われるものが301リダイレクトです。

新しいドメインやURLへ変更する際、301リダイレクトを設定しておかなければ、ユーザーに混乱を与えてしまうだけでなく、SEO評価にも損失が出ます。

このページでは、301リダイレクトを設定する理由や作成方法、設置時の注意点をご紹介しています。

これから会社の名称変更などによるドメイン変更やSSL導入などを実施する場合、このページの情報が役に立ちます。せひ、最後までお付き合いください。

301リダイレクトとは?

301リダイレクトとは、ドメインの変更やSSLの導入などでURLが恒久的に新しいものに変更になる際、それまでのURLへのアクセスを自動で新URLへ転送するための設定です。

新しいドメインまたはURLへ変更した後、301リダイレクト設定をしていないと、旧URLへのアクセスとなってしまい古い情報ページが表示されるか、新しいページを作って古いページを削除してしまった場合には404エラーが表示されてしまいます。

ドメインやURLを変更した後は、自動で転送処理をしてくれる301リダイレクトを設定しておきましょう。

301と302リダイレクトの違いに

ページへのアクセスを転送させるものには、301リダイレクトに似ている、302リダイレクトがあります。この2つの違いは以下となります。

301・302リダイレクトの特徴
  • 301リダイレクト:旧URLへのアクセスを恒久的(ずっと)に新URLへ転送
  • 302リダイレクト:旧URLへのアクセスを一時的に新URLへ転送

302リダイレクトは、例えばページ内容を更新していてインターネット上に公開できない場合に「ただいま工事中」などの仮ページへ「一時的に」転送します。転送期間が限定的で将来、元のURLが復旧する可能性がある場合に302リダイレクトを使います。

それに対して301リダイレクトは、旧URLを復旧させず、全て新URLへアクセスを引き継ぐ場合に使います。

301リダイレクトを設定する理由

旧URLから新URLへの恒久的な転送処理である301リダイレクトは、なぜ行う必要があるのでしょうか。

以下、その3つの理由をそれぞれ解説します。

1.旧URLにアクセスしたユーザーを新しいURLに遷移させるため

1つ目の理由は、ユーザーを旧URLから新URLへ導くためです。

自社サイトのドメインやページのURLが新しいものに変わる場合、301リダイレクトを設定し、ユーザーを旧URLから新URLへ導きます。 ユーザーの中には、旧URLをお気に入りに登録してくれている方もいます。

新URLに変更する際に、301リダイレクトをかけておかなければ、すでに旧URLが存在していない場合、404エラーが表示されてしまい、ユーザーは新URLに到着できません。

SSLの導入やドメイン移管を行い、URLが新しいものに変わる場合、ユーザーが迷子にならないように必ず301リダイレクトを設定しておきましょう。

2.旧URLのSEO評価を新URLへ引き継ぐため

2つ目の理由は、旧URLで受けていたSEO評価を新URLへ継承させるためです。

対策キーワードを決め、ユーザーの検索意図にあったコンテンツを作成すると検索エンジンが評価し、検索結果画面で上位に表示されるようになります。

例えば、パーマリンクを設定しておらず、ページIDなどになっていたものを任意のものに変更する場合、301リダイレクトをかけておかないと、それまで得ていた検索エンジンからの評価は新しいURLに引き継がれません。

評価を受けた旧URLへのアクセスに、301リダイレクトを設定しておくことで、ページへの評価が一部失われるものの、新しいURLに引き継がれます。 SEO対策として、新URLへ変更になる場合には必ず301リダイレクトを設定し、これまでのページに対する評価を残しましょう。

3.無駄なクロールを防ぎ、クローラビリティを向上させるため

3つ目の理由は、検索エンジンからのクローラーに無駄なクローリングをさせないようにするためです。

ページのURLが変更になり、新URLへアクセスを転送させないと、旧URLへのアクセスがそのままになり、エラーページへのアクセスが発生します。

この現象はユーザーだけでなく、検索エンジンからサイト情報を収集にまわってくるクローラーに対しても同じことが起こります。

クローラーはサイトを訪れた際のページ回遊にバジェット(予算)を持っています。301リダイレクトをかけていなければ、エラーページへのクロール分、その予算が無駄になります。

301リダイレクトを設定し、ページへのアクセスを新しいURLに変えて、クローラーにサイト内情報を効率よく収集してもらいましょう。

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

301リダイレクトを設定するには何が必要なのでしょうか。 301リダイレクトを設定するには、「□□.htaccess」(□□は任意)というテキストファイルが必要です

メモ帳などのテキストエディタを使い、「□□.htaccess」というファイル名のデータを作成しておきましょう。

URLの正規化を行う場合

SEO対策の1つに、URLの正規化があります。 これは、アクセスするページの内容が同じ(重複)で、URLが複数存在する場合、1つURLにアクセスを集中させるものです。

URLの正規化を行うことで、リンクによる評価の分散や、クローラビリティの低下を防ぐことができます。 例として、サイトトップページのURLの始まりがwww.の場合や、末尾がindex.htmlになっているかどうかなどが挙げられます。

URLの正規化について
集中させたい
URL
https://www.〇〇.jp
考えられる
複数のURL
  • https://〇〇.jp(www.の有無)
  • https://www.〇〇.jp/index.html
    (index.htmlの有無)
  • https://www.〇〇.jp/△△/?utm_source=〇〇&utm_medium=button&utm_campaign=id1234
    (パラメータの有無)
  • https://www.〇〇.jp/sp
    (スマートフォン、タブレット用の別ページの有無)

上記のように、同じページへのアクセスにもかかわらず、URLが複数存在する場合は、301リダイレクトを使って集中させたいURLへのアクセスに絞り込みましょう。

その他、SWebサイトをSSL化する際も、サイトURLが「http」から、「https」(httpのあとに"s"追加)に変わります。こちらもURL変更なので、自社サイトをSSL化させたたら、必ず301リダイレクトを設定します。

また、もう1つ、SURLの正規化は「重複コンテンツ」にも使われます。

対策キーワードが近い、または関連キーワードが同じようなページには、似たような情報が求められることも少なくありません。書かれた内容が重複していると、コピーコンテンツとしてペナルティを受ける可能性があるので、URLを1つにまとめリスクを回避します。

重複ページにはその他にも、ECサイトでの商品紹介ページなどがあります。1つの商品のカラーバリエーションごとにそれぞれのページを作成すると、内容はほぼ同じにも関わらず、別のURLが作成されてしまいます。

内容が重複しているそれぞれのページが外部サイトからリンクを受け、評価を受けていたとしても、検索エンジンはアルゴリズムによってそのうち1つを選んで表示させるため、選ばれなかったページの評価が無駄になってしまいます。

重複コンテンツの中から評価させたいページを1つ選んで301リダイレクトを使い、評価を1つのページに集中させることで、検索順位を上げられる可能性があります。

それでは、URLの正規化を行う際に.htaccessファイルに記述する内容をご紹介します。

なお、下記でご説明する.htaccessファイルに記述する名称の意味は以下のようになっております。

.htaccessの記述について
  • RewriteEngine on:転送開始
  • RewriteCond:転送を開始する条件
  • RewriteRule:転送のルール

※転送ルールの最後に書かれる[R=301,L]は、Rに転送の種類を表します。Rの後に何も記述しなければ302リダイレクト扱いになるため、必ず=301と記述し、301リダイレクトであることを指定しましょう。最後のLは転送処理終了を意味します。

URLにwww.があるものをなしに転送する場合の記述

www.〇〇.jp〇〇.jpに転送する場合

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

index.htmlありをなしに転送する場合の記述

〇〇.jp/index.html〇〇.jpに転送する場合

RewriteEngine on
RewriteCond %{THE_REQUEST} ^.*/index.html
RewriteRule ^(.*)index.html$ http://〇〇.jp/$1[R=301,L]

上記2つは、以下のようにまとめることも可能です。 ※www.〇〇.jpおよび〇〇.jp/index.html〇〇.jpに転送する場合

RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.〇〇\.jp$
RewriteRule ^(.*)$ http://〇〇.jp/$1[R=301,L]
RewriteCond %{THE_REQUEST} ^.*/index.html
RewriteRule ^(.*)index.html$ http://〇〇.jp/$1[R=301,L]

こちらを□□.htaccessファイルに記述すると、http://www.〇〇.jpとhttp://〇〇.jp/index.htmlへのアクセスをhttp://〇〇.jpに転送します。

内容が重複するページが複数ある場合は、こちらを使うと便利です。

SSL化

WebサイトをSSL化する際も、サイトURLが「http」から、「https」(httpのあとに"s"追加)に変わります。こちらもURL変更なので、自社サイトをSSL化させたたら、必ず301リダイレクトを設定しておきましょう。

SSL化終了後、http://からhttps://に変更する場合の記述

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

SEO対策の基本とも言えるSSL化について、以下のページで詳しく解説していますのでお役立てください。

新しいドメインやURLに変更する場合

自社サイトのリニューアルに伴う新規ドメインの獲得やドメインの移転、サイト内のページURLを変更する場合にも301リダイレクトを使用します。

ドメインを変更を場合は、サイトトップページだけでなく、サイト内すべてのページのURLが変更になるので、301リダイレクトにその旨の記述をしておきます。ディレクトリやページ単位の場合は、元のURLから新しいURLへの転送を記述します。

ドメイン単位でリダイレクトする場合の記述(▲▲.jpから〇〇.jpへ転送)

RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www.▲▲.jp)(:80)?[NC] 
RewriteRule ^(.*) http://www.〇〇.jp/$1 [R=301,L]

ディレクトリ単位でリダイレクトする場合の記述(◇◇から■■へ転送)

RewriteEngine on
RewriteRule ^◇◇(.*)$ /■■$1 [L,R=301]

ページ単位でリダイレクトする場合の記述(◇◇.htmlから■■.htmlへ転送)

RewriteEngine on
RewriteRule ^◇◇.html$ http://www.〇〇.jp/■■.html [L,R=301]

転送範囲はURL変更の状況によって異なります。ページ→ディレクトリ→ドメインの単位で範囲が広くなることに注意しながら記述しましょう。

WordPressのプラグインでも301リダイレクトが可能

自社サイト運営に、CMS(Contents Management System)としてWordPressを使っている場合、プラグインを利用すると、301リダイレクトを簡単に設定できます。

WordPressへのログイン後、プラグインをクリックして「Redirection」で検索をかけます。

インストールしたら、有効化し、メニュー内の「ツール」から「Redirection」をクリックします。

WPプラグイン「Redirection」設定方法

画面下部、「新しい転送ルールを追加」部分の「ソースURL」に転送元のページのURL、「ターゲットURL」に転送させたいURLを入力し、「新しい転送ルールを追加」というボタンをクリックすると、画面上部に設定された転送内容が追記されます。

新規転送ルールを追加する

設定が完了したら、実際に元URLをブラウザに入力して、新しいURLに転送されるかどうかを確認しておきましょう。追加された転送内容をクリックし、編集ボタンを選ぶと転送方法(302や307)を選択できます。

Googleが推奨していない301リダイレクトの方法

ここまでに紹介したリダイレクトの方法は、ユーザーからアクセスのリクエストが届いた時点で、元ページではなく転送先ページの情報がユーザーに送られる、サーバー側のリダイレクト方法となり、Googleが推奨する方法です。

しかし、サイトによっては、上記で紹介したサーバー側での301リダイレクト設定ができない場合があります。 その場合、Googleは推奨していませんが、以下2つのHTMLソースコードでの転送も可能です。

JavaScript locationリダイレクト

レンタルサーバーを使ってサイト運営をしており、サーバーサイドでのリダイレクトが認められていない場合、クライアントサイドでのリダイレクトが必要ですが、その1つにJavaScript Locationリダイレクトと呼ばれるものがあります。

HTMLページのヘッダー部分に以下の記述を挿入し、アクセスしたページから転送させたいページへユーザーを移動させます。

<script>
 window.location.href('転送先URL')
</script>	

なぜ、JavaScript Locationリダイレクトが、サーバーサイドリダイレクトより推奨されていないか、その理由は以下です。

サーバサイドリダイレクトを選ぶべき理由
  • アクセスはあくまで旧ページへのもの
  • 旧ページを消すと転送できない
  • ユーザーがjavascript設定をオフにしていると転送されない

サーバー側でリダイレクト設定ができない場合を除き、基本的には301リダイレクトを含むサーバーサイド側での設定をしましょう。

Cryptoリダイレクト

もう1つのCryptoリダイレクトは、形こそリダイレクトのようなものですが、実際はページ内から転送させたいページへのリンクを貼り付けるというものです。

旧ページ上に「新しいページはこちら」などのアンカーテキストを設置し、ユーザーがクリックすることで新しいURLに移動してもらいます。

JavaScript Locationリダイレクト同様、旧ページは必ず残しておく必要があり、ユーザーの最初のアクセスは旧ページです。 現在、Cryptoリダイレクトを使うことは稀です。こういうリダイレクト方法もあることを知っておく、程度で良いです。

301リダイレクトが正しく設定できているか確認する方法

サーバーサイドでの転送、301をリダイレクトを設定したら、正しく転送されているか、必ず確認をしておきましょう。

リダイレクトの確認方法には、ブラウザの拡張ツールを使う方法と、チェックツールを使う方法の2つがあります。それぞれ使い方をご紹介します。

ブラウザの拡張ツールを使って確認する方法

Google ChromeやFirefoxなどのWebブラウザには、様々な拡張ツールが設けられており、リダイレクトを確認するためのものも用意されています。

Google Chromeであれば「Redirect Path」、Firefoxなら「Link Redirect Trace」などがリダイレクト確認用の拡張ツールです。

これらの拡張ツールをインストールし、機能を追加したら、リダイレクト設定をした旧URLを入力しましょう。正しく設定されていれば、旧および新URLが表示され転送されていることを確認できます。

その他、デベロッパー(検証)ツールを使うことでも、転送の確認ができます。デベロッパーツールを開き(WindowsならF12、MacならCommand+Option+I同時押し)、画面上部のNetworkタブをクリックし、Preserve logをチェックした状態で旧URLを開きます。

画面右下、Nameの右側に301などのリダイレクトが出ているはずなのでクリックし、Headersというタブを開くとGeneralという情報が開いて転送に関する情報が記載されているので確認しておきましょう。

チェックツールを使って確認する方法

上記のブラウザを使ったリダイレクトの確認方法以外にも、リダイレクトチェックツールを使った確認方法もあります。

便利なSEOツールとしても紹介しているOhotuku.jpにはリダイレクトチェッカーが搭載されています。

リダイレクトさせたい旧URLをコピーし、空欄に貼り付けることで、リダイレクト状況が確認できます。

301リダイレクトを設定する際の注意点

ページへのアクセスを転送する301リダイレクトは、記述や設定に間違いがあってはいけません。

htaccessファイルに記述し、サーバー内に設置する前に、確認しておいた方が良い項目をまとめました。301リダイレクトを設定する前に、以下のいずれかが該当していないか確認しておきましょう。

記述にミスや漏れがないか

基本的なことですが、301リダイレクトを設定する際はコードの書き方を間違っていないか、記述漏れがないかを必ず確認しておきましょう。記述内容をコピーして貼り付ける場合、部分的な変更のみのため、入力ミスが目立ちます。

サーバーにファイルをアップする前に、必ず記述内容を確認しておきましょう。

robots.txtに記載がないか

robots.txtは、検索エンジンのクローラーのアクセスを制限するファイルです。

ページ内容を訂正し、テスト表示させるためにrobots.txtに旧URLを記載するものの、その後消し忘れることがあります。そのまま作業を進め、301リダイレクトをかけると、クローラーが情報を得られないことから、インデックスによる更新がされず、ページの評価もそのままになります。

robots.txtでクローラーアクセスを制御させる場合は、必ず作業後に旧URLを対象から外すことを忘れないようにしましょう。

robots.txtの設定方法を以下のページに分かりやすくまとめているので、お役立てください。

サイト内の内部リンクやcanonicalを新URLに変更しているか

301リダイレクトを実行した後は、以下それぞれに新URLを記述しましょう。

301リダイレクト後、新URLを記述すべきポイント
  • 自社サイト内の内部リンク
  • canonicalタグ内のURL(絶対パスで記載すること)
  • 構造化データを設定しているページ

関連性がない、または薄いページを統合していないか

情報が重複した場合にURLを統合し、301リダイレクトをかけて評価を集中させることを紹介しました。

そこで、どうせならと、新しいURLと関連性がない、または内容の薄いページでも評価を集めれば意味があるのでは?と統合させることを考える方がいます。

URLへの評価は、良くも悪くも継承されます。関連性がないページや、内容が薄く質の低いページのURLと統合すると、新しいURLの評価を下げてしまうことにつながります。

内容が近く関連性が高いページ、および内容がしっかりしていて対策キーワード以外の関連キーワードで評価を受けているようなページなら良いですが、低評価につながるページURLとの統合はやめましょう。

リダイレクトループが発生していないか

301リダイレクト設定をすると、ユーザーは新しい転送先のURLへ移動することになります。しかし、その移動先がさらに転送されており、延々と転送が繰り返される状態になることがあります。(この状態をリダイレクトループと呼びます)

リダイレクトループが発生すると、「このページは動作していません。〇〇〇でリダイレクトが繰り返し行われました」と表示されます。リダイレクトループは、サーバー側(運営側)の設定の問題でも起こりえますが、ユーザー側のアクセス状況によっても起こりえます。

ユーザー側でこの表示が出る場合、画面に「Cookieを消去してみてください」と表示されるので、ブラウザ上のCookieを削除してみましょう。Cookieを削除してもリダイレクトループが起こる場合、サーバー側の問題であることがほとんどです。

運営側のブラウザでCookieを消去してもリダイレクトループが表示される場合は、チェックツールを利用して問題点を見つけ、解決しましょう。

リダイレクトチェーンが発生していないか

301リダイレクトによって起こるリダイレクトループが転送され続けるエラーなのに対して、転送が終わり、最終的なページにたどり着くものの、複数回のリダイレクトが発生するものをリダイレクトチェーンといいます。

リダイレクトチェーンについてGoogleのジョン・ミュラー氏は「問題ない、よくあること。」とTweetしています。

しかし、ページが開くまでに時間を要する状態は、ユーザーにとって好ましい状態とは言えません。Googleガイドラインの中で「できれば3個まで、多くとも5個未満」までのリダイレクトチェーンに抑えるようにと記述しています。

リダイレクトチェーンが見つかったら、対象URLをチェックツールで確認し、問題点がどこにあるかを見つけ改善しましょう。

まとめ

WebサイトのドメインやページのURLが変わる場合は、ユーザビリティやクローラビリティの向上やSEO効果の意味からも、301リダイレクトが必要です。

301リダイレクトを設定しなければ、クローラーはすでに存在しないページを探すために限られた予算を無駄遣いすることになるだけでなく、SEO対策を進め、検索エンジンから得た評価を失うことになります。

また、お気に入り登録をしてくれていたユーザーが自社サイトにリンクできなくなり、得られるはずだった成果を取りこぼすことにもなってしまい、自社サイトからの収益にも影響を及ぼします。

恒久的なURLの変更がある場合には.htaccessファイルを正しく作成し、このページでご紹介した注意点をチェックした上で、301リダイレクト設定をしておきましょう。