「静的サイトを無料で公開したいけれど、プライベートリポジトリのままにしておきたい」——そんな悩みを抱えている方は意外と多いのではないでしょうか。この記事では、Cloudflare Pagesの基本的な特徴から、筆者が実際にAI・個人開発ツールの紹介サイトを公開するまでの手順、つまずいた点、そしてGitHub Pagesなど類似ツールとの違いまでをまとめています。

Cloudflareとは?

Cloudflare(クラウドフレア)は、ウェブサイトのパフォーマンスとセキュリティを向上させるためのサービスを提供するアメリカの企業が運営するプラットフォームです。もともとはCDN(コンテンツデリバリーネットワーク)やDDoS対策サービスで知られていましたが、現在はDNS管理、Webアプリケーションファイアウォール、そして静的サイトホスティングサービス「Cloudflare Pages」まで、個人から大規模な企業まで幅広く使われるインフラサービスを展開しています。

Cloudflare Pagesは、GitHubやGitLabのリポジトリと連携して静的サイトを自動でビルド・デプロイできるホスティングサービスです。個人開発者やブログ運営者でも気軽に使い始められる設計になっています。

Cloudflare Pagesでできること・特徴

  • 無料でカスタムサブドメインを取得できる:執筆時点では、*.pages.devというサブドメインが無料で付与されます。独自ドメインへの切り替えも可能です。詳細な無料枠の上限は公式サイトでご確認ください。
  • GitHubの非公開リポジトリにも対応:GitHub Pagesの無料プランは公開リポジトリからのみ静的サイトを公開できますが、Cloudflare Pagesはプライベートリポジトリからでもビルド・公開できます(執筆時点)。
  • pushするだけで自動デプロイ:対象ブランチにpushすると、自動でビルドが走りサイトに反映されます。CI/CDの設定を別途用意する必要がありません。
  • Node.js以外のビルドにも対応:PythonやRubyなど複数の言語・ランタイムをビルドコマンドで呼び出す使い方ができます。
  • Pages Functionsでサーバーレス処理を追加できる:静的サイトにAPIエンドポイントに近い機能を持たせたい場合、Pages Functionsを使うという方法があります。

実際に使ってみた:登録からサイト公開まで

筆者は2026年10月20日、AI・個人開発ツールの紹介記事を置くサイトをCloudflare Pagesで公開しました。サイト自体はPython(Jinja2とMarkdown)で静的なHTMLを書き出す自作スクリプトで構築しており、Node.jsは使っていません。ソースはGitHubのプライベートリポジトリで管理しています。

大まかな手順

  • Cloudflareのアカウントを作成し、ダッシュボードから「Workers & Pages」→「Pages」を選択する(画面の名前は執筆時点のもの)
  • 「GitHubに接続」からリポジトリを選択し、ブランチ・ビルド設定を入力する
  • ルートディレクトリ、ビルドコマンド、出力先ディレクトリを指定する
  • 「保存してデプロイ」を押すと最初のビルドが始まる

筆者の設定は次の通りです。ルートディレクトリはサイトのフォルダ、ビルドコマンドはpip install -r requirements.txt && python3 build.py、出力先はdistフォルダです。

最初のビルドでつまずいた点

最初のビルドは、リポジトリをCloneする段階で失敗しました。原因を調べたところ、.gitmodulesファイルが存在しないにもかかわらず、Gitがサブモジュール(gitlink)として認識しているフォルダが2つ含まれていたことでした。その2つをGitの追跡対象から外したところ、問題なくビルドが通りました。同様の構成を試みる方は、別のリポジトリを入れ子にする際にgitlinkにならないよう注意してください。

ビルドが通ってからは、mainブランチにpushするたびに自動でビルドと公開が走ります。筆者が確認した3回では、pushから反映まで30秒〜1分半ほどでした。

個人開発での活用例

