SEO評価をそのまま引き継ぐ!失敗しないサイト移転・引っ越しまとめ
公開日:2019年12月19日
正しいサイトの移転は「301リダイレクト」
Webでは、サイトの移転をした時には「301」と言うHTTPステータスコードを付与して新サイトにリダイレクトするルールになっています。これが一般的に言われている「301リダイレクト」です。
HTTPのステータスコードにはいくつか種類がありますが、移転で使うのは300番台のステータスコードです。
ステータスコード | 意味 | 解説 |
---|---|---|
301 | Moved Parmanently | URLが恒久的に移転した |
302 | Moved Temporarily | URLが一時的にに移転している |
動作としては、「旧URL -> 新URL」へリダイレクトするだけなのですが、その際にHTTPステータスコード301番を付与することで、検索エンジンはSEO評価を新サイトに正しく移行させてくれます。
新旧で対応したURLへリダイレクトすることが大事
この際、「全てトップページへリダイレクト」ではなく、全てのURLで新サイトの対応するURLへリダイレクトすること非常に大事です。
面倒だからと行ってやりがちなのが「旧サイトの全てのページを新サイトのトップページにリダイレクトする」と言う荒技です。
これをやってしてしまうと、せっかく蓄積したページごとのSEO評価が一旦リセットされてしまう恐れがありますので、避けましょう。
301リダイレクトの設定方法
ここからは、ケース別に301リダイレクトの設定を見ていきましょう。
.htaccessで301リダイレクトを設定する
.htaccessで設定を書く際は下記のようになります。
RewriteCond %{HTTP_HOST} ^(www.old-domain.com)(:80)? [NC]
RewriteRule ^(.*) https://www.new-domain.com/$1 [R=301,L]
この設定は、
- www.old-domain.com以下の全てのURLを
https://www.new-domain.com/
以下に301リダイレクトする
とする設定で、WordPressサイトのURL移転の場合も、上記の.htaccessを使えば301リダイレクト転送がされるはずです。
PHPコードを使う場合
WordPressサーバーなどで.htaccessの設定ができないけど、PHPコードを実行できる場合は、WordPress側にPHPコードを挿入すれば301リダイレクトができます。
<?php
header( "HTTP/1.1 301 Moved Permanently" );
header( "Location: https://www.new-domain.com/" );
exit;
?>
上記の例は新サイトのトップページに301リダイレクトさせていますので、個別ページでは、しっかりとそれぞれのURLを指定します。
サービス側の転送設定を使う場合
ここはサイト作成サービスやブログサービス側の機能にもよりますが、しっかりしたサービスであれば転送設定をした際に301リダイレクトにしてくれているでしょう。
仮に301リダイレクトになっていない場合は注意が必要です。
ただし、WordPress.comなどのようにリダイレクトが有料のケースもあります。
サービス側でURL転送ができない場合
.htaccessが使えないブログサービスなどで、URL転送機能がない場合は、ブログサービスの移転設定を使うことになりますが、移転設定ができない場合は、裏技的にリダイレクトさせる必要があります。
CloudflareのPage Ruleで転送設定
独自ドメインのサイトの場合は、DNS・CDNサービスのCloudflareを使うと転送設定ができます。
CloudflareのPage Ruleでは、「Forwarding URL」と言う設定を使うことで、「301」もしくは「302」リダイレクトの設定ができます。ただし、細かいURLパターンは設定できません。
Cloudflareでは、ドメインあたり3つまでPage Ruleが無料なので、独自ドメインサイトで.htaccessが使えない場合(ブログサービスなど)は、この方法がベストでしょう。
Javascriptを使う場合
ブログサービスで Javascriptが実行できる場合は、Javascriptでリダイレクトができます。
至極簡単な例ですが、下記のような形でリダレクトができます。
<script>
var url1 = 'https://www.old-domain.com/';
var url2 = 'https://www.new-domain.com/';
if(location.href.startsWith(url1)){
location.href = url2;
}
</script>
Javascriptでリダイレクトする場合は、HTTPのステータスコードが付与できませんので注意が必要です。301コードがなくても、検索エンジンが移転とみなしてくれる場合もあるので、Javascriptでの転送は最終手段としましょう。
移転(リダイレクト)をする際の注意ポイント
多重リダイレクトに注意
Googleは、多重リダイレクト(リダイレクトを繰り返す)にも対応していますが、Googleのジョン・ミューラ氏が質問投稿サイト・Redditに投稿したコメントによると、Googleクローラーは5回以上の多重リダイレクトはトラッキングしないようです。
Google’s John Mueller Recommends Less Than 5 Hops Per Redirect Chain
トラッキングをしないということは、サイト移転でSEO評価が正しく移転されないということでもあります。
通常の移転であればリダイレクトはせいぜい2,3回ですが、サイト移転時にURL構造が変わった場合などは、通常よりもリダイレクト回数が増えてしまうので注意しましょう。
meta refreshでのリダイレクトは避ける
ここまでにあげた移転(リダイレクト)方法以外にも、HTMLヘッダのmeta refreshを使ったリダイレクト方法があります。
しかし、この方法はGoogleが非推奨としているため、なるべく使用しないようにしましょう。最悪スパムサイトと認定されてしまう恐れもあります。
SEO評価をそのまま引き継ぐサイト移転・引っ越しの方法を見てきました。
大事なのは、
- 「301リダイレクト」をすること
- 旧URLから対応する新URLへリダイレクトすること
の2点だけですが、使っているサーバーなどによってやり方は様々です。それぞれの環境に合わせて移転設定をしましょう。
また、リダイレクト設定ができたら、Google Search Consoleでも移転設定をしましょう。