このブログの閲覧数がそこそこの規模になってきたので、Google AdSenseで小遣い稼ぎを始めようとしたら、最近サブドメインがwwwじゃないとできないようになったようだったので、サブドメインをtbdからwwwに変更した話。

変更自体はそんなに難しくなかったけど、Googleの検索順位を保つためにいろいろ気を使う必要があった。

ブログアドレスの変更

以前にも書いたが、このブログはHugoで作ってGitHub Pagesでカスタムドメインで公開している。

コメント欄を設けるためにDisqusを使っている。

Cloudflareを使って全体をHTTPS化していて、その関係でkaitoy.xyzドメインの名前解決にはCloudflareのDNSを使っている。

アクセス解析などのためにGoogle AnalyticsGoogle Search Consoleを使ってる。

この構成で、ブログアドレスの変更に必要だった修正を列挙する。(この順にやったわけではない。)

1. ブログソース修正

Hugoの設定ファイルであるconfig.tomlに書いてあるbaseurlの値をhttps://tbd.kaitoy.xyzからhttps://www.kaitoy.xyzに変え、また、各記事の内部リンクのURLもwwwのに変えた。

あとrobots.txtSitemapのURLもhttps://www.kaitoy.xyz/sitemap.xmlに更新した。

2. GitHub Pagesの設定変更

ブログリポジトリに行って、SettingsGitHub Pages欄のCustom domainの値をhttps://www.kaitoy.xyzに変えた。

ついでにブログリポジトリのトップに表示されるDescriptionWebsiteの値も新しいURLに変更した。

この変更によりありがたい副作用もあった。 GitHub Pagesはwwwというサブドメインを特別扱いしていて、以下の恩恵を受けられるのだ。

3. CloudflareのDNS設定変更

CloudflareのDNSで、もともとCNAMEレコードでkaitoy.github.io(GitHub Pagesのデフォルトのドメイン)のエイリアスをtbdにしていたのをwwwに変更した。

また、上記の通りapex domainでGitHub Pagesにアクセスしても上手いことやってくれるようになったので、www.kaitoy.xyzのエイリアスをkaitoy.xyzとするCNAMEレコードを追加した。 CloudflareのDNSはapex domain(i.e. kaitoy.xyz)に対するCNAMEレコード設定をサポートしているので、これでwww.kaitoy.xyzでもkaitoy.xyzでもGitHub Pagesにルーティングされるようになった。

4. Disqusの設定変更

ホームの右上の歯車アイコンからAdminを開いて、ヘッダのSettingsからブログのURLを選んでその設定画面を開き、Website URLhttps://www.kaitoy.xyzに変更した。

5. Google Analyticsの設定変更

管理タブのプロパティ設定デフォルトの URLhttps://www.kaitoy.xyzに変更しただけ。

Googleのページランクを保つためのあれこれ

以前もどこかに書いたが、どんなにすばらしい内容の記事を書いてもGoogle検索結果の2,3ページくらいまでに出てこないんであれば誰も読んでくれない。 このブログのいくつかの記事はそれなりにいいキーワードでいい検索順位になっていたので、サブドメイン変更によってページランクに悪影響が出るのはなるべく避けたかった。

調べたら、Google Search Consoleのヘルプにまさにその悪影響を防ぐ方法が載っていたので、これに従ってあれこれした。

1. 自身を参照する rel="canonical"リンクタグを付ける

ブログの全てのページのヘッダに以下の様な移転先アドレスを指すlinkタグを付け、変更後のアドレスが正式なアドレスであることをGooglebotに教えてやる。

<link rel="canonical" href="https://www.kaitoy.xyz/2015/07/18/first-post/">

Hugoのソースでいうと以下の感じ。

<link rel="canonical" href="{{ .Permalink }}">

2. HTTP 301リダイレクトを設定

多分これが一番重要なんじゃなかろうか。

HTTPステータスコードの301はサイトのコンテンツが別のURLに恒久的に移転したことを示すもので、移転前のURLにアクセスしたクライアントに301を移転先のURLとともに返してやることで、HTTPレベルでのリダイレクトをさせることができる。

GooglebotもこのステータスコードでブログURLの変更を知ることができるので、検索結果をよしなに移行してくれるはず。

301を返すサーバにはXREAの無料サーバを使った。 このブログのドメインはバリュードメインで買ったもので、ここがXREAと提携していたので無料サーバも合わせて確保していたもののほとんど使っていなかったので調度よかった。 調べたらこのサーバで、Apache HTTP Serverの設定ファイルである.htaccessが使えることが分かったので、以下の内容で作って/public_html/に置いた。

<Files ~ "^\.ht">
deny from all
</Files>

# Redirect
Redirect permanent / https://www.kaitoy.xyz/

また、サーバの管理ページからドメインウェブ設定画面に行き、Mainのドメイン名をtbd.kaitoy.xyzに設定。

あとはCloudflareのDNS設定で、tbdを上記XREAサーバのIPアドレスに解決するAレコードを追加して完了。

3. Google Search Consoleのアドレス変更ツール実行

最後の仕上げとして、Google Search Consoleのアドレス変更ツールを使ってGooglebotにアドレス変更を通知した。

このツールはGoogle Search Consoleの管理サイトごとのページの右上の歯車アイコンからアドレス変更を選択すると開け、以下のようなものが表示される。

change_address.png


このウィザードに従って、移転先URL(プロパティ)の追加、301リダイレクトの動作確認、サイトの存在確認をして、アドレス変更のリクエストを送信するだけ。

最後に、追加したプロパティのクロールサイトマップから、移転先サイトのサイトマップを送信して完了。 サイトマップはHugoがビルド時に生成してくれたやつ。

Google Search Consoleのヘルプを見直したら移転前のサイトマップも送信しろと書いてあるのに気付いた。 これはやらなかったけど、やった方がよかったのかも。

ともあれ、移転後一時的に検索順位が大きく落ちたものの、1,2週間位でもとにもどったので、この移転は概ね成功だったと思う。