A SpecAtlas

Vercel と Cloudflare Pages の比較

無料枠の性質が正反対。Vercel Hobby は非商用限定で超過すると従量課金、Cloudflare Pages は商用可で帯域無制限。Next.js 以外なら Cloudflare Pages を選ばない理由が乏しい。

主要な差分

- 無料枠の商用可否: Vercel Hobby = 不可、Cloudflare Pages = 可。 - 帯域: Vercel Hobby は上限あり、Cloudflare Pages は無制限。 - 請求の振れ幅: Vercel は超過で従量課金、Cloudflare Pages は帯域で課金されない。 - DX: Next.js は Vercel がファーストクラス。Cloudflare はアダプタ経由。

解説と実務上の注意

無料枠の思想が正反対

同じ「無料でホスティングできるサービス」ですが、無料枠の設計思想が逆を向いています。

Vercel Hobby は非商用限定です(commercial_use_allowed: conditional — Hobby: no / Pro 以上: yes)。個人利用は歓迎するが、収益が出るなら払ってほしい、という設計です。広告掲載、アフィリエイト、クライアントへの納品はいずれも商用に該当し得ます。

Cloudflare Pages は全プランで商用利用可、しかも帯域無制限です(commercial_use_allowed: yes)。Cloudflare の本業は CDN であり、帯域は原価構造上ほぼ負担になりません。だから無制限にできます。この差は「太っ腹かどうか」ではなく事業モデルの違いから来ているので、今後もそう簡単には変わりません。

請求が跳ねるリスクが構造的に違う

これは実務でかなり重要です。Vercel は無料枠を超えると従量課金に移行します。 記事がバズった、クローラーに集中的に叩かれた、画像最適化が想定以上に走った — こうした事象がそのまま請求額に反映されます。「個人サイトで高額請求」という事故は、この課金モデルに固有のものです。

Cloudflare Pages は帯域で課金されません。 トラフィックが跳ねても帯域分の請求は発生しません(Workers の実行回数など、別の軸には制限があります)。請求額の予測可能性という一点において、Cloudflare Pages は明確に優位です。

Vercel を使うなら、運用開始時に使用量上限とアラートを必ず設定してください。これは推奨ではなく必須の作業です。

では何が Vercel を選ぶ理由になるか

Next.js です。それ以外にはほとんどありません。

Next.js は Vercel が開発しているフレームワークで、新機能が最初に、かつ完全な形で動くのは Vercel 上です。ISR、Image Optimization、Middleware、App Router の細部まで、公式が想定した通りに動きます。Cloudflare Pages でも Next.js は動きますが、アダプタを経由するため最新機能の対応にラグが出ることや、エッジランタイムの制約で一部機能が使えないことがあります。

Next.js の込み入った機能に依存しているなら、Pro の月額はその互換性に対する対価として合理的です。

逆に、Astro / SvelteKit / Hugo / 素の静的サイトのような構成なら、Vercel を選ぶ技術的な理由はほぼ見当たりません。 商用利用が無料で許され、帯域が無制限で、請求が跳ねない Cloudflare Pages のほうが条件が良い。

動的処理を足すときの発想が違う

静的配信の先に動的処理を足す段階で、設計の考え方が分かれます。

Cloudflare Pages は Workers と地続きです。KV(結果整合のストア)、Durable Objects(強整合)、D1(SQLite)、R2(オブジェクトストレージ)、Queues が同じ環境に揃っており、エッジで完結する構成を組みやすい。 ただし Workers は V8 isolate 上で動くため Node.js の常駐サーバーではなく、CPU 時間の制約があり、一般的な Node アプリをそのまま移植することはできません。

Vercel はサーバーレス関数と Edge Functions の2階建てで、Node.js のコードをそのまま動かせる範囲が広いのが利点です。既存の Node 資産を持ち込むなら Vercel のほうが摩擦が少ない。

Cron

定期実行はどちらも可能ですが、Vercel Hobby は1日2回までに制限されます(cron_available: conditional)。Cloudflare は Workers の Cron Triggers を無料プランでも使えます(cron_available: yes)。無料枠で定期実行を回したいなら Cloudflare です。

権利

項目 Vercel Cloudflare Pages
commercial_use_allowed 条件付き

制約

項目 Vercel Cloudflare Pages
api_available
cron_available 条件付き
custom_domain_available
webhook_available

結論:どちらを選ぶべきか

Cloudflare Pages を選ぶべきケース — Next.js 以外のフレームワークを使う、無料のまま商用利用したい、請求が跳ねるリスクを避けたい、帯域を多く使う(画像・動画)、無料で定期実行したい。

Vercel を選ぶべきケース — Next.js の最新機能に深く依存している、Node.js のコードをそのまま動かしたい、Pro の月額を払う前提がある。

注意 — Vercel Hobby のまま収益化しないでください。規約上の非商用限定であり、広告・アフィリエイト・受託納品はいずれも該当し得ます。Vercel を使うなら使用量アラートの設定を運用開始時に必ず行ってください。

よくある質問

Q. Cloudflare Pages の無料プランは本当に商用利用できますか?
できます。全プランで商用利用が認められており、帯域も無制限です。Cloudflare の本業が CDN であるため、帯域が原価構造上の負担にならないことが背景にあります。
Q. Vercel の無料プランで収益化するとどうなりますか?
規約違反の状態になります。Hobby は非商用限定で、広告掲載・アフィリエイト・クライアント納品はいずれも商用に該当し得るため、Pro 以上への移行が必要です。
Q. Next.js を Cloudflare Pages で動かせますか?
動かせますが、アダプタ経由になります。最新機能の対応にラグが出ることや、エッジランタイムの制約で一部機能が使えないことがあるため、Next.js の高度な機能に依存する場合は Vercel のほうが安全です。
Q. トラフィックが急増したとき、請求はどうなりますか?
Vercel は従量課金に移行するため請求が跳ねる可能性があります。Cloudflare Pages は帯域で課金されないため、この形の事故は起きません。Vercel を使う場合は使用量上限の設定が必須です。
Vercel → Cloudflare Pages →