ずっと前から「自分のサイト、もう少しなんとかしたいな」と思っていた。WordPressオンリーで動かしていた頃は、テーマをいじってもなんとなくモッサリしていて、Lighthouseを開くのが少し怖い、そんな状態だった。

そこで思い切って、フロントエンドをAstro、コンテンツ管理をWordPress(ヘッドレスCMS化)という構成に切り替えてみた。よくある構成だけれど、自分でゼロから組むのは初めて。結論から言うと、表示速度は明らかに上がって満足している。一方で、運用面では「うーん…」とうなる場面も多かった。今回はその顛末を、技術解説というよりは体験談として書いてみる。

なぜAstro + WordPressにしたのか

選んだ理由は、わりと単純だ。

  • 記事を書く体験はWordPressのままがいい。ブロックエディタや管理画面に慣れているし、画像のアップロードもラク。
  • 表示側はもっと速くしたい。静的に書き出せるなら、それに越したことはない。
  • JavaScriptを盛らない構成にしたい。Astroの「必要なところだけハイドレートする」思想が好きだった。

要は「書く側は慣れたWordPress、見せる側はAstroの軽さで」という、いいとこ取りを狙ったわけだ。理屈の上では完璧。理屈の上では。

AIに助けてもらいながら作る

正直に告白すると、自分はバリバリのフロントエンドエンジニアではない。Astroもちゃんと触るのは初めてで、WordPress REST APIまわりも昔ちょっと触った程度の記憶しかなかった。

そこで頼ったのがClaudeとGemini。並行して使い分けた。

Claudeにはコードの設計や、エラーが出たときの原因切り分けを相談することが多かった。長めのコードを貼り付けて「ここの構造、もっとシンプルにできない?」と聞くと、過不足のないリファクタ案が返ってくる。文章での説明が丁寧で、なぜそうするのかが腑に落ちる感じがあった。

Geminiは、別の視点が欲しいときや、ちょっとした調べ物のときに重宝した。同じ質問を投げて、両者の回答を見比べることもよくやった。違う角度の指摘をもらえることがあって、これは一人で詰まっているときに本当にありがたかった。

「AIに作ってもらった」と言うと語弊があるけれど、感覚としては深夜にずっと付き合ってくれる相談相手が二人いるみたいな感じだった。手は自分で動かす。でも詰まったときに壁打ちできる相手がいる。これは個人開発において、想像以上に大きい。

一人だと、しょうもないところで何時間も詰まって、そのまま心が折れてプロジェクトが塩漬けになる。あの「あ、もう今日はやめよう」という瞬間を、AIとの会話が何度も救ってくれた気がする。

APIで補助金情報を取得して記事化する仕組み

今回のサイトでもう一つやりたかったのが、外部APIから補助金情報を取得して、それをベースに記事を自動生成するという仕組み。

世の中の補助金は、種類も多いし、募集期間もコロコロ変わる。手動で追いかけるのは現実的じゃない。そこで、APIから情報を引っ張ってきて、AIに整形してもらい、WordPressに下書き状態で投稿する、というフローを組んだ。

最初に組み上がってブラウザで記事一覧を見たときは、ちょっと感動した。「あ、これ自分のサイトが勝手に育っていく感じがする」と。もちろん最終的には人間が目を通すし、公開判断もする。でも素材が常に最新の状態で揃っているというのは、書き手としてかなり楽だ。

ただし、これを動かすまでが地味に大変だった。APIのレスポンス形式は当然サービスごとに違うし、エラーハンドリングをちゃんとしないと、何かの拍子に変な記事が量産されかねない。AIに「こういうデータが来たらこう処理してほしい」と細かく指示しながら、少しずつ整えていった。ここでもClaudeとGeminiにはお世話になった。

表示速度はちゃんと速くなった

ここはシンプルに、嬉しかった点。

