301redirectこんにちは!先日、あるサイトのリニューアルに伴って、旧URLから新URLへの301リダイレクトの設定をしたので、やったことをこの記事にまとめてみました。.htaccessに記述するリダイレクト情報の書き方とか、Search Console(旧ウェブマスターツール)でのアドレス変更通知のやり方などを書いています。サイトの構成やURLの形が大きく変わるリニューアルをされた方は、参考になることがあるかなと思いますので、よかったら見てみてください。

sponsored link

そもそもリダイレクトさせる必要があるのはなぜか

ホームページやブログのリニューアルなどで、ドメインを移転させるときは301リダイレクト(恒久的なURLの移転)でアクセスを旧サイトから新サイトに流す必要があります。

その理由は、新しくドメインを取得した場合、最初のうちは検索エンジンにインデックスされてサイト内のページの検索順位が上がるまで時間がかかるので、旧サイトからアクセスを流さないと、当然ながらアクセスがしばらくガタ落ちしまう、っていうのが一つあります。

さらに、旧サイトの内容と新サイトの内容が重複していると、リダイレクト設定しなければ、検索エンジンはそれぞれ別のサイトとして扱うため、新サイトのページが「重複コンテンツ」とみなされ、検索結果に表示されなくなる可能性も高くなってしまう。

もちろん、旧サイトを削除すれば、時経つうちに検索エンジンのインデックスからも消えて行って、新サイトのページがインデックスされるようにはなるでしょうが、時間がかかりますよね。「重複コンテンツ」とみなされるとペナルティ扱いになるかもしれないですし。。

訪問者の視点で見れば、せっかく見たい記事にアクセスしたのに404エラーで「ページが見つかりません」となったら、ガッカリですよね。「ユーザーフレンドリー」という意味でも、ちゃんと新しいサイトに飛ぶようにリダイレクトさせることは大事です。

 

では以下、具体的なリダイレクトの設定手順です。

ちなみに、今回は

  • 旧サイトと新サイトが両方とも存在している(ドメインがあって、各ページが見れる状態)
  • .htaccessファイルが旧サイト側にあり、ApacheのMod Rewriteが使える
  • サイトのリニューアルに伴って、URLの形式が大幅に変わった

という条件で設定をしています。

 

旧サイトの各ページと新サイトの各ページのマッピングを行う

今回のように、サイトのリニューアルに伴って、URLの形式が大幅に変わり、個別で各ページのリダイレクト先を指定しないといけない場合は、まず間違いのないよう、Excelなどで旧サイトの新サイトの各ページのURL対応表を作っておくのがいいと思います。

Excelで対応表を作れば、それをもとにリダイレクト設定情報を作りやすくなるのでオススメです。私は以下のような感じに対応表を作りました。

旧サイトの新サイトのページの対応表

この対応表について少し説明しておきますね。

まず、旧サイトページURLのほうは、.htaccessのある場所からの相対パスでURLを書きます。

例).htaccessと同じ階層にoldpage.htmlがあるなら、oldpage.html

例).htaccessの階層より下のaaaディレクトリにoldpage.htmlがあるならaaa/oldpage.html

 

もし.htaccessの中にRewriteBaseの記述があって、起点となるディレクトリがあえて指定されている場合は、そこからの相対パスを書く必要があります。

例).htaccessの階層より下のaaaディレクトリにoldpage.htmlがあって、RewriteBase /aaa/となっている場合は、oldpage.html

 

新サイトのほうは、http(またはhttps)からの絶対パスで書きます。

例)http://newsite.com/newpage.html

 

301リダイレクト情報を生成する

対応表が出来上がったら、リダイレクト設定の文字列を作成します。これは、Excelの文字結合の式を使って、以下のように入力すると簡単です。

Excel文字結合

式のところはこんな感じになっています。

=CONCATENATE(“RewriteRule ^”,A2,”$ “,B2,” [R=301,L]”)

 

以下のような感じに文字列が出来上がったらOKです^^

RewriteRule ^oldpage.html$ http://newsite.com/newpage.html [R=301,L]

 

最初の行の式が作れたら、あとはそのセルをコピーして続きの行に貼り付けていくだけで、自動的に文字列を生成してくれます。

Excelでリダイレクト文字列生成