筆者はリンクが押された回数を計測したかったため、Pages Functions(/go/を経由させる仕組み)を使ってクリック数を記録するようにしました。静的サイト単体ではできないこうした軽量なサーバーレス処理を追加できる点は、個人開発のサイト運営に便利な使い方のひとつです。また、問い合わせ窓口はメールアドレスを公開せず、Googleフォームへのリンクにまとめています。

デメリット・注意点

  • Git操作に一定の知識が必要:リポジトリとの連携が前提のため、GitやGitHubの基本操作がわからないと最初の設定でつまずく可能性があります。
  • ビルドログが英語:エラーが出たときのログは基本的に英語です。エラー文をそのまま検索すれば手がかりが見つかることが多いですが、英語に抵抗がある方は少し苦労するかもしれません。
  • gitlinkには要注意:前述のとおり、不意に入れ子のリポジトリ状態になっているとビルドが失敗します。
  • サービスの仕様は変わりうる:無料枠のビルド回数や転送量の上限、対応ランタイムのバージョンなどは変更される可能性があります。最新情報は必ず公式サイトでご確認ください。

似たツールとの比較

静的サイトのホスティングサービスとして、GitHub PagesとNetlifyが代表的な選択肢です。

GitHub Pagesは、GitHubのエコシステムに完全に組み込まれているため操作がシンプルです。ただし、執筆時点では無料プランは公開リポジトリからのみ公開でき、プライベートリポジトリを使いたい場合は有料プランが必要です。ソースコードを公開できる用途であればGitHub Pagesはシンプルで扱いやすい選択肢です。

Netlifyは直感的なUIと豊富なプラグインが特徴で、フォーム機能なども内蔵しています。小〜中規模のプロジェクトで手早くサイトを立ち上げたい方に向いています。

Cloudflare Pagesが向いているのは、プライベートリポジトリを使いたい、ビルドコマンドをカスタマイズしたい、Pages Functionsで軽量なサーバーレス処理も一緒に置きたい、といった方です。

よくある質問(FAQ)

Q: Cloudflare Pagesは無料で使えますか?

A: 執筆時点では、無料プランでも*.pages.devサブドメインでのサイト公開が可能です。無料枠にはビルド数や同時ビルド数などの制限があります。個人ブログや小規模なサイトであれば無料の範囲内で運用できるケースが多いですが、具体的な上限値は変更されることがありますので、始める前にCloudflare公式サイトで最新の料金ページをご確認ください。

Q: Cloudflare Pagesは初心者でも使えますか?

A: GitとGitHubの基本操作(リポジトリの作成・commit・push)ができれば、設定画面自体はそれほど複雑ではありません。ビルドコマンドや出力ディレクトリの指定が必要なため、自分のサイトがどのようにビルドされているかを把握しておく必要があります。つまずきやすい点としては、今回の筆者のようにgitlinkが混入している場合のビルドエラーや、ビルドコマンドのパス指定のミスなどがあります。エラーが出たときはCloudflareのビルドログをよく読み、エラー文で検索するのが近道です。

Q: Cloudflare Pagesの代わりになるツールは?

A: 代表的な代替ツールとして、GitHub PagesとNetlifyが挙げられます。GitHub Pagesは、ソースコードをオープンにできるプロジェクトやドキュメントサイトに向いています。Netlifyは、GUI操作を重視したい方やフォームなどの追加機能をすぐに使いたい方に適しています。一方、ソースをプライベートのままにしておきたい、またはPythonなど独自のビルドスクリプトを使いたいという方には、Cloudflare Pagesが選択肢として挙げられます。

まとめ

Cloudflare Pagesは、プライベートリポジトリから無料で静的サイトを公開できるホスティングサービスです。Pythonなど独自のビルドスクリプトにも対応しており、個人開発のサイト運営にも活用できます。最初のビルドではgitlinkなどのGit構成由来のエラーに注意が必要ですが、設定が通れば以降はpushするだけで自動デプロイされます。向き不向きや料金の詳細は執筆時点の情報をもとにしているため、最新情報は必ず公式サイトでご確認のうえ、自分のプロジェクトに合うかどうかを判断してみてください。