2025/12/28

さらばWordPress!Astro + Cloudflare Pagesへ移行して手に入れた「シンプル」という贅沢


ついに、このブログのホスティング基盤のリプレースが完了しました。 これまで約10年間お世話になったWordPressとレンタルサーバーを卒業し、Astro + Cloudflare Pages というモダンな構成に生まれ変わりました。

今回の移行は、単なるツールの変更ではなく「ブログをどう持ちたいか」という思想の再定義でもありました。備忘録を兼ねて、そのプロセスを綴ります。

新旧の構成比較

今回の移行で、システムの裏側は以下のように劇的に変わりました。

項目旧構成(WordPress)新構成(Astro)
基盤さくらレンタルサーバーCloudflare Pages
エンジンPHP / MySQLAstro (SSG)
記事管理CMS内のDB(HTML)ローカルのマークダウンファイル
デプロイ管理画面から保存GitHubへPushで自動デプロイ
セキュリティプラグインやPHPの随時更新が必要静的ファイルのみのため、ほぼ不要

なぜ、いま「個人ブログ」なのか?

Qiita、Zenn、note……。素晴らしいプラットフォームがいくらでもある時代に、なぜわざわざ自前でブログサイトを作るのか。

答えはシンプルです。「めちゃくちゃ楽しいから」

静的サイト生成(SSG)の仕組みを理解し、DNSの設定を紐解き、OGPの一つひとつを自分で定義する。Webサイトに関する様々な知識が身につくこのプロセスは、エンジニアとしての醍醐味そのものです。

プラットフォームに乗っかるだけでは味わえない、この「すべてをコントロールしている感覚」こそが、エンジニアにとっての醍醐味だと改めて感じました。

なぜWordPressをやめたのか?

これまで使い続けてきたWordPressは10年という長い年月を運用している中で、いくつかの限界を迎えていました。

  1. とにかく重い: サーバーサイドでPHPが動き、データベースを叩く。多機能ゆえの「もっさり感」が気になり始めていました。
  2. アップデート地獄: WordPress本体、テーマ、プラグイン、そしてPHPのバージョンアップ。脆弱性対策のために管理画面を開くたびに更新ボタンを押す日々に疲れました。
  3. 複雑化・肥大化した基盤: 年に数記事しか投稿しない小規模なブログには、WordPressという基盤はあまりに巨大で複雑すぎました。

今回の移行ポリシー:徹底的な「シンプル」と「軽量」

今回のリプレースでは、これまでの「あれもこれも」を捨て、徹底的に削ぎ落とすことにしました。
目指したのは、 「環境が変わってもテキストさえあれば動く」 という究極のポータビリティです。

  • サーバーサイド処理を捨てる: コメント機能などは思い切って廃止。動的な要素をなくし、完全な静的サイトへ。
  • プラグイン未使用: 便利なプラグインに頼らず、Astroの標準機能とわずかなカスタマイズだけで構築。
  • メンテナンスフリー: セキュリティホールになりがちなPHPやデータベースを排除し、GitHubにプッシュすればデプロイされる「壊れない」環境へ。
  • 次の10年を耐えうるポータビリティ: 記事を特定のCMSに閉じ込めず、マークダウンにすることで、環境が変わっても生き続ける構成にしました。
  • 運用コストの最小化: 最大の副次的効果として、レンタルサーバーの契約が不要になりました。Cloudflare Pagesの無料枠を活用することで、今後はドメイン代以外の維持費を一切かけずに運用し続けることが可能です。

結果として、驚くほど爆速で、管理が楽なサイトが出来上がりました。

移行のリアル:技術は簡単、中身は地獄

「環境構築」や「デプロイ」自体は驚くほど簡単でした。Cloudflare Pagesの使い勝手の良さには、正直驚かされました。
しかし、本当の戦いはそこからでした。

1. 記事データのマークダウン化

WordPress固有のHTMLタグが入り混じった記事データを、すべてマークダウンに変換しました。今後のメンテナンス性を考え、過去の記事もすべて「プレーンなテキスト」として整えました。これでもう、特定のプラットフォームに縛られることはありません。

2. 画像移行の壁

最も大変だったのが画像です。WordPressのメディアライブラリに散らばった画像をダウンロードし、リネームして、Astroのフォルダ構造へ再配置する。これは手動では無理だと判断し、CodexによるPythonスクリプトなどで画像の取得とリネーム、パスの書き換えを自動化して乗り越えました。

3. DNSとリダイレクトの罠

地味に苦労したのが、ドメイン移行時のDNS設定です。メールサーバー(さくらインターネット)を維持しつつ、WebだけをCloudflareに向ける設定や、WordPress時代のURLパラメーター形式(?p=123)をJavaScriptで救済してリダイレクトさせる仕組みなど、一つひとつパズルを解くような作業でした。

最後に:移行を終えて

リプレースを終えた今、自分の手で一つひとつのタグを書き込んだサイトが https://mio.yokohama で動いているのを見て、格別の満足感を感じています。

「中身が見える」ことの安心感。 そして、クリックした瞬間にページが表示される快感。

便利さの裏側でブラックボックス化しがちなWebの技術を、もう一度自分の手に取り戻す。そんな体験をさせてくれた今回のリプレースは、エンジニアとしてのモチベーションを大きく高めてくれました。

これからはこの軽量なブログで、もっと自由に発信していこうと思います。