Table of Contents
このブログの閲覧数がそこそこの規模になってきたので、Google AdSenseで小遣い稼ぎを始めようとしたら、最近サブドメインがwww
じゃないとできないようになったようだったので、サブドメインをtbd
からwww
に変更した話。
変更自体はそんなに難しくなかったけど、Googleの検索順位を保つためにいろいろ気を使う必要があった。
ブログアドレスの変更
以前にも書いたが、このブログはHugoで作ってGitHub Pagesでカスタムドメインで公開している。
コメント欄を設けるためにDisqusを使っている。
Cloudflareを使って全体をHTTPS化していて、その関係でkaitoy.xyz
ドメインの名前解決にはCloudflareのDNSを使っている。
アクセス解析などのためにGoogle AnalyticsとGoogle Search Consoleを使ってる。
この構成で、ブログアドレスの変更に必要だった修正を列挙する。(この順にやったわけではない。)
1. ブログソース修正
Hugoの設定ファイルであるconfig.toml
に書いてあるbaseurl
の値をhttps://tbd.kaitoy.xyz
からhttps://www.kaitoy.xyz
に変え、また、各記事の内部リンクのURLもwww
のに変えた。
あとrobots.txt
のSitemap
のURLもhttps://www.kaitoy.xyz/sitemap.xml
に更新した。
2. GitHub Pagesの設定変更
ブログリポジトリに行って、Settings
のGitHub Pages
欄のCustom domain
の値をhttps://www.kaitoy.xyz
に変えた。
ついでにブログリポジトリのトップに表示されるDescription
のWebsite
の値も新しいURLに変更した。
この変更によりありがたい副作用もあった。
GitHub Pagesはwww
というサブドメインを特別扱いしていて、以下の恩恵を受けられるのだ。
- wwwを省略したURL(apex domain)でアクセスすると、GitHub Pagesサーバがwww付きのURLにリダイレクトしてくれる。
- 安定していて速い。
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 URL
をhttps://www.kaitoy.xyz
に変更した。
5. Google Analyticsの設定変更
管理
タブのプロパティ設定
のデフォルトの URL
をhttps://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の管理サイトごとのページの右上の歯車アイコンからアドレス変更
を選択すると開け、以下のようなものが表示される。
このウィザードに従って、移転先URL(プロパティ)の追加、301リダイレクトの動作確認、サイトの存在確認をして、アドレス変更のリクエストを送信するだけ。
最後に、追加したプロパティのクロール
のサイトマップ
から、移転先サイトのサイトマップを送信して完了。
サイトマップはHugoがビルド時に生成してくれたやつ。
今Google Search Consoleのヘルプを見直したら移転前のサイトマップも送信しろと書いてあるのに気付いた。 これはやらなかったけど、やった方がよかったのかも。
ともあれ、移転後一時的に検索順位が大きく落ちたものの、1,2週間位でもとにもどったので、この移転は概ね成功だったと思う。