Cloudflare WorkersでLP公開|無料枠と商用の話
Cloudflare WorkersにLPを置くとお金はかかるのか、商用で使ってええのか。2026年10月に公式の料金のページと利用規約を読み直した数字と条文、Vercelの無料プランから引っ越した時のつまずき、_headersで試し公開を検索に載せん手(手元で動かして確かめた)までまとめました。
副業でページを1枚ネットに公開する。それだけで規約違反になることがあります。僕は知らんまま、それなりの期間そのままにしとりました。
先に結論だけ書いときます。作り終わった LP を Cloudflare Workers に置くだけなら、無料プランでお金はかかりません。静的なファイルへのアクセスは無料で上限も無い、と公式の料金のページにあります。商用で使うことについても、規約を読んだ範囲では、無料プランを非商用に絞る条文は見当たらんかった。
ただ、やってはいかん事は別の所に書いてあります。無料のサイトでクレジットカード情報を受け取ること、workers.dev のアドレスに他社の名前を入れること。この2つは LP でも踏みそうな所です。
料金と上限の数字は2026年10月23日、条文は10月22日に、AI(Claude)と公式のページで確かめた物です。料金や規約は変わるので、置く前に一度、自分でも開いてください。
元は工場で働いてて、いまは会社の外で AI と一緒にツールやページを作ってます。プログラムを書くのは今も得意やないです。この手の話は、だいたい踏んでから覚えてます。
無料プランは「非商用限定」と書いてあった
置いとったのは営業用の LP(商品やサービスを1枚にまとめた紹介ページ)です。Vercel という置き場の、Hobby という無料プランに上げてました。
2026年8月の初め、別の用事で AI に Vercel の公式のガイドライン(Fair Use Guidelines)を確かめてもらって、手が止まりました。Hobby は非商用の個人利用だけで、商用で使うなら Pro か Enterprise の有料プランが要る、と書いてある。
問題は「商用」の定義でした。同じページに、そのページの制作に関わった誰かの金銭的な利益が目的なら商用、と書いてある。コードを書いた人が報酬をもらっとる時点で当たる、とまで書いてあります。
挙がっとる例の中には「商品やサービスの販売の宣伝」がありました。サイトを作る・直す・置くことでお金をもらう場合や、広告を載せる場合も例に入っとります。このうち、非商用だけという決まり・商用の定義・宣伝の例は、2026年10月に読み直しても同じでした。
営業用の LP は、ど真ん中でした。
引っ越し先の料金ページに書いてあったこと
移した先が Cloudflare Workers です。公式の Workers の料金のページと上限のページから、LP を置くのに関係する所を抜くとこうなります。
無料プラン | 有料プラン(Paid) | |
|---|---|---|
月の料金 | 0円 | 1アカウント最低 5ドル/月 |
リクエスト | 1日 10万回まで | 月 1,000万回込み・超えた分は100万回ごとに 0.30ドル |
CPU 時間 | 1回 10ミリ秒まで | 月 3,000万ミリ秒込み・超えた分は100万ミリ秒ごとに 0.02ドル・1回は既定30秒・最大5分まで |
静的なファイル | 無料・上限なし | 無料・上限なし |
LP みたいな「作り終わったページをそのまま配るだけ」のものは、一番下の行に当たります。料金のページの注に「静的なファイルへのリクエストは無料で上限なし」とはっきり書いてある。1日10万回の枠は、プログラム(Worker)が動いた回数の話です。
ただし、Worker を先に動かす設定(run_worker_first)や、Workers Caching という仕組みを入れると、静的なファイルへのリクエストも数えられるようになります。これも公式の料金のページの注と、静的ファイルの料金のページに書いてある。ファイルを配るだけなら関係ない話です。
ファイルの数と大きさには上限があって、無料プランは1つの版あたり2万ファイルまで、1ファイル 25MiB まででした。LP 1枚なら気にせん数です。
商用で使ってええか|規約を読んだ
前の版では、ここで「Cloudflare なら商用 OK とは書きません」と止めてました。前の版が料金の条件しか書いてへんかったからです。ところが作業の記録を見直したら、記事を出す前の8月13日に、AI(Claude)が Cloudflare の公式の規約(Self-Serve Subscription Agreement)の本体を一度通して読んで、非商用に絞る条文が無いことと、下に書くカードの条文を拾っとりました。それを記事に入れんまま出しとったわけです。
今回はその規約(2025年9月12日更新の版)を、AI と読み直しました。規約の1章には、サービスごとの個別の条件(Service-Specific Terms)も規約の一部として組み込む、と書いてあります。そのうち Workers を含む開発者向けの節(2026年9月28日更新の版)も読みました。こっちは、8月に読んだ記録がありません。
どちらにも、無料プランを非商用に限る、という書き方は見つかりませんでした。規約の本体を「commercial」でページ内検索しても、出てくるのは仲裁のルールや米国政府向けの条項ばかりです。会社の名前で申し込む場合の書き方も入っとって、仕事で使う人を最初から相手にしとる作りに読めます。
代わりに、禁止事項の中に、LP に関係しそうな物が3つありました。
- 無料のサービスを受けとっとるサイトで、個人や会社のクレジットカード情報を処理したり集めたりしてはいかん(規約の 2.2.1 の (h))。LP に申し込みと支払いのフォームを直に付けるなら、ここに当たると読めます。外の決済サービスのフォームを埋め込む形が当たるかは、条文だけでは決まりません。原文は「無料のサービスを受けとっとる web property(サイトやドメイン)」なので、Workers を有料プランにしても、そのドメインで Cloudflare の無料プラン(DNS など)を使うとったら当たる、という読み方も残ります。ここは僕も確かめ切れてへんです
- Cloudflare の書面の許可なしに、サービスへのアクセスを第三者に貸したり売ったりしてはいかん。第三者に代わってサービスに申し込むのもいかん(2.2.1 の (a))。人の LP を作って置くなら、客が自分のメールと自分の名前で申し込んで、作り手は必要ならメンバーとして招いてもらう形が、この条文に沿うと読んでます。自分のアカウントに客の LP を置いて料金をもらう形が、前半の「貸す・売る」に当たるかは、条文だけでは分かりませんでした。やるなら先に Cloudflare に聞きます
- 開発者向けの節には、他社・団体・個人の名前を含むサブドメインでアカウントやプロジェクトを作るのは禁止、とあります。作り手が自分のアカウントで、workers.dev のアドレスに客の社名を入れるのも、これに当たると僕は読んでます
これは僕が条文を読んだ範囲の話で、法律の専門家の判断やないです。自分の使い方が当たるか迷ったら、Cloudflare に聞くのが確実です。
1時間のうち、2回つまずいた
試しに置き直すだけなら、約1時間で終わりました。その間に2回つまずいてます。
メールを1文字打ち間違えとった
アカウントを作る時、メールアドレスの頭の1文字を落としてました。気づかずそのまま進めて、いざ公開しようとしたらエラーで止まった。番号は10034。
中身は、メールアドレスの認証が済んでないアカウントでは使えない、という意味でした。認証のメールは、存在せんアドレス宛に飛んどったわけです。僕の時(2026年8月)は、プロフィールでメールを直して、届いた認証を踏んだら通りました。
ただ、公式の説明はそうなってへんです。2026年10月に Cloudflare の公式の「パスワードやメールアドレスの変更」のページを AI に開いてもらったら、最初のアドレスの認証が済んでへんとメールアドレスは変更できず、打ち間違いならアカウントを作り直すように書いてありました。「メールアドレスの認証」のページでも、認証が済むまでできん操作の例に、メールアドレスの変更が挙がっとります。8月の僕の時に直せた理由は分かってへんし、この決まりがいつから書いてあるのかも確かめてへんです。同じ打ち間違いをしたら、公式の説明どおり作り直しになると思っといたほうがええです。
これは止めてくれて有り難い方の失敗です。もし警告だけ出して動いてしもとったら、認証の通ってないアカウントのまま運用を続けとった。
許可のリンクが数分で切れる
公開用のコマンド(wrangler)を使うには、最初にブラウザで許可を出す必要があります。コマンドを叩くと許可用の URL が出るので、それを開いてボタンを押す形。
僕の時は、コマンドを叩くのは AI(Claude)で、出てきた URL を僕が開いてボタンを押す分担でした。その URL をすぐに開かんかったら、押した時にはもう切れとりました。
10月に、AI に手元の wrangler(4.151.3)の中身を読んでもらいました。今の版では、いつもの流れ(wrangler login)で wrangler が許可の返事を待つのは2分だけで、過ぎたら「Timed out waiting for authorization code」と出して待つのをやめます。少なくとも今の版では、切れるのはリンクというより wrangler の待ちのほうです。この2分は公式の説明には書いてなくて、プログラムの中にある数字です。8月に使うた版でも同じやったか、Cloudflare の側で許可の URL そのものに期限があるかは、確かめてへんです。
別の流れ(wrangler login --device)なら待ちは最大5分(Cloudflare がもっと短い期限を付けたらそれより前に切れる)、と公式の wrangler のページにあります。どっちにしても、出したら即踏む。知らんと一瞬「壊れた?」と思います。
テスト公開を検索に載せたくない時
今回は今の公開ページを止めずに、テスト用として並行で出しました。ここで困るのが、テスト用のアドレスまで検索に載ってまうことです。同じ中身のページが2つ、検索エンジンから見える状態になる。
ページは中身と一緒に、目に見えん連絡事項(ヘッダー)も返してます。検索エンジンに「このページは載せんといて」と伝えるのも、その1つです。
Workers では、公開するフォルダに _headers という名前のファイルを1枚置くと、この連絡事項を自分で指定できます。Cloudflare の公式の _headers のページに、workers.dev のアドレスだけを検索から外す例が載っとります。
書くのは2行です。1行目に「どのアドレスに付けるか」、字下げした2行目に付ける中身を書く。
(1行目:workers.dev のアドレスの型)
X-Robots-Tag: noindex1行目は https から始まる workers.dev のアドレスの形で、:version と :subdomain という置き換えの印を使って、どの workers.dev のアドレスにも当たるようにしてあります。アドレスの形なのでここには貼らず、公式のページの例をそのまま写してください。これで、自分のドメインで出す本番には付かず、テスト用の workers.dev のアドレスにだけ「載せんといて」が付く。
逆に、本番も workers.dev のアドレスで出しとるなら、この例をそのまま写すと本番の LP まで検索から消えます。公式の例は workers.dev の前に名前が2つ並ぶアドレス(Worker の名前とアカウントの名前)なら全部に当たる作りで、本番の workers.dev のアドレスもその形やからです。僕の LP も今は workers.dev のアドレスが本番なので、検索に出す LP からは noindex の行を外してあります。
今回あらためて、AI に手元で同じ形を動かしてもらって確かめました(公開はせず、wrangler の手元の dev で)。リクエストの Host(どのアドレス宛てかを伝えるヘッダー)を、ふだんの本番と同じ形の workers.dev の名前に変えて手元の dev に聞いた時だけ X-Robots-Tag: noindex が返って、127.0.0.1 として聞いた時は付かんかった。_headers そのものを開こうとすると 404 が返って、外からは見えません。公式のページにも、このファイル自体は配られんと書いてあります。
ひとつ注意があって、_headers で付けたヘッダーは、プログラム(Worker)が自分で作って返した応答には付きません。これも公式のページに書いてある。作り終わったファイルを配るだけの LP なら関係ない話です。
「開けたからOK」で終わらせんかった
公開の確認は、ブラウザで開いて表示されたら OK、で済ませたくなります。今回はそこで止めませんでした。
AI(Claude)に2つやってもらいました。1つ目は、手元のファイルと公開されたファイルの中身を1個ずつ突き合わせること。中身を短い文字列に要約する仕組み(ハッシュ)を使いました。1文字でも違えば別の文字列になるので、両方を並べて同じなら中身も同じ、と言えます。引っ越しの時は、配ったファイル全部で一致しました。
やり方はこんな形です。Git Bash などで、手元のファイルと、公開先から取ってきたファイルの値を並べます。
curl -s (公開したページのアドレス) -o served-index.html
sha256sum public/index.html served-index.html2行の値が同じなら一致です。手元の dev で試した時も、index.html と CSS の2つで、手元と配られた物の値が揃いました。
2つ目が、さっきの連絡事項を実際に取り出すことです。curl -I でヘッダーだけを見て、X-Robots-Tag が付いとるかを確かめます。
なんでそこまでやるかというと、前に痛い目に遭っとるからです。ページはちゃんと開くのに、中身が古い版のままやった、みたいなことが実際に起きる。開いた画面を見ただけでは、それに気づけません。
僕が見落としてた所
- Vercel の Hobby が非商用の個人利用だけやと、LP を置いてからしばらく知らんかった。気づいたのは、8月の初めに別の用事で AI に Fair Use Guidelines を確かめてもらった時です
- 「商用」の定義に、コードを書いた人が報酬をもらっとる場合まで入っとるとは思ってへんかった
- 前の版に入れたのは Cloudflare の料金のページの話だけでした。カードの条文(2.2.1 の (h))は、AI が8月13日に規約の本体で拾っとったのに、記事に入れてへんかった
- 規約の本体が組み込んどる開発者向けの節は、8月に読んだ記録がありません。workers.dev の名前の禁止は、そっちに書いてあります
次に置き場を選ぶ時のために、今回の探し方を置いときます。英語のページでも、やることは4つです。
- サービス名で検索して、料金(pricing)か規約(terms)のページを開く
- ページ内検索で「commercial」を探す。商用の話はだいたいこの単語の周りに書いてある。見つからんかったら、規約の「Restrictions」(禁止事項)の段も読む
- 見つかった段落を翻訳にかけて、自分の使い方が「商用の例」や禁止事項に載ってへんかを見る
- 規約の本体に「別の条件を組み込む」(incorporated by reference)と書いてあったら、その頁も開いて、同じように禁止事項を探す
3番が肝です。「商用」という言葉の中身は会社ごとに違う。今回も、僕がアウトやと分かったのは Vercel の例の一覧を見た時でした。Cloudflare のカードの条文は、8月に AI が規約の本体の禁止事項の段で拾っとった物で、記事に入ったのは10月の読み直しの時です。workers.dev の名前の禁止は、10月に AI と読んだ時に、4番の組み込まれた頁のほうで見つけとります。
試しに置き直す作業そのものは1時間で終わりました。規約が組み込んどる開発者向けの節まで読んだのは、この記事を最初に出した8月から2か月後の10月です。
関連の記事
同じ LP でも、客が自分で更新する形にすると何が変わるかは、WordPressでLPを作る|静的HTMLと違った4つに書いてます。ページは開くのに URL が違っとった話は、WordPressのスラッグに-2が付く原因です。
LP の置き場所で迷っとったら
今の置き場が商用で使えるか分からん、無料のまま引っ越したい。今の LP と置き場の名前を教えてもらえたら、引っ越し先と手順をこちらで書き起こします。