目次
ブログサイトにAstroを選んだ理由 ― WordPressだけが選択肢じゃない
Web制作の相談を受けると、「ブログを作りたいのですが、WordPressで構築してもらえますか」と聞かれることがあります。WordPressは世界中で使われている実績のあるCMSですし、その選択自体は間違いではありません。ただ、すべてのサイトにWordPressが最適かというと、そうとも限りません。
このサイトのブログはAstro(アストロ)という静的サイトジェネレーターで構築しています。この記事では、なぜWordPressではなくAstroを選んだのか、そもそもAstroとは何なのかを、技術者ではない方にもわかるように書いてみます。
WordPressが「当たり前」になっている背景
WordPressはWebサイト全体の40%以上で使われているといわれており、ブログやコーポレートサイトを作るときの第一候補として挙がることが多いです。管理画面からブラウザ上で記事を書けること、テーマやプラグインが豊富なこと、情報が多く制作会社が対応しやすいことなどが理由です。
一方で、以前「WebサイトにWordPressを導入すべきかどうかを決めるポイント」という記事でも触れたとおり、WordPressにはセキュリティリスクや保守コストといった課題もあります。更新頻度が低いサイトや、ブログの執筆者が限られているサイトでは、WordPressの持つ機能の大半を使わないまま、リスクと維持コストだけを抱えるケースも少なくありません。
「ブログ=WordPress」という固定観念を一度外してみると、別の選択肢が見えてきます。
静的サイトという考え方
Webサイトには大きく分けて動的サイトと静的サイトの2種類があります。
動的サイトは、アクセスがあるたびにサーバー上でプログラムが動き、データベースから情報を取り出してページを生成します。WordPressはこの仕組みです。管理画面から記事を投稿すると、閲覧者がアクセスしたタイミングでデータベースから記事データを取得し、HTMLを組み立てて返します。
静的サイトは、あらかじめ完成されたHTMLファイルをそのまま配信します。サーバー上でプログラムを動かす必要がなく、データベースも使いません。ファイルを置いておくだけなので、表示速度が速く、セキュリティリスクも低く、サーバーの運用コストも抑えられます。
「静的サイト」と聞くと、昔ながらの手作りHTMLサイトを想像するかもしれません。しかし、現在は静的サイトジェネレーター(SSG)と呼ばれるツールを使うことで、テンプレートやコンポーネントを活用した効率的な開発ができます。記事はMarkdownというシンプルな書式で書き、ビルド(変換処理)を実行するとHTMLファイルが自動生成される仕組みです。
Astroとは
Astroは2021年に登場した比較的新しい静的サイトジェネレーターです。コンテンツ中心のWebサイト(ブログ、コーポレートサイト、ドキュメントサイトなど)に特化して設計されています。
同じカテゴリのツールとしてはGatsby、Hugo、Next.js、Nuxtなどがありますが、Astroには他のツールとは異なるいくつかの特徴があります。
デフォルトでJavaScriptを送らない
多くのフレームワークは、ページを表示するためにブラウザ側でJavaScriptを実行します。Astroは逆のアプローチを取っていて、基本的にJavaScriptをブラウザに送りません。HTMLとCSSだけで構成されたページを生成するため、表示が非常に高速です。
お問い合わせフォームのように操作が必要な部分だけ、ピンポイントでJavaScriptを読み込む仕組み(アイランドアーキテクチャと呼ばれています)になっています。ページ全体を重くすることなく、必要な箇所だけインタラクティブにできるのは合理的な設計だと思います。
好きなUIライブラリを混在できる
React、Vue、Svelteといった異なるUIライブラリのコンポーネントを、ひとつのプロジェクト内で混在させて使えます。実務ではあまり混在させることはありませんが、既存の資産を活かせるという点で選択肢の幅が広がります。
コンテンツコレクション
ブログ記事のようなコンテンツを管理するための仕組みが標準で用意されています。Markdownファイルに書いたメタ情報(タイトル、日付、カテゴリなど)をスキーマで定義してバリデーションできるため、記事のフォーマットにばらつきが出にくく、管理しやすくなります。
このサイトでAstroを選んだ理由
更新頻度と運用体制
このサイトのブログは私ひとりで執筆しています。更新頻度も月に数回程度です。わざわざデータベースを持ち、サーバーサイドのプログラムを動かし、管理画面を用意する必要性がありませんでした。
Markdownでテキストエディタから記事を書き、Gitでバージョン管理し、プッシュすれば自動でデプロイされる。この流れは開発者にとっては自然なワークフローで、余計な管理画面を経由するよりもむしろ効率的です。
表示速度
静的HTMLを配信するだけなので、CDN(コンテンツ配信ネットワーク)との相性がよく、世界中どこからアクセスしても高速に表示されます。WordPressでも各種キャッシュプラグインを導入すれば速度は改善できますが、それ自体が追加の設定・保守対象になります。Astroならそもそもキャッシュの仕組みを考える必要がほとんどありません。
セキュリティ
WordPressはその普及率の高さゆえに攻撃対象になりやすく、本体やプラグインの脆弱性を突いた攻撃が定期的に報告されています。静的サイトにはサーバーサイドのプログラムもデータベースもないため、そもそも攻撃の対象になる面が極端に少ないです。
お問い合わせフォームのようにサーバー側の処理が必要な部分は、AWS Lambdaのようなサーバーレス関数で個別に対応しています。攻撃面を最小限に保ちながら、必要な機能だけを追加できるのは静的サイトの利点です。
運用コスト
WordPressを運用するにはPHPとMySQLが動くサーバーが必要です。レンタルサーバーであれば月額1,000〜3,000円程度、マネージドホスティングならそれ以上のコストがかかります。
静的サイトの場合、Amazon S3やCloudflare Pagesのようなサービスにファイルを置くだけで済むため、ホスティングコストは月数十円〜数百円程度に抑えられます。このサイトも実際にそのくらいのコストで運用しています。
誰にでもAstroを勧めるわけではない
ここまでAstroの利点を書いてきましたが、すべてのケースでWordPressより優れているわけではありません。
Astroでブログを運用するには、Markdownの書き方やGitの基本操作を知っている必要があります。管理画面はないので、ブラウザから記事を投稿したい場合や、技術に詳しくない担当者が更新する場合にはWordPressのほうが適しています。
また、ECサイトや会員サイトのようにデータベースと密に連携する機能が必要な場合も、静的サイトジェネレーターでは対応が難しくなります。
整理すると、以下のような判断基準になります。
| 条件 | 向いている選択肢 |
|---|---|
| 更新担当者がエンジニアではない | WordPress |
| ブラウザから記事を投稿したい | WordPress |
| プラグインで機能を追加したい | WordPress |
| 更新頻度が低く、執筆者が限られている | Astro / 静的サイト |
| 表示速度とセキュリティを重視する | Astro / 静的サイト |
| サーバーの保守コストを抑えたい | Astro / 静的サイト |
| 開発者が自分のワークフローで運用したい | Astro / 静的サイト |
さいごに
「ブログを作るならWordPress」という選択は今でも有力ですし、多くのケースではそれで問題ありません。ただ、WordPressが唯一の選択肢ではないことも知っておくと、サイトの目的や運用体制に合わせた判断ができるようになります。
このサイト自体が、WordPressを使わずにAstroで構築・運用しているひとつの実例です。もしブログやコーポレートサイトの構築を検討していて、WordPressの保守やセキュリティに負担を感じているなら、静的サイトという選択肢も検討してみてください。
関連記事
WordPressのクエリを正しく扱う ― pre_get_postsの仕組みと使い分け
WordPressのメインクエリを安全にカスタマイズするpre_get_postsの仕組みと使い方を解説します。query_postsが非推奨とされる理由や、WP_Queryとの使い分けなど、WordPress開発で押さえておきたいクエリの基本を整理します。
WebサイトにWordPressを導入すべきかどうかを決めるポイント
WordPressの導入を検討している企業や個人事業主向けに、その必要性を判断するためのポイントを解説します。更新頻度、セキュリティリスク、運用コストなどを踏まえ、WordPress以外の選択肢もあわせて紹介します。
WordPressのパーマリンクをコードでカスタマイズする方法
WordPressのパーマリンク(URL構造)を管理画面の設定だけでなく、コードで柔軟にカスタマイズする方法を解説します。投稿タイプ別のURLプレフィックス追加やカスタム投稿タイプのスラッグ変更など、実務でよくあるケースをコード例とともに紹介します。