Blogger から Jekyll (Github pages) に移行したときのメモ。

Bloggerからの取り込み

Blogger からは設定→その他→ブログツール→ブログをエクスポート Atom 形式でブログのデータが取り出せる

あとは jekyll-import を使って ./_posts/ フォルダへインポートできる

% jekyll-import blogger --source path/to/blog-08-31-2014.xml

と思ったが、そもそも jekyll-import が blogger 対応していなかったので それに対応させるため blogger importer の開発が必要になってしまった。

Blogger importerのプルリクエストがマージされたならば、 上に示したようなコマンドを叩くだけでインポートできるようになるはずだ。 (それまでは gem を自分でビルドしてインストールするなどすること。)

取り込まれたので詳細は公式のドキュメントを参照すること。

転居元の施策

Blogger には、独自ドメインを取っているときは打開策がいくつかありそうだが、 そうじゃない場合は下記のふたつのいずれかで転居先を示すしかないようだ。

  • meta redirect
  • 転居先をページ内に表示

かつて auto redirect で失敗 したことがあった経緯などを考えて、安直に後者とした。

具体的には HTML/JavaScript のウィジットで下記を表示するようにした。

This blog has moved to github page (<a href="http://cat-in-136.github.io/">http://cat-in-136.github.io/</a>).
<script>
(function (){
  var oLink = document.querySelector("link[rel=canonical]");
  if (oLink) {
    var canoUrl = oLink.getAttribute("href");
    if (canoUrl != "http://cat-in-136.github.io/") {
      document.writeln("<br />" + "The content would be available at new blog site".link(canoUrl));
    }
  }
})();
</script>

なお、link[rel=canonical]は、下記のような JavaScript で生成するコードを入れている。

<script>
document.writeln("<link href='" + location.href.replace(location.host + "/", "cat-in-136.github.io/") +"' rel='canonical'/>");
</script>

このようなことをするため記事のパーマリンクは Blogger と合わせた /:year/:month/:title.html としている。 そうすることで、上に示したように、ドメインを記事ページのURLに対してドメイン名を変えるだけの処理で済む。

コンテンツのコピーが共存すると Google によってコピーサイトペナルティを 移転先が喰らいやすいというリスクはあるが、 ここは幸いにも過疎ブログなので失うものは極めて少ないので 細かいことは考えない。

と書いたものの2014-09-10現在、うまくいっているようである。 すなわち JavaScript で生成された link[rel=canonical] を Google のクローラはうまくフォローしている模様。

より link[rel=canonical] をうまく追跡するために、Blogger に入れているテンプレートを 下記の通りとし、記事ページ以外についてもそれなりに対応するページヘの link[rel=canonical] を入れるようにした。

<b:if cond='data:blog.pageType == &quot;index&quot;'>
  <link href='http://cat-in-136.github.io/' rel='canonical'/>
  <meta content='http://cat-in-136.github.io/' property='og:url'/>
</b:if>
<b:if cond='data:blog.pageType == &quot;archive&quot;'>
  <link href='http://cat-in-136.github.io/archive.html' rel='canonical'/>
  <meta content='http://cat-in-136.github.io/archive.html' property='og:url'/>
</b:if>
<b:if cond='data:blog.pageType == &quot;item&quot;'>
  <script>
    document.writeln(&quot;<link href='&quot; + location.href.replace(location.host + &quot;/&quot;, &quot;cat-in-136.github.io/&quot;) +&quot;' rel='canonical'/>&quot;);
    document.writeln(&quot;<meta content='&quot; + location.href.replace(location.host + &quot;/&quot;, &quot;cat-in-136.github.io/&quot;) +&quot;' property='og:url'/>&quot;);
  </script>

  <!-- snip -->
</b:if>

DISQUS

コメント欄の移行は disqus に移行した。 Blogger からのインポートした後にドメインを cat-in-136.blogspot.comcat-in-136.github.io と変えただけ。

記事のパーマリンクを Blogger と合わせた /:year/:month/:title.html としたお陰でこれだけでよい。

なお、本ブログのソースコードでパット見トラッキングコードの類はまったく ないように見えると思うが、 disqus ウィジットの iframe 中からの読み込みで ssl.google-analysis.com への接続がある。 (しかし disqus のトラッキングコードなので筆者はトラッキングの傾向は 見れない)

disqus ウィジェットについても Settings->Advanced -> "Enable anonymous cookie targeting for your site's visitors." のチェックを外したので、 ssl.google-analysis.com への接続はなくった。