■ なぜ、はてなブログから出ていくのか
柔軟性が皆無だから。
突然何かがバズって2万PV/dayを食らっても何の心配もしなくていいし、運用も丸投げできるのがはてなブログのメリットですが、逆に言うとそれ以外のメリットがないんですよね。
運営しているとそのうち柔軟性の皆無さが大きなデメリットとなって不満が出てくるわけです。そして有料のProにしたところでその不満が解消されることはない。
というわけではてなブログから脱出することにしました。
■ 無料はてなブログからの脱出って簡単?
ひたすら面倒です。
まず何よりもダメなのが、はてなブログは「301リダイレクト」ができないところ。
イマドキのブログはトップページから入る人間は皆無で、ほとんどがGoogle検索からアクセスしてきています。
なのでGoogleの評価を維持したままの引越しするのがとても重要。GoogleもSearch Consoleで「アドレス変更ツール」を用意してくれています。
でもこれ「301リダイレクト」必須なんだなあ。はてなブログじゃ使えないんですよ。
とはいえここで諦めるとネタにもならないので、はてなブログからWordPressに実際に移行して、Google対応を行った結果まで書いてみようと思います。
なお結果から先に申し上げますと「成功」です。
■ さあ引っ越そう
・WordPressサーバを立てる
慣れてるConoHaでKUSANAGIインスタンスを立てました。

スペック512MBプランが最小最安値なのですが、テストで触っているだけでレスポンスが悪くなったり落ちることが多かったため、1GBプランにしました。今のところ問題はないですしかなり余裕です。
ドメイン取ったりとかレコードを登録するのは各自よろしくやって下さい。
・Google Search Consoleへの登録
はてなブログ、新サイトの両方を登録しておきます。
・はてなブログからデータをエクスポートし、WordPressにインポート
こちらの手順を参考にしました。ありがとうございました。

で、これ以外に行った作業です。
- 全エントリの「下書き」化
いきなりWordPressにインポートすると、前記事がそのまま公開されてしまいます。
WordPress側で公開する前に色々とやるべきすることがありますので、「下書き」状態でインポートするようにします。
データをエディタで開きますと「STATUS: Publish」という行があります。これを文字の置き換え機能で「STATUS: Private」に変換して保存。これをWordPressにインポートしましょう。
- 画像の移行
はてなブログでは画像がはてなフォトライフに保存されています。
WordPressにブログデータをインポートしてもはてなフォトライフの画像が表示されるので、そのままでも問題無いという人はそのままで。
うちは色々と思うところがあったので、手作業で画像を保存してWordPressに再登録しました。
- はてなキーワードの削除
ブログの文章中の単語にはてなキーワードへのリンクが勝手に設定される機能があります。はてなダイアリーの時代は斬新だったんだけど、邪魔でしかないよね…
有料のProだと無効にできるのですが、無料だと無効にできません。
ですので無料の人はリンクを頑張って手作業で削除する必要があります。
エントリ数が少ない人は手作業でいいと思いますが、多い人はやってられないと思いますので、時間と労力を金で買うつもりで1ヶ月Pro契約してはてなキーワードを無効化してからエクスポートするのを検討してもいいと思います。
- 検索エンジン避け
このまま公開すると新サイトがGoogleからコピペブログ扱いされて評価が下がります。
WordPressですと「設定」-「表示設定」の中に「検索エンジンがサイトをインデックスしないようにする」というのがあるので、有効にします。
- その他
いい機会ですのでエントリの整理を行います。
時代にそぐわないものや黒歴史は削除、誤字脱字や内容もしれっと修正しちゃいましょう。
・そして新サイトを公開へ
パーマネントリンクの修正は完璧ですか?悔いはないですね?
新サイトのエントリを下書きから公開に変更しましょう。
■ Google対応
・はてなブログ側の設定
リダイレクトJavaScriptを仕込む
はてなブログは「301リダイレクト」ができませんので、JavaScriptを書いてリダイレクトするようにします。
JavaScriptはこちらを参考にいたしました。ありがとうございました。
はてなブログの管理画面から「デザイン」-「スパナアイコン」-「記事」内にある、「記事上下のカスタマイズ」の「記事上」に、以下のJavaScriptを仕込んで保存します。
なおこちらのスクリプトは、WordPressのパーマネントリンクをはてなブログ型式に合わせている前提です。
<p><H2>こちらのWebサイトは移転しました。</H2><br>[新サイト名]<br> <script type="text/javascript" language="javascript"> <!-- var domain = "http://新サイトのFQDN"; var path = location.pathname; var url = domain + path; document.write("<a href=\"" + url + "\">" + url + "</a></p>"); setTimeout("redirect()", 5000); function redirect(){ location.href = url; } document.querySelector("link[rel=canonical]").setAttribute("href",url) --> </script>
何やってるかとりあえず分かるコードですね。はてなブログ側のURLからFQDNを抜いて、新しいドメインとくっつけてリダイレクト先のURLを生成します。
最近のGoogleはJavaScriptを解釈するそうで、このリダイレクト処理を見てサイトが移転したことを判断するようです。
「setTimeout」内の数値は、リダイレクトで新サイトに飛ぶまでの秒数(単位: ミリ秒)です。上の例だと5,000ミリ秒なので5.0秒。
そして最後のほうに「内容は同じだけどリダイレクト先のほうが本家だよ」というのをGoogleに知らせるためcanonicalの書き換えをしようとしてます。
が。
最近のはてなブログは対策をしているのか、HTMLを見ると書き換わっていませんでした。はてなの性格の悪さが滲み出ていますが、今回はおまじないで残しておきました。
で、これではてなブログ側を表示させるとタイトルと本文の間にこんな感じで表示され、5秒後に新サイトに飛ばされます。
この方法の難点ですが、はてなブログのトップページからのリダイレクトはできません。
まあでも今のご時世、ブログをトップページから読む人間なんてそんなにいないので別に気にしなくていいと思います。
はてなブログ側の検索エンジン避けを設定
うちはリダイレクトを設定した何日かあとに検索エンジン避けを設定したんですけど、すぐにやっていいと思います。
はてなブログの管理画面の「設定」-「詳細設計」の中に「検索エンジンに登録させない(noindex, nofollow)」というのがあるので、有効にして保存します。
以上ではてなブログ側の設定は一旦終了です。
・新サイト側の設定
検索サイト避けの解除
新しいサイトをGoogleに見つけてもらわなければなりません。
インポート時に設定した、検索サイト避け(noindex)を解除します。
Google XML Sitemapsのインストール
Googleにサイトマップ(Webサイトの構造情報)を教えるために、WordPressにGoogle XML Sitemapsをインストールします。

