20年分の旧ブログをAIで復活させた話 — Movable TypeからWordPressへ

こんにちは、Keiです。

今回は、長いあいだ眠っていた旧ブログの記事を WordPress に移行した話を書きます。「移行」と言うと聞こえはいいのですが、実態は20年近く放置していた日記の発掘作業です。

2003年から続く、自宅サーバーの歴史

自宅サーバーを始めたのは2003年、大学生のころです。情報系の学科にいたこともあり、「自分でサーバーを立てて運用してみたい」という気持ちは自然に湧いてきました。当時はまだブロードバンドが普及し始めた時期で、自宅に固定IPを引いてLinuxを動かすこと自体が、一種の達成感のある趣味でした。

ブログを書き始めたのは2005年ごろ。Movable Type というブログエンジンを使っていました。内容は技術ネタや日常の記録が混在した、完全な日記スタイルです。大学のゼミのこと、バイトのこと、買ったばかりのノートPCのこと。読み返すと、当時の自分の解像度でそのまま切り取られた断片が並んでいます。

15年間、眠っていた記事たち

社会人になっても数年は書き続けていましたが、東京での仕事が本格化するにつれ、更新は止まっていきました。毎日終電かタクシーで帰る生活では、ブログを書く余裕などありません。「また落ち着いたら書こう」と思っているうちに、気づけば15年ほどが経っていました。

サーバー自体は動かし続けていたので、旧ブログのデータは消えずに残っていました。ただ、Movable Type のシステムはほぼ触らない状態で、記事は外から見れば公開されているものの、実質的には誰も辿り着かない場所に静かに置かれていた、という状態です。

「いつか整理したい」とは思っていました。でも、何百件もの記事を手作業で移すのは現実的ではないし、スクレイピングスクリプトをゼロから書くのも億劫でした。そうして、「いつか」は何年も先送りになっていた。こういう「着手コストだけが高くて、後回しにしてきた作業」、思い当たる人も多いのではないでしょうか。

「移行しよう」と思い立った理由

今年、自宅サーバーのサイト全体を WordPress に移行しました。その流れで「旧ブログの記事も移せないか」と思い始めたのが、今回の作業のきっかけです。

もう一つ、正直な理由を言うと、Claude Code の存在が大きかったです。Claude Code は、ターミナル上で動く AI コーディングアシスタントです。「こういうことをしたい」と日本語で伝えると、スクリプトを書いてそのまま実行するところまでやってくれます。コードを自分で書く必要はありません。

以前は「更新が面倒くさい」という気持ちが、ブログを止めた一因でもありました。記事を書いて、HTMLを整えて、サーバーにアップロードして——という手順が地味にハードルになっていた。それが今は、Claude Code に話しかけるだけで投稿まで完結します。「また書けるかもしれない」という気持ちになったのは、この環境が整ってからです。

であれば、過去の記事も一緒に連れてきたい。そう思うのは自然な流れでした。

「旧ブログを WordPress に移行したい」の一言で動いた

Claude Code に伝えたのは、ほぼそれだけです。

「旧ブログが https://h.keikun.info/~blog/kei/ にある。記事を全部 WordPress に移行したい」

するとClaude Code は、移行に必要な処理を順番に考えて、Node.js スクリプトを生成しました。

  • 旧ブログの月別アーカイブページを巡回して、記事の URL を全件収集
  • 各記事ページからタイトル・本文・投稿日・カテゴリを抽出
  • 記事内の画像を WordPress のメディアライブラリにアップロードして URL を差し替え
  • WordPress REST API 経由で、元の投稿日時を保持したまま記事を登録

自分がやったことは内容を確認して「進めて」と伝えることだけです。スクリプトの設計から実行まで、Claude Code が一気に処理しました。

移行できた記事は 287 件。2005年から2009年にかけて書いた記事が、元の投稿日時のまま WordPress に並びました。

一つ笑えたのが、文字コードの変換がうまくいかなかった箇所で「マジカルバナナ」が「マグロバナナ」になっていたことです。意味はまったく変わりますが、見た瞬間に思わず声が出ました。技術的なトラブルが笑いで終わったのは、ありがたかったです。

記事の移植と並行して、静的 HTML と CSS で組んでいた元のサイトレイアウトを WordPress テーマとして再現する作業も行いました。こちらのほうが正直、記事の移植よりレベルが高い作業です。WordPress の template hierarchy や functions.php の設計など、自分一人でゼロから手を動かすには腰が重い領域でした。それでも Claude Code との対話で形になっていきました。

まとめ

「大変そうだな」と思っていた作業が、あっさり終わってしまいました。鶴の一声、という表現が近いかもしれません。287件の記事が動いた瞬間、スカッとした感覚があったのは確かです。

20年前に自宅サーバーを立ち上げて、15年以上放置していたブログが、今こうして WordPress の管理画面に並んでいます。当時の自分が書いた文章を、今の自分が同じサーバーで管理している。それ自体が、なんとなく感慨深い。

Claude Code が面白いのは、「やりたいことはあるけど手が動かない」という状況を崩してくれる点だと思います。スクリプトを書く技術がなくても、何をしたいかが言葉にできれば動き始めます。今回の移行作業がその一例でした。古いデータが眠っている、整理したいけど手をつけられていない——そういう人にとって、試してみる価値はあるかもしれません。

そして移行が終わった後も、Claude Code との付き合いは続いています。記事を書く作業そのものも、対話を通じてずいぶん変わってきました。そのあたりの話は、また別の機会に書くつもりです。

— Kei