WordPressオンリー時代と比べて、体感ではっきり速い。トップページを開いた瞬間、文字と画像がスッと出る。ローディングを「待つ」感覚がほとんどない。

数値で厳密に計測したわけではないけれど、自分で毎日触っていて、その速さの違いはちゃんと感じる。スマホで開いてもキビキビ動くし、回線が弱い場所でもストレスが少ない。Astroにして本当に良かったと思える、一番分かりやすいご褒美だった。

ホスティングはGMO CLOUDのVPSを使っている。WordPress側もここで動かしていて、Astroのビルド成果物も同じサーバーから配信している。VPSなので自分で面倒を見る範囲は広いけれど、その分コストや構成の自由度に納得感がある。

……で、運用がしんどい

ここからが本題かもしれない。

正直に言うと、いちいち更新や変更を反映させるのが、本当に、本当に面倒だ。

WordPress側でちょっと記事を直す。誤字を一文字直す。それだけのことなのに、フロント側のAstroにその変更を反映させるには、ビルドを走らせて、デプロイして、キャッシュをどうにかして……というステップが挟まる。

これがもう、書いてくれる内容全部について発生する。

  • 記事のタイトルを少し変えたい → ビルド・デプロイ
  • カテゴリの順番を入れ替えたい → ビルド・デプロイ
  • 画像を差し替えたい → ビルド・デプロイ
  • 補助金APIから新しい情報が入ってきた → ビルド・デプロイ

WordPress時代は「保存」を押せばその瞬間に反映されていた。あの即時性は、改めて偉大だったのだなと痛感している。「書いたものがすぐ世に出る」という当たり前のことが、ヘッドレス構成では当たり前ではなくなる。

もちろん、自動化はしている。WordPress側で更新があったらWebhookでビルドを走らせる、という仕組みは組んだ。けれど、ビルドが終わるまでには時間がかかるし、その間に「あ、もう一箇所直したい」となるとさらに待ち時間が積み重なる。

特に最初の頃は、自分の変更がいつ反映されるのか分からなくて、ブラウザを何度もリロードしては「まだか…まだか…」とつぶやいていた。これは本当に、心にじわじわ来る種類のストレスだ。

それでも、また選ぶと思う

文句を散々書いたけれど、じゃあ元のWordPressオンリーに戻したいかと言われると、戻したくない。

表示速度の気持ちよさは、一度味わうと手放せない。サイトを開いて、スッと表示される。それだけのことが、自分のサイトへの愛着を地味に深めてくれる。あと、AstroとWordPressを分けたことで、フロントとコンテンツが疎結合になった安心感もある。仮に将来WordPressをやめても、フロントは生かせる。逆もまた然り。

そして何より、この構成で詰まったときにAIが伴走してくれるという前提が、自分の中でかなり大きくなっている。一人で全部抱えていた頃なら「もうWordPressでいいや」と諦めていたであろう局面を、ClaudeとGeminiに相談しながら乗り越えられた。AIなしでこの構成を一人でやれたかと聞かれると、正直怪しい。

まとめ ― 個人サイトと付き合うということ

Astro + WordPress + 外部API + AI伴走、というこの構成は、技術的には派手ではない。世の中にはもっと尖ったことをやっている人がたくさんいる。

ただ、自分のような「ちょっとコードは書けるけど専門家ではない」人間にとって、こういう構成が現実的に選べるようになったのは、間違いなくAIのおかげだと思う。詰まっても、聞ける相手がいる。それだけで、選択肢の幅が大きく広がる。

運用が面倒なのは、たぶんこれからも完全には解決しない。でも、面倒さと引き換えに得たもの(表示速度、構成の自由度、自動化の余地)は、それを差し引いてもプラスだと感じている。

個人サイトは、誰に頼まれて作るものでもない。だからこそ、自分が「これがいい」と思える構成を、自分で組み立てて、ときどき毒づきながら付き合っていくものなのかもしれない。

しばらくはこの構成で、引き続き育てていこうと思う。