あとは、これらの生成された文字列を.htaccessにコピペすれば、記入ミスを防いで簡単に個別ページのリダイレクト設定ができますね^^

 

ドメイン名が変わるだけの場合のリダイレクトの書き方

例えば、旧:abc.com/xxx/yyy.html ⇒ 新:def.com/xxx/yyy.htmlのように、ドメイン名が変わるだけで旧サイトと新サイトのURLの形が変わらない場合は、以下のように、.htaccessに書くだけでOKです。

例)aaa.comをサブドメインのbbb.aaa.comに移転する場合

RewriteEngine On
RewriteCond %{http_host} ^aaa.com
RewriteRule ^(.*) http://bbb.aaa.com/$1 [R=301,L]

 

.htaccessファイルに各ページのリダイレクト情報を記述する

旧サイトの.htaccessファイルを開いて、以下のようにRewriteEngine onのあとに、Excelで作った対応表の一番最初のリダイレクト情報だけ試しにコピペします。

RewriteEngine on
RewriteRule ^oldpage.html$ http://newsite.com/newpage.html [R=301,L]

これで.htaccessを保存して、旧サイトのoldpage.htmlにアクセスし、リダイレクトされるかどうかチェックしてください。

リダイレクトされることが確認できたら、そのほかのページのリダイレクト情報も同様にコピーして.htaccessに貼り付けます。

 

リダイレクトがうまくいかない場合

旧サイトのURLのところは

^oldpage.html$

または

^\oldpage.html$

という風に\がいるときと要らない時があるみたいなので、もし最初の方でうまくリダイレクトされなかったら、バックスラッシュを追加してみてください。

そのほかにも、.htaccessに色々記述がある場合、RewriteRuleを記述する位置によってはリダイレクトされないこともあります。ちょっと面倒ですが、.htaccessに書かれている内容の意味をネットで調べてみると、どこに記述すれば正しく動くのか、わかることもありますので、調べてながら試してみてください。

 

トップページのリダイレクト情報の書き方

ちなみにトップページの場合はこんな感じなります。

RewriteRule ^$ http://newsite.com/newpage.html [R=301,L]

または

RewriteRule ^\$ http://newsite.com/newpage.html [R=301,L]

 

これで、個別ページのリダイレクト設定が完了しました!

 

 

ただし、もう一つ気になることがあります。それは…

新サイトには移転させないページの扱い

旧サイトには存在しているページでも情報が古くなったなどの理由で新サイトには移さないページも出てくることがありますよね。こういうページはどうしたらいいのか。ページを削除して終わり、っていうのでもいいのかもしれませんが、今回は新サイトの404エラーページに飛ばす設定にしてみました。

新サイトの404エラーページにメニューやサイトマップを載せておけば、少なくとも新しいサイトから興味のある情報を見つけてもらいやすくなりますので^^

.htaccessに、以下の一行を追加すればOKです。http://newsite.com/404.htmlのところはご自分の404ページに合わせて適当に変更してくださいね。

ErrorDocument 404 http://newsite.com/404.html

 

新サイトがWordpressなら

ErrorDocument 404 http://newsite.com/index.php?error=404

と書けば大丈夫だと思います。(新サイトに404.phpがない場合は作ってくださいね)

 

ちなみに、こういうページをすべて新サイトのトップページに301リダイレクトさせるのはSEO的によろしくないようなので、注意してください。

 

 

ここまで終わったら、Search Consoleで検索エンジンにドメイン移転を知らせるようにしておきます。

Search Consoleでアドレス変更

アドレス変更の解説がありますので、参考にしながらやってみてください。

アドレス変更ツールの使用

注意点は、以下の手順を踏む時点で、まだ旧サイトが確認できる(アクセスできる)状態にしておく必要がある(=ページを消してはいけない)ということです。

まず、旧サイトと新サイトを両方Search Consoleに追加しておきます

旧サイトのプロパティを開いて、右上の設定ボタンから「アドレスの変更」をクリック

SearchConsoleアドレス変更

新しサイトを選択したら、順に確認ボタンをクリックしていって、アドレスの変更通知を完了させる

Search Consoleアドレス変更

これで、新サイトのページを「重複コンテンツ」扱いされる心配もなくなりますね!

 

以上、サイトリニューアルに伴うドメイン移転時のリダイレクトのまとめでした。ご覧いただきありがとうございました!