WEBZINNE

seoのサムネイル

SEO

SEO評価をそのまま引き継ぐ!失敗しないサイト移転・引っ越しまとめ

WEBZINNEトピックス編集部のアイコンWEBZINNEトピックス編集部

公開日: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パターンは設定できません。

すべてのユーザーに必須のPage Rule

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でも移転設定をしましょう。

「SEO」の記事