かばだんなさん かく語りぬ Header Image

サイト引っ越し手順(Apache編)

こんにちは。かばだんなさんです。

サイトのお引越しをする際に、Apacheのmod_rewriteを使用して新サイトなどにジャンプさせる手法は有名ですが、これって段取りに配慮しないと不親切なんですよね。

というのも、ブックマークをしてくださっている常連さんの場合、ある日突然リダイレクトで新サイトに飛ばされると、その時にURLを見てドメイン名が変わっている事に気付いてブックマークし直してくれればいいのですが、そうじゃないと「リダイレクトが効いてる間は新サイトに行けるけど、リダイレクトが解消されたタイミング(旧サイトを閉鎖したタイミング)でサイト行方不明」になってしまいます。

じゃあ旧サイトに「引っ越しました。新サイトのURLは・・・・」というお知らせを表示するのがいいのかというと、これだとクローラさんが引っ越し先に気付かないのでSEO的には一から出直しになってしまいます。

ということで私のやり方なのですが、
作業の流れとしては

Step1. 新サイトを構築する。
Step2. クローラからのアクセスの場合だけ 301 で新サイトへリダイレクトさせる。
Step3. 旧サイトで「サイトを引越した旨のアナウンス」と「新サイトのURL」を表示する。
Step4. 旧サイトのアクセス数が減るのを待つ。
Step5. 全てのアクセスを 301 で新サイトへリダイレクトさせる。
Step6. 旧サイトのアクセス数が減るのを待つ。
Step7. 旧サイトを閉鎖する。

という流れで段階的に閉鎖します。

順を追ってみていきましょう。

Step1. 新サイトを構築する。
まずは何はともあれ新サイトを構築します。(今回の例では新旧サイトのURIは完全一致とします。)

Step2. クローラからのアクセスの場合だけ 301 で新サイトへリダイレクトさせる。
サイトトップの.htaccessに下記の2行を追加します。

RewriteCond %{HTTP_USER_AGENT} ^.*(crawler|bot|FeedFetcher|Mediapartners-Google|spider|Y!J-).* [NC]
RewriteRule (.*) http://新サイトのドメイン名/$1 [R=301,L] 

これでまずクローラにhttpレスポンスとして「301(このサイトは引っ越したよ)」を返します。(クローラーとみなすためのユーザーエージェントについては、もし不足しているようでしたらあなたのサイトのログを見て追加してください。)

Step3. 旧サイトで「サイトを引越した旨のアナウンス」と「新サイトのURL」を表示する。
これは人間様向けのアナウンスになります。ここで新サイトのURLが「トップページ」ではなく「新サイトの今参照しているページ」だったりするとさらに親切ですね。

Step4. 旧サイトのアクセス数が減るのを待つ。
クローラへの301がすぐに検索結果に反映されるわけでもないので、暫く様子を見ます。旧サイトのログを見て301が減るのを待ちましょう。

Step5. 全てのアクセスを 301 で新サイトへリダイレクトさせる。
人間様のアクセスも301で新サイトにリダイレクトさせます。.htaccessの内容を

RewriteRule (.*) http://新サイトのドメイン名/$1 [R=301,L] 

にするだけです。

Step6. 旧サイトのアクセス数が減るのを待つ。
この頃になると旧サイトへのアクセスはほとんど無いでしょう。旧サイトのログを見て301が減るのを待ちましょう。

Step7. 旧サイトを閉鎖する。
旧サイトへのアクセス数が減ったら(0になる事はほとんどないでしょうが・・・。)、旧サイトを閉鎖します。これでお引っ越し作業は終了です。

mod_rewriteの設定としてはたった2行なのですが、それよりも段取りの方が大変ですよね。でもこの配慮する姿勢こそが、誰かを迎え入れるにあたっては大切な姿勢だと思うのです。


コメントを残す