本記事は生成AIと共同で執筆しています。事実関係は可能な範囲で公式ドキュメント等と照合していますが、誤りが含まれている可能性があります。重要な判断を行う前にご自身でも一次情報をご確認ください。
概要
大学・財団・自治体などの組織ドメイン(例: example.or.jp)のDNSは、組織側の既存プロバイダで管理されていることが多く、個々のプロジェクトのために「ネームサーバーをCloudflareに移してください」とは頼みづらいものです。
それでも、Cloudflare Pagesでホストしているサイトなら、組織側にCNAMEレコードを1本追加してもらうだけで、xxx.example.or.jp のようなサブドメインを無料枠で割り当てられます。ゾーン移管もネームサーバー変更も不要です。
本記事は、この構成が可能かどうかをCloudflare公式ドキュメントでファクトチェックした結果のまとめです(2026年7月時点)。あわせて、混同しやすい WorkersとPagesのカスタムドメイン仕様の違い(ここが罠)も整理します。
結論: 3つのパターンの可否
| パターン | 無料枠での可否 |
|---|---|
| ① サブドメインだけをCloudflareのゾーンとして登録する(Subdomain setup) | ❌ Enterpriseプラン限定 |
| ② ドメイン全体(apex)をCloudflareに移管する | ✅ 可能だが、組織の全DNSレコード移行 + ネームサーバー変更が必要で重い |
| ③ Cloudflare Pagesのカスタムドメイン + 外部DNSにCNAME 1本 | ✅ 可能(推奨) |
① Subdomain setupはEnterprise限定
Cloudflareには、apexドメインとは独立にサブドメインを別ゾーンとして管理する「Subdomain setup」という機能がありますが、プラン別の availability は Free / Pro / Business が No、Enterpriseのみ Yes です。「無料枠でサブドメインのゾーンだけ持ち込む」は不可能です。
③ Pagesの外部DNSカスタムドメインは公式サポート
Pages公式ドキュメントに明記されています。
If you do not want to point your nameservers to Cloudflare, you must create a custom CNAME record to use a subdomain with Cloudflare Pages.
(ネームサーバーをCloudflareに向けたくない場合、CNAMEレコードを作成することでサブドメインをCloudflare Pagesで使える)
ただしサブドメイン限定です。apexドメイン(example.or.jp そのもの)をPagesに割り当てるには、そのドメインがCloudflareアカウント上のゾーンであることが必須と明記されています。
手順
前提: サイトはCloudflare Pagesにデプロイ済み(<project>.pages.dev で稼働中)。
1. Cloudflare側: カスタムドメインを先に登録する
ダッシュボード → Workers & Pages → 対象プロジェクト → Custom domains → 「Set up a custom domain」で xxx.example.or.jp を追加します。ゾーンがCloudflare外にあるため「CNAMEレコードを追加してください」という指示が出て、検証待ち状態になります。
注意: 順序が重要です。公式ドキュメントに、ダッシュボードでの登録前にCNAMEだけ向けると名前解決に失敗し522エラーになると明記されています。必ずCloudflare側の登録を先に済ませてから、DNS管理者に依頼してください。
2. 組織側: CNAMEレコード1本の追加を依頼
DNS管理者への依頼内容はこれだけです。
xxx.example.or.jp. CNAME <project>.pages.dev.
レコードが引けるようになるとCloudflareが自動検証し、SSL証明書も自動発行・自動更新されます。反映はDNS伝播しだいで、通常は数分〜数時間です。
3. (事前確認)CAAレコードの有無
対象ドメインにCAAレコード(証明書発行元を制限するレコード)がある場合、Cloudflareが使う認証局(Pages公式ドキュメントの例示では letsencrypt.org、pki.goog、ssl.com。CAの構成は変わりうるのでSSL/TLS側のCAAドキュメントも参照)の発行を許可してもらう必要があります。事前に確認しておくと手戻りがありません。
dig CAA example.or.jp +short
何も返らなければCAA制限はなく、追加の依頼は不要です。
補足
- カスタムドメイン追加後も
<project>.pages.devは生き続けます。正規URLを一本化したい場合は_redirectsでのリダイレクトや<link rel="canonical">で対応できます。 - カスタムドメインは無料枠でもプロジェクトあたり最大100個まで付けられます。
罠: この構成ができるのはPagesだけ(Workersは不可)
「Cloudflareのカスタムドメイン設定は難しい・ゾーン必須」という印象があるとしたら、それはおそらくWorkersの仕様です。Workers vs. Pagesのcompatibility matrixで両者は明確に区別されています。
| Custom domains outside Cloudflare zones | 可否 |
|---|---|
| Workers | ❌ |
| Pages | ✅ |
同ページの注記にも明記されています。
Unlike Pages, Workers does not support any domain whose nameservers are not managed by Cloudflare.
(Pagesと異なり、WorkersはCloudflareが管理していないネームサーバーのドメインを一切サポートしない)
つまり外部DNSからのCNAMEでカスタムドメインを付けられるのはPagesだけです。
これが効いてくるのが「新規プロジェクトはWorkers推奨」という近年の流れとの兼ね合いです。CloudflareはWorkersにStatic Assets機能を追加して以降、新機能をWorkers側にのみ投入しており、PagesからWorkersへの移行ガイドも用意されています。しかし外部DNS + サブドメインという要件がある場合、Workersに移行するとこの構成が成立しなくなります。一般論の「Workers推奨」を鵜呑みにせず、Pagesに留まるのが正解のケースです。
SSRはPagesでも動く(ただしフレームワークアダプタの動向に注意)
「Pagesは静的サイト専用」も古い理解で、Pages Functions(実体はWorkersと同じランタイム)によりSSRが動きます。
課金面の注意点(公式のFunctions pricingより):
- 静的ファイルへのリクエストは無料・無制限("Requests to static assets are free and unlimited")
- SSR(Functions)を通るリクエストはWorkersと共通の無料枠(10万リクエスト/日)を消費
大半が静的配信のサイトなら余裕ですが、全ページSSRの場合はこの枠を意識する必要があります。
ただし、フレームワーク側のアダプタはWorkersへ移りつつあり、SSRの選択肢は狭まっています(2026年7月時点):
| フレームワーク | PagesでのSSR |
|---|---|
| Next.js | ❌ next-on-pages は非推奨・リポジトリはアーカイブ済み(2025年9月)。後継のOpenNextはWorkers専用(静的エクスポートならPagesで可) |
| Astro | ❌ @astrojs/cloudflare v13(Astro 6)でPagesサポートを廃止、Workers専用に |
| Nuxt | 🟡 cloudflare_pages プリセットは残るがレガシー扱い(推奨はWorkersモジュール) |
| SvelteKit | ✅ adapter-cloudflare がWorkers/Pages両対応を継続 |
つまり「外部DNSのサブドメイン + SSR」を両立したい場合、現時点で安心して選べるのはSvelteKit、もしくはPages Functionsを直接書く構成です。サイトの大半を静的生成にしてSSRを最小限に抑える設計なら、この問題自体を小さくできます。
まとめ
- 組織ドメインのDNSを動かせなくても、Pagesならサブドメインを無料で割り当てられる(外部DNSにCNAME 1本)
- サブドメインだけのゾーン持ち込み(Subdomain setup)はEnterprise限定
- 必ずCloudflare側のカスタムドメイン登録を先に(逆順だと522エラー)
- CAAレコードは
dig CAA <domain> +shortで事前確認 - 外部DNSカスタムドメインはPages限定でWorkersは不可。「新規はWorkers推奨」の流れがあっても、この要件があるならPagesに留まる
- SSRもPages Functionsで動くが、フレームワークアダプタはWorkersへ移行が進む(Next.js・AstroはWorkers専用化。Pages両対応を維持しているのはSvelteKit)

コメント
…