Transfer to Hatena blog
Tumblrからはてなブログに移行してみました。 細々とTumblrに不満があったので、とりあえず1ヶ月お試しにはてなブログをという感じです。 もし、はてなブログにも我慢できなくなったらGitHub+S3構成にしようかなと思います。
で、今回はブログ移行の話です。 単純にエクスポート・インポートでいければ良かったのですが、人力と気合とお金で行うことになりました。
- Tumblrの記事をエクスポート
- はてなブログに記事を移行
- 移行元のURLから301 Redirectで移行先のURLにリダイレクト
1. Tumblrの記事をエクスポート
まずは、Tumblrから記事をエクスポートしなければいけないのですが、Tumblr自体にはエクスポートする機能はありません。 そこでTumblr APIを使って記事をエクスポートする仕組みが必要になってきます。
今回はエクスポートする仕組みを探して見つけたsky-tumblr-export
というツールを使っています。
npm install -g sky-tumblr-export
npm経由でインストール後に
sky-tumblr-export -u blog.kinzal.net -d /tmp/tumblr --titles
と-u
にURLを-d
にディレクトリを指定して実行します。
├── posts │ └── 2015 │ └── 03 │ ├── document-generator-with-angularjs-application.md │ └── whether-frp-is-type-or-is-it-pipeline.md └── sky └── config.json
そうすると上記のようにposts/年/月/タイトル.md
という形でエクスポートされるので、このmdファイルをベースにはてなブログに移行用のデータを作っていきます。
2. はてなブログに記事を移行
エクスポートしたデータをそのまま、はてなブログにインポート! といければ良かったのですが、はてなブログではMovable Type形式でしかインポートに対応していません。
また、BloggerからTumblrに移行したときの記事がhtmlでmdファイルにベタ書きされていたり、コードブロックがバッククォートではなくスペース4つでエクスポートされていたりで、はてなでサポートされているマークダウン形式と微妙に噛み合っていなかったりします。 そこで、人力で気合を入れて、記事一件毎に整形をして、記事を投稿していきます。
主な移行対象は下記になります。
- 記事タイトル
- 記事本文
- 投稿日時
- カスタムURL
- タグ
今回の移行作業にかかった時間の大部分はここで、だいたい70ちょっとの記事数でアニメ2クール分ぐらいの時間がかかりました。 自動化しても良かったのですが、変換規則を抜き出して、はてなブログAtomPub API使って投稿することを考えると、時間的にとんとんになるだろうと見込んで人力でやりました。(どうせ1回しか使わないですし)
ツラかった。
3. 移行元のURLから301 Redirectで移行先のURLにリダイレクト
ここまで来たら後は公開するだけ。と言いたいところですが、実はTumblrとはてなブログではURLの形式が違います。
Tumblr
http://独自ドメイン/posts/カスタムURL
はてなブログ
http://独自ドメイン/entry/カスタムURL
このまま公開してしまうと、既存記事へのリンクが全て全滅してしまう上に、コピペした記事としてSEOがまずいことになってしまうため、posts
にアクセスした場合に301 Redirectでentry
にリダイレクトする必要があります。
Tumblrにもはてなブログにもそういった機能はないので、どうしたものやらと思っていたら
CloudFlareにその機能がありました。
ただし、はてなブログの独自ドメイン機能ではCNAMEのレコードチェックがあるため、はてなブログではCloudFlareを使用することができません。 そこで、少し面倒臭いですが、
- はてなブログ用に新規ドメインを取得
- はてなブログで新規ドメインを独自ドメインに設定
- Tumblrで使用していた旧ドメインにPageRuleを追加
http://blog.kinzal.net/posts/*
->http://www.rpms.me/entry/$1
http://blog.kinzal.net
->http://www.rpms.me
- はてなブログを非公開から公開に変更
- 旧ドメインでCloudFlareを有効化
という手順を踏んで、無停止で移行できるようにしました。 新規ドメインで良さそうなのが残っていたので助かりました。
おわりに
という訳で、無事移行完了しました。
デザイン的にも前と同じシングルカラムレイアウトで、ほぼ似たようなデザインになっています。 あとはもう少し運用してみてBounce RateとTime on Pageがどう変わるかみて、いろいろと変えて行こうかなと思います。
個人的にはてなブログに書き換えて良かったなと思うのは、コードブロックで言語指定できるところが良いですね。
PHPのコードブロックが<?php
を入れないと有効にならないのはあれですが、Tumblrでは一切指定できなかったのでエンジニア的には結構嬉しいです。