
サーバ代0円で独自ドメインのブログを作る|Astro×Cloudflare Pages完全ガイド
「ブログを始めたいけど、レンタルサーバに毎月1,000円払うのはちょっと…」
そんな人に向けて、サーバ代0円・ドメイン代だけでブログを運営する方法を紹介します。このブログ自体も、まさにこの方法で作っています。
結論:かかるのはドメイン代だけ
使うのは次の3つです。
- Astro:記事を Markdown で書くと、軽いHTMLサイトにしてくれるツール(無料)
- GitHub:記事やコードの置き場所(無料)
- Cloudflare Pages:サイトを世界中に配信してくれるホスティング(無料)
| 項目 | 費用 |
|---|---|
| サーバ(Cloudflare Pages) | 0円 |
| SSL証明書(https化) | 0円(自動) |
| CDN・転送量 | 0円(静的ファイルは無制限) |
| 独自ドメイン | 年1,500〜2,000円前後(.com の場合) |
レンタルサーバなら年間で1万円以上かかることも多いので、毎年その差額が浮く計算です。
WordPressとどっちがいい?
正直に言うと、向き・不向きがあります。
| Astro + Cloudflare Pages | WordPress + レンタルサーバ | |
|---|---|---|
| 月額費用 | 0円 | 1,000円前後〜 |
| 表示速度 | 非常に速い(静的HTML) | テーマ・プラグイン次第 |
| セキュリティ | 攻撃される管理画面やPHPがない | 更新を怠ると狙われやすい |
| 記事の書き方 | Markdown をエディタで書いて push | ブラウザの管理画面で書く |
| デザイン変更 | HTML/CSS を触る必要あり | テーマを選ぶだけ |
| プラグイン | なし(自分で作る) | 豊富 |
ターミナルや Git に抵抗がない人、または「これを機に覚えたい」人には Astro がおすすめです。逆に、コードは一切触りたくないなら WordPress のほうが幸せになれます。
Cloudflare Pages 無料プランの制限
個人ブログならまず困らない範囲です。
| 項目 | 無料プランの上限 |
|---|---|
| ビルド回数 | 月500回 |
| 同時ビルド | 1件 |
| ビルド時間 | 1回20分まで |
| ファイル数 | 1サイト20,000ファイル |
| ファイルサイズ | 1ファイル25MiB |
| 独自ドメイン | 1プロジェクト100個 |
1日10回記事を更新しても月300回なので、ビルド回数を気にすることはほぼありません。画像は1枚25MiBまでなので、動画を直接置くのは避けましょう(YouTube 埋め込みがおすすめ)。
作り方の全体像
- パソコンに Node.js を入れる
- Astro でブログのひな形を作る
- GitHub にアップロードする
- Cloudflare Pages と GitHub をつなぐ
- 独自ドメインを設定する
順番に見ていきます。
手順1:Node.js をインストールする
Node.js 公式サイト から LTS版 をインストールします。インストール後、ターミナル(Windows なら PowerShell)で確認します。
node -v
# v22.x.x 以上ならOK
Astro の最新版は新しめの Node.js を要求するので、古いバージョンが入っている場合は入れ直してください。
手順2:Astro でブログを作る
公式のブログ用テンプレートを使えば、記事一覧・RSS・サイトマップが最初から揃っています。
npm create astro@latest my-blog -- --template blog
cd my-blog
npm run dev
ブラウザで http://localhost:4321 を開くと、ブログが表示されます。
記事は src/content/blog/ に Markdown ファイルを置くだけです。
---
title: '初めての記事'
description: '検索結果に表示される説明文'
pubDate: '2026-11-03'
---
ここに本文を書きます。
ファイル名がそのまま URL になります(first-post.md → /blog/first-post/)。ファイル名は英数字とハイフンにしておくと、URL が文字化けせずきれいです。
手順3:GitHub にアップロードする
GitHub で新しいリポジトリ(非公開でもOK)を作り、push します。
git init
git add .
git commit -m "first commit"
git branch -M main
git remote add origin https://github.com/<ユーザー名>/my-blog.git
git push -u origin main
node_modules や dist はテンプレートの .gitignore で除外されているので、そのまま push して大丈夫です。
手順4:Cloudflare Pages と連携する
Cloudflare のアカウント(無料)を作ったら、ダッシュボードで次の順に進みます。
- Workers & Pages を開く
- Create application → Pages → Connect to Git
- GitHub でログインし、先ほどのリポジトリを選ぶ
- Install & Authorize → Begin setup
ビルド設定はこう入力します。
| 項目 | 設定値 |
|---|---|
| Project name | 好きな名前(xxx.pages.dev の xxx になる) |
| Production branch | main |
| Framework preset | Astro |
| Build command | npm run build |
| Build output directory | dist |
Save and Deploy を押すと1〜2分でビルドが終わり、https://xxx.pages.dev でサイトが公開されます。
これ以降は、記事を書いて git push するだけで自動的にサイトが更新されます。FTP でファイルをアップロードする必要はありません。
手順5:独自ドメインを設定する
プロジェクトの Custom domains → Set up a custom domain からドメインを入力します。ここで、ドメインの DNS をどこで管理しているかによって手順が変わります。
DNS を Cloudflare で管理している場合
ドメインを入力するだけで、DNS レコードと SSL 証明書が自動で設定されます。いちばんラクです。
DNS を別の会社(お名前.com など)で管理している場合
blog.example.comのようなサブドメインなら、今の DNS に CNAME レコード(blog→xxx.pages.dev)を追加すればOKexample.comのようなルートドメインで使いたいなら、ネームサーバを Cloudflare に移す必要があります
これからドメインを取るなら、最初から Cloudflare Registrar で取得すると DNS の移行作業がいりません。Cloudflare Registrar は原価に近い価格で、更新料が急に上がらないのも魅力です。
つまずきやすいポイント
ビルドが Node.js のバージョンで失敗する
Cloudflare 側の Node.js が古いと、ビルドが失敗することがあります。プロジェクトの Settings → Environment variables に次を追加して、再デプロイしてください。
| 変数名 | 値 |
|---|---|
NODE_VERSION |
22 |
サイトマップや canonical の URL が example.com のまま
astro.config.mjs の site を自分のドメインに書き換えるのを忘れがちです。これを忘れると、検索エンジンに正しい URL が伝わりません。
export default defineConfig({
site: 'https://example.com', // ← 自分のドメインに変更
});
日本語のファイル名で URL が長くなる
サーバ比較.md のように日本語のファイル名にすると、URL がエンコードされて %E3%82%B5... のように長くなります。SNS で共有したときに見栄えが悪いので、英数字にしておきましょう。
公開後にやっておきたいこと
- Google Search Console に登録:
https://自分のドメイン/sitemap-index.xmlを送信する - Cloudflare Web Analytics を有効化:無料で使えて、Cookie を使わないアクセス解析
- プライバシーポリシーと運営者情報のページを用意:アフィリエイトや広告の審査で見られます
まとめ
- Astro + GitHub + Cloudflare Pages なら、サーバ代0円でブログを運営できる
- かかるのはドメイン代だけ(年1,500〜2,000円前後)
- 記事は Markdown で書いて
git pushするだけで公開される - コードを触りたくない人は WordPress、触れる人・覚えたい人は Astro