サイト移転の際のリダイレクトの設定について

最終更新日

Comments: 0

Google にページ(サイト)が重複していると認識されてしまった場合について

301 リダイレクトの設定について

サイトの移動の際に、移行がうまくいかずに旧サイトをGoogleが正規ページと認識してしまっている場合に「サイトが重複している」と認識されてしまい、Google にミラーサイトとして扱われてしまいます。

その場合、ユーザーは旧 URLにアクセスし「404 not found」と表示されるエラーページに転送されてしまうことになり、ユーザーは必要としていた情報を得ることができないので、すぐにWebページから離脱します。

このような場合に 301 リダイレクトの設定することが望ましいとされています。

URLを変更したにもかかわらず、301 リダイレクトの設定をしていないと、ユーザビリティの損失につながります。

新URLに自動的にアクセスできる

旧サイトにリダイレクトの設定をすると旧サイトにアクセスしたユーザーは自動的に新URLに転送されます。ただ、インデックスされ、検索順位で上位表示されるには数か月~1年ほどの過程が必要のようです。

301 リダイレクトの設定方法について

301リダイレクトの設定が必要なケースはいくつかあり、それぞれのケースで設定方法がことなるので、ケース別に分けて説明します。

.htaccess を使って設定をする

.htaccess の設定は、指定する動作を記述した「.htaccess」ファイルをFTPソフトなどでWebサーバーにアップデロードする必要があります。

各ケースで「.htaccess」ファイルに記述する301リダイレクトを紹介します。

URLの正規化を行うケース

URLの正規化とは、類似しているコンテンツ(URL)が複数存在している場合や1つのコンテンツにいくつかのURLからアクセスできる場合、そのURLを一つにまとめることを指します。

類似しているコンテンツの各URLや、1つのコンテンツにアクセスできる各URLの中から正規URLを指定することで、Googleにミラーサイトではないことを知らせる役割があります。

サンプル例

以下のコードは「https://www.example.com/」というURLの他に「https://example.com/」「https://www.example.com/index.html」のように、同じWebサイトにアクセスできる状態を例に挙げています。
正規化させたいURLは「https://www.example.com/」です。

RewriteEngine on 
RewriteCond %{HTTP_HOST} ^(example.com)(:80)? [NC] 
RewriteRule ^(.*) https://www.example.com/$1 [R=301,L]
RewriteCond %{THE_REQUEST} ^.*/index.html
RewriteRule ^(.*)index.html$ https://www.example.com/$1 [R=301,L]
と、ここまで書いて来ましたが、「Google 検索セントラル」を見ると「.htaccess」でコントロールするのを推奨していないと書かれていたので、実際は Google 検索セントラルで推奨している「heade。php」に header関数を使ってリダイレクトする方法を推奨していたのでその方法を使いました。
以下はその方法に触れていきます。

header関数を使う(「header.php」に記述する)方法

<?php
header('HTTP/1.1 301 Moved Permanently');
header('Location: https://www.example.com/newurl');
exit();
?>

2行目のところにある、newurlと書かれているところに新サイトURLを記述する。

snipe

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

コメントする