プラグイン自体の設定はググると出てくるので確認して下さい。
新サイト側での設定は以上です。
・Google Search Consoleの設定
アクセス数はGoogle先生に握られています。Google Search Consoleを使って先生に新サイトの繁栄祈願をお願いしましょう。
サイトマップの登録
Ggoogle XML Sitemapsで作成されたサイトマップのURLを登録します。プラグインの設定でURLが表示されていますので確認して下さい。
Google Search Consoleの「クロール」-「サイトマップ」の中に「サイトマップの追加/テスト」ボタンがありますのでクリックし、URLを登録します。
クロールのリクエスト
次回はいつGoogleがクロールしてくれるか分からないのですが、リクエストを出すのは可能です。Google Search Consoleで設定します。
この設定ははてなブログと新サイトの両方について行います。
Google Search Consoleの[クロール]-[Fetch as Google]をクリックすると右側にトップのURLが表示されていますので[取得]をクリックします。
次に[インデックス登録をリクエスト]をクリックし、[この URL と直接リンクをクロールする]を選択して[送信]をクリックします。
ただWordPressの作りにもよると思いますが、これですと直接リンクでないが故にクロールが遅れるページが出ると思います。もしかしたらエントリのURLを個別に登録した方がいいかもしれません。
作業はこれで終了。あとはとにかく待つのみです。
■ アクセス数の推移
2017年4月5日に新サイトを公開、リダイレクトを開始してGoogle Search Consoleを設定しました。その後のアクセス数の推移です。
はてなブログはこちら。
新サイトはこちら。
引越開始して新サイト側のPVが若干多いのは、私がテストアクセスしてたからです。はい。
はてなブログのグラフを見ると4月10日からPVが減っています。そして4/16にはGoogleのインデックスが新サイトに置き換えられたと判断していいでしょう。
が。
PVが引越し前と比較してずいぶん減ってるんだよな…
試しにGoogleで色々と検索をしてみると、アクセス数が多かったエントリのはてなブログ側のインデックスが消去されたのに、新サイト側が登録されていないようです。
そしてそういうエントリのURLをFetch as Googleに登録しても手応えがない…
その後4月24日にPVが増えているのですが、これはwaifu2xのエントリへのリンクがどこかに貼られてプチ拡散されたようです。圧縮URLだったのでリファラーは不明。
で。
ちょうどタイミングを同じくして、この日あたりに新サイトの常時SSL化を行いました。
waifu2x砲は1日で収束したのですが、その後はPVが割と持ち直してて引越し前と対して変わらない程度になりました。
思い当たる単語でググってみると、新サイトのインデックスがかなり増えたようです。
Googleの表示でURLがHTTPSになっていたところを見ると「常時SSL化でインデックス化が促進されたのでは?」と思ったりしますが、実はwaifu2x砲のおかげかもしれませんし、その辺は残念ですがよく分かりません。
■ 結論
「無料はてなブログからWordPressへの移行」ですが、何が効いたか知らないけど成功と言っていいでしょう。
はてなブログではほとんどアクセスされなかったエントリが、引越後にGoogleの検索結果で1ページ目に表示されるようになり人気エントリ化したものもありました。
手順も301リダイレクト以外はトリッキーではなくむしろ愚直という感じです。そして時間はかかったものの、Googleはきちんと解釈してインデックスを新サイトに置き換えたんだからスゴいものです。
また引越しするついでの常時SSL化は必須です。証明書もLet’s Encryptのおかげで取得が容易になりましたので、常時SSL化をやらない理由はないです。
データの引越やパーマネントリンクの修正など、地味に時間がかかってツラい作業もありましたが、今では「引越してよかった」と思います。もしよければ挑戦してみてはいかがでしょうか?