結論から書くと、リニューアルで URL が変わるページは、旧 URL ごとに移り先の新 URL を決め、サーバー側の 301 リダイレクトで移り先へ直接転送する のが基本です。Google 検索セントラルの「URL の変更を伴うサイト移転」も、新旧の URL の対応表を作り、リダイレクトを設定し、公開後にトラフィックを見る流れを示しています。同じページは、移転の間に掲載順位が一時的に変動することがあるとも書いており、ここで説明するのは 影響を抑えるための手順 です。
この記事では、ドメインやサーバーの契約の整理、URL が変わらないサーバーの移転、HTTP から HTTPS への切り替えは扱いません。ドメインの期限と名義の管理は「SSL 証明書とドメインの期限切れを防ぐ管理——担当者が変わっても止まらない仕組み」で説明しています。
リダイレクトの基本——サーバー側の 301 で、移り先へ直接
Google の「リダイレクトと Google 検索」は、リダイレクトを2種類に分けています。
| 種類 | 主なステータスコード | 検索結果に表示される URL |
|---|---|---|
| 永続的なリダイレクト | 301、308 | 新しいリダイレクト先 |
| 一時的なリダイレクト | 302、303、307 | リダイレクト元 |
元に戻す予定のない URL の変更には、永続的なリダイレクトを使います。同じページは、可能な限りサーバー側の永続的なリダイレクトを使うよう勧めており、ページの中に書く meta refresh や JavaScript での転送は、サーバー側で設定できない場合の手段としています。
「URL の変更を伴うサイト移転」には、ほかに次の注意があります。
- 301 などの永続的なリダイレクトで PageRank(リンクをもとにした評価)が失われることはない。
- 転送の連鎖(チェーン)を避け、最終の移り先へ直接転送する。 Googlebot は最大10個のホップをたどれますが、直接できない場合も5個未満、理想的には3個以下に抑えるよう書いています。
- 関係の薄いページへまとめて転送しない。 多数の旧 URL をトップページなどへ転送すると、ユーザーが混乱し、ソフト 404 エラーとみなされる場合があります。複数のページを1ページにまとめた場合は、元の URL をまとめた先へ転送できます。
- 移さないページは 404 か 410 を返す。
旧 URL の一覧と、新旧の対応表を作る
旧 URL を洗い出す
同じページは、元の URL の一覧を作る方法として次を挙げています。
- 今のサイトマップ(Search Console に送っているもの)
- サーバーのログやアクセス解析で、トラフィックの多い URL
- Search Console のリンクの機能で、内部リンクや外部リンクのあるページ
- CMS(WordPress など、管理画面からページを更新できる仕組み)のページの一覧
画像や PDF などのファイルも対象です。検索やほかのサイトのリンクから直接開かれている可能性があるためです。
新旧の対応表を作る
旧 URL ごとに、移り先と扱いを1行で書きます(例のドメインは www.example.com)。
| 旧 URL | 新 URL | 扱い |
|---|---|---|
| /company.html | /company/ | 301 |
| /staff1.html、/staff2.html | /staff/ | 301(1ページにまとめた) |
| /pdf/price.pdf | /files/price.pdf | 301 |
| /news/campaign.html | なし | 404 か 410 |
対応表ができたら、新しいサイトの側で次の3つも直します。
- 内部リンク: メニューや本文のリンクを新 URL に書き換える
- canonical: 各ページの
<link rel="canonical">を、そのページ自身の新 URL にする - サイトマップ: 新 URL を載せたサイトマップを用意する
.htaccess で 301 を設定する
リダイレクトの設定方法はサーバーによって違うため、契約しているサーバーのマニュアルで確かめます。CMS などの管理画面にリダイレクトの機能があることもあります。ここでは、Apache 系のサーバーで .htaccess が使える場合の一般的な書き方を示します。
書き換える前に、今の .htaccess を手元に保存しておきます。Apache の .htaccess の説明は、意味のない語を書くとサーバーエラー(HTTP 500)になる例を挙げています。書き換えたら、すぐにいくつかのページを開いて確かめます。
1ページずつ転送する(Redirect)
Redirect 301 /company.html https://www.example.com/company/
# /old/ 以下を、同じファイル名のまま /new/ 以下へ
Redirect 301 /old/ https://www.example.com/new/
Apache の Redirect の説明で押さえておく点は2つです。
- ステータスを書かないと一時的なリダイレクト(302)になる。
301かpermanentを書きます。 - 指定したパスで始まる URL がすべて対象になる。 2行目は
/old/a.htmlをhttps://www.example.com/new/a.htmlへ転送します。残りのパスが後ろに付くので、移り先に同じ名前のページがあるかを確かめます。
決まった形でまとめて転送する(RewriteRule)
RewriteEngine On
RewriteRule ^blog/(.*)$ https://www.example.com/column/$1 [R=301,L]
.htaccessの中では比べる対象のパスの先頭にスラッシュが付かないため、^/で始まるパターンは一致しません(RewriteRule の説明)。Rだけだと 302 になります。R=301と書き、ほとんどの場合はLと組み合わせます(フラグの説明)。
公開後に確かめること
「URL の変更を伴うサイト移転」は、個々の URL は Search Console の URL 検査ツールで、多数の URL はコマンドラインのツールやスクリプトで確かめられるとしています。対応表から「旧URL 新URL」を1行ずつ書いたファイルを作り、curl で全件を確かめる例です。
while read -r old new; do
first=$(curl -s -o /dev/null -w '%{http_code} %{redirect_url}' "$old")
last=$(curl -s -o /dev/null -L -w '%{http_code} %{num_redirects} %{url_effective}' "$old")
echo "$old | 最初: $first | 最後: $last | 期待: $new"
done < map.txt
| 見る所 | 正しい状態 | 違うときに考えられること |
|---|---|---|
| 最初のステータス | 301 | 302 なら、ステータスの書き忘れ |
| 最初の転送先 | 対応表の新 URL | 書き間違い、別のルールに当たっている |
| 最後のステータス | 200 | 404 なら、新 URL の綴り違いか、ページが無い |
| 転送の回数 | 1 | 2以上ならチェーン |
転送がループしていると、curl は上限(標準で50回)までたどってエラーで終わります。https や www への統一の転送がある場合は、旧 URL を http や www なしの形でも試します。移さないページは、404 か 410 が返るかを見ます。
あわせて、次の点も確かめます。
- 制作中に入れた noindex や robots.txt のブロックが残っていないか。Google は、移転のためだけに入れたものは削除するよう書いています
- canonical が、旧 URL や制作中の確認用の URL のままになっていないか
- 内部リンクが新 URL を直接指しているか
サイトマップの更新と、Search Console での確認
「URL の変更を伴うサイト移転」によると、新 URL のサイトマップを Search Console で送ると、Google が新しい URL を認識できます。旧 URL のサイトマップも送っておくと、旧 URL のインデックス登録が減り、新 URL が増える様子を見られます。旧 URL のサイトマップにリダイレクトの警告が出ても、移行中の正常な状態です。「Not found」のエラーが通常より増えていないかも見ます。
原則として、小規模から中規模のサイトで大半のページの移転が反映されるのに数週間かかります。その間の順位の変動は通常のことで、時間とともに安定するとされています。
リダイレクトは、できるだけ長く(一般的には1年以上)保つよう書かれています。サーバーを替えたり .htaccess を作り直したりするときも、転送の行を消さないようにします。旧 URL にリンクしているほかのサイトには変更を依頼し、SNS のプロフィールや広告のリンクは新 URL に変えます。
ドメインも変わる場合はアドレス変更ツール
Search Console ヘルプの「アドレス変更ツール」は、ドメインやサブドメインを変える移転で、リダイレクトを設定した後に使うツールです。HTTP から HTTPS への変更、同じドメインの中でのパスの移動、www の有無の切り替えには使いません。新旧両方のプロパティの所有者である必要があり、リダイレクトは少なくとも180日間維持し、旧ドメインは悪用されないよう少なくとも1年間は料金を払い続けることが勧められています。移転とあわせてコンテンツや URL の構造を作り直すと、Google がページを学習し直すためトラフィックが減る可能性がある、とも書かれています。
h-system でできること
h-system の「ノーヒアリングHP制作」は、ホームページを新しく作りたい・作り直したい場合の制作サービスで、業種別のデモで見た目を選び、問診票(10〜15分程度)に答えて進めます。公開・管理は、h-system で公開・管理する方法(公開・運用基盤管理 月額3,000円〜・税込。h-system が公開作業を行います)と、自社で管理する方法(制作・納品のみ)から選べます。今のサイトからの URL の転送のように、公開にあわせて追加の設定が必要な場合は、別途ご相談ください。h-system で管理する場合の管理の範囲は、お見積もりの際に確認します。