1. トップ
  2. ノート
  3. GitHub と Cloudflare の違い
はじめての開発 約9分で読めます(4,327字)

GitHub と Cloudflare って何が違う?
個人サイトを20分で引っ越して分かったこと

コードの置き場所と、サイトを配る仕組みは別もの。このサイトを実際に引っ越したときの手順とつまずきから、2つの違いを説明します。

この記事は 2026年10月22日時点の情報です

2026年10月21日の夜、このサイト usuilab.com の置き場所を引っ越しました。引っ越し元は GitHub Pages、引っ越し先は Cloudflare Pages です。かかった時間は20分ちょっと。サイトは一度も止まりませんでした。

「GitHub と Cloudflare って何が違うの?」は、個人で何かを公開しようとすると必ず出てくる疑問です。このノートでは、私が実際にやった引っ越しを例に、2つの違いと、引っ越しで気をつけることを書きます。

3行でいうと
  1. GitHub は「コードの保管庫」、Cloudflare は「世界中に配る配送網」。Pages はどちらも、そのおまけの公開機能
  2. Cloudflare Pages は、コードを非公開にしたまま無料で公開できて、商用での利用にも向いている
  3. 引っ越しで気をつけるのは、DNS の付け替え、www の転送、404 ページ。404 がないとトップが返ってくる

そもそも役割が違う

名前が似ているので混ざりやすいのですが、2つはもともと別の仕事をしている会社です。

  • GitHub:プログラムのコードを保管して、変更の履歴を残す場所。「GitHub Pages」は、そのコードをそのままウェブサイトとして公開できる、おまけの機能です
  • Cloudflare:ウェブサイトを世界中に素早く配る配送網と、ドメインの管理をしている会社。「Cloudflare Pages」は、その配送網の上でサイトを公開する機能です
引っ越し前はGitHubがコードの保管と公開の両方をしていた。引っ越し後は、GitHubは非公開でコードを保管するだけで、変更を送るとCloudflareが受け取って世界中に配る、という比較図 引っ越し前 GitHub 保管 + 公開(コードも公開) 引っ越し後 GitHub 保管(非公開) Cloudflare 公開・配送 コードを隠すと、サイトも止まる コードは隠したまま、サイトは公開
「保管」と「公開」を、別の会社に分けた

比べてみると

GitHub PagesCloudflare Pages
料金無料。非公開のコードから公開するなら有料プラン無料。コードは非公開のままで公開できる
主な上限サイト全体で1GB、転送量は月100GBが目安、更新は1時間10回が目安無料プランで2万ファイル、1ファイル25MB、更新は月500回
商用での利用「オンラインビジネスのための無料ホスティング」としての利用は不可と明記とくに制限の記載なし
始めやすさリポジトリの設定画面のボタン1つ。いちばん簡単最初の連携に少し手間。そのあとは同じくらい楽
うれしい機能—作業ブランチごとに確認用の URL ができる。ドメインと DNS も同じ画面で管理できる
2026年10月22日に各社の公式ドキュメントで確認

私が引っ越しを決めた理由は2つありました。

  1. コードを非公開にしたかった:作り直し中の下書きや作業ブランチまで、誰でも見られる状態だった
  2. 広告で収益化したかった:GitHub は「オンラインビジネスのための無料ホスティングではない」と書いている

GitHub の有料プランにすれば、非公開のまま Pages を使い続けることもできます。でも、Cloudflare なら無料でどちらも満たせるので、こちらを選びました。

引っ越しの前に、見つけてしまったもの

引っ越しの準備でリポジトリを点検したら、困ったものが見つかりました。告知文の下書きや計測の計画といった内部資料が、リポジトリだけでなく、usuilab.com/marketing/ という URL で誰でも読める状態になっていたんです。

鍵やパスワードのような秘密は入っていませんでしたが、外に見せるつもりのない文書でした。公開するフォルダから外して、手元にだけ置く場所へ移しています。

GitHub Pages では、リポジトリに置いたものは基本ぜんぶ公開される。「置き場所=公開場所」なのを忘れない。

引っ越しの手順

実際の作業は、Claude に私の Chrome を操作してもらいながら進めました。私がやったのは、GitHub の連携の許可ボタンを1回押したことだけです。

  1. Cloudflare で、usuilab のリポジトリとつながった公開プロジェクトを作る。GitHub 側には Cloudflare の連携アプリが入っていたので、許可を1回出すだけでつながった
  2. 存在しない URL に、ちゃんと「404 Not Found」を返すページを追加(理由は次の章で)
  3. DNS の付け替え。GitHub を指していた4行の設定を、Cloudflare が「usuilab.pages.dev を指す1行」に自動で置き換えてくれた
  4. 外から本当に切り替わったかを確認。トップ、記事、アプリの規約ページ、広告用のファイル(ads.txt)、sitemap まで開けることを確かめた
  5. GitHub Pages を止めてから、リポジトリを非公開に。そのあと main に変更を送ると、約30秒で usuilab.com に反映された

順番が大事で、先にリポジトリを非公開にすると、無料の GitHub Pages はその時点でサイトを止めてしまいます。新しい公開先で動くことを確かめてから、古いほうを止めました。

気をつけた3つのこと

1. DNS(サイトの住所録)の付け替え

DNS は、「usuilab.com はどのサーバーにある?」に答える住所録のようなものです。ここを書き換えると、訪れた人が向かう先が変わります。このサイトのドメインはもともと Cloudflare で管理していたので、Cloudflare の画面の中で付け替えが完結しました。

注意したのは、Google の Search Console の所有確認に使っている設定まで消さないことです。DNS の画面には、サイトの向き先以外の設定も並んでいます。付け替えたあと、確認用の設定が残っていることを確かめました。

2. www つきの住所を転送する

www.usuilab.com と usuilab.com は、別々の住所として扱われます。両方で同じページが見えると、検索エンジンからは同じ内容が2つあるように見えてしまいます。

なので www つきで来た人は、「恒久的に引っ越しました」という意味の301転送で、www なしのほうへ送っています。URL の後ろの部分(記事の場所)もそのまま引き継ぐので、古いリンクから来た人も迷子になりません。

3. 404 ページを用意する(これがいちばんの罠)

Cloudflare Pages には、少し意外な動きがあります。404 ページ(ファイルが見つからないときのページ)を用意していないと、存在しない URL に来た人にも、トップページを返すのです。公式ドキュメントにも、その場合はアプリとして扱い、どんな URL にもトップを返すと書かれています。

人が見るぶんには困らないように思えますが、検索エンジンから見ると「存在しないはずの URL に、毎回同じ中身のページがある」状態になります。消した記事もいつまでも残っているように見えてしまう。

そこで、方眼の紙に付箋を貼ったデザインの 404 ページを作りました。いまは存在しない URL を開くと、ちゃんと「404 Not Found」が返ります。いまのデザインの最初の試し刷りは、実はこの 404 ページでした。

引っ越して良かったこと

  • コードを非公開にできた:作り直し中の下書きを、気にせず置けるようになった
  • 確認用の URL が自動でできる:作業ブランチを送ると、ブランチ名.usuilab.pages.dev という確認用の URL ができる。検索に載せない指定も自動で付くので、本番と重複しない
  • 反映が速い:main に送ると、約30秒で本番に出る

このノートの記事も、作業ブランチの確認用 URL でスマホから見た目を確かめてから、本番に出しています。

結局、どっちを選べばいい?

  • はじめて自分のページを公開してみたいGitHub Pages で十分。ボタン1つで公開できて、いちばん簡単
  • コードは見せたくないCloudflare Pages。無料のまま非公開にできる
  • 広告や販売でお金を得たいCloudflare Pages が安心。GitHub は商用での利用に制限がある
  • 独自ドメインも一緒に管理したいCloudflare なら DNS と公開を同じ画面で扱える
つまり何?

このノートから持ち帰れること

サイトの置き場所を変えるときは、GitHub や Cloudflare に限らず、だいたい同じところでつまずきます。

  1. 「保管する場所」と「公開する場所」は分けて考える同じ場所でやると、隠したいものまで公開される。分けておけば、コードは非公開のまま、サイトだけ公開できる。ブログ、ポートフォリオ、作品の紹介ページ
  2. 引っ越しは「新しいほうで動く」を確かめてから、古いほうを止める順番を逆にすると、その間サイトが止まる。サーバーの移転、ドメインの付け替え、アプリのバックエンドの移行
  3. 公開フォルダの中身を、一度ぜんぶ見る私は内部資料が URL で読める状態になっているのを、引っ越しの準備で見つけた。GitHub Pages、静的サイト、共有フォルダ
  4. 「ないページ」で、本当に 404 が返るか試すCloudflare Pages は 404 ページがないとトップを返す。存在しない URL を1つ開いてみるだけで分かる。サイト公開の最後の確認
サイトを引っ越すときの、6つの確認
  • 新しい公開先で、トップ・記事・規約・ads.txt・sitemap が開けるか
  • DNS を付け替えたあと、Search Console の確認用の設定が残っているか
  • www つきの住所が、301 で正しい住所に転送されるか(URL の後ろも引き継ぐか)
  • 存在しない URL で 404 が返るか
  • 古い公開先を止めてから、リポジトリを非公開にしたか
  • 変更を送ったら、新しい公開先に自動で反映されるか

やってみよう

記事と同じことを、手元の AI で試せる指示文です。ChatGPT・Gemini・Claude のどれでも使えます。AI は毎回ちがう答えを返すので、記事とまったく同じ条件にはなりませんが、考え方の練習にはしっかり使えます。実際にやってみてください。

練習1自分のサイトの「公開されているもの」を点検する

私は個人サイトを公開しています。公開フォルダに、外に見せるつもりのないものが混ざっていないか点検したいです。 よく紛れ込むファイルやフォルダの例を10個挙げて、それぞれ見つけ方を教えてください。 (例:下書き、メモ、設定ファイル、古いバックアップ)

記事の「内部資料が URL で読めた」と同じことが、自分のサイトで起きていないか。

練習2引っ越しの手順を、自分の場合で書いてもらう

私のサイトの今の状態は次のとおりです。 (例:GitHub Pages で公開。独自ドメインあり。お問い合わせフォームは外部サービス) これを Cloudflare Pages に移すときの手順を、サイトが止まらない順番で書いてください。最後に、移したあとの確認項目も挙げてください。

「新しいほうで動くのを確かめてから、古いほうを止める」の順番になっているか。404 の確認が入っているか。

出典・参考にした情報

  1. GitHub Docs「GitHub Pages limits」(英語)
  2. Cloudflare Docs「Pages limits」(英語)
  3. Cloudflare Docs「Serving Pages」(404 ページがないときの動き、英語)
  4. 引っ越しの時刻と手順は、2026年10月21日の作業記録から

いずれも 2026年10月22日に確認しました。下書きや図づくりには AI を使っていますが、事実関係は自分で確かめてから公開しています。

ウスイのアイコン

ウスイ福岡で個人開発をしています。アプリやゲームを作りながら、分かったことをこのノートに書いています。運営者・編集方針

次に読むなら

  1. 開発記録

    個人開発のブラウザゲームを、Cloudflare で運営する準備をした記録

    みんなで遊ぶブラウザゲームを、月0ドルの試験環境から、公開できる形へ。負荷テスト、料金、セキュリティ、広告。公開前にやったことを全部書きます。

  2. 開発記録

    個人開発の Web ゲームを、月0ドルで動かしている。使っているサービスと「費用の台帳」

    どのサービスを、何のために、いくらで使っているか。1枚の台帳にまとめておくと、知らないうちにお金が出ていく事故を防げます。

  3. きほん

    Claude って何? ゲームづくりを丸ごと任せて分かった、得意と苦手

    ホラーゲーム、落下ゲーム、ゲーム機の自動操作装置、そしてこのサイト。いま私の開発の中心にいる Claude について、任せてみて分かったことを書きます。