2026年9月9日
2026年9月9日
WordPressをCloudflare Pagesで公開する方法:静的化してWranglerでデプロイ
Cloudflare Pages は、HTML・CSS・JavaScript・画像などの静的なファイルを Cloudflare のネットワークから配信するサービスです。PHP やデータベースは動かないため、WordPress をそのまま載せることはできません。WordPress で作ったサイトを Cloudflare Pages で公開するには、WordPress の各ページを静的な HTML ファイルに書き出し、その書き出したファイルをデプロイします。
この記事では、プラグイン「Simply Static」で書き出したファイルを、Cloudflare のコマンドラインツール Wrangler で Cloudflare Pages にデプロイする手順と、運用上の注意点を説明します。
全体の流れと向いているサイト
構成は次のようになります。
- WordPress は、自分の PC のローカル環境や、外部に公開しないサーバーで動かす(記事の作成・管理用)
- 記事を更新したら、Simply Static でサイト全体を静的なファイルに書き出す
- 書き出したフォルダーを Cloudflare Pages にデプロイする
訪問者が見るのは静的なファイルだけなので、WordPress のログイン画面やプラグインの脆弱性を外部から狙われる心配が減り、表示も軽くなります。
その一方で、サーバー側で処理する次の機能は、書き出したサイトでは動きません。
- コメント、問い合わせフォーム、サイト内検索
- 会員ログイン、ネットショップのカートや決済
- 予約投稿の自動公開(WordPress 側で公開されても、書き出してデプロイするまで反映されない)
そのため、更新頻度がそれほど高くなく、上記の機能を使わないコーポレートサイトや資料・ブログ向けの方法です。フォームが必要な場合は、外部のフォームサービスを埋め込むなどの置き換えを考えます。
なお Cloudflare は、公式ドキュメントで新しいプロジェクトには Workers を使うよう案内しています(2026年11月時点)。Workers の静的アセット機能でも、書き出したフォルダーを配信できます。この記事では既存の利用者が多い Cloudflare Pages の手順を説明します。
Simply StaticでWordPressを書き出す
WordPress の管理画面の「プラグイン」→「新規追加」で「Simply Static」を検索し、インストールして有効化します。左のメニューに「Simply Static」が追加されます。
URLの置き換え方法を決める
「Simply Static」→「General」の「Replacing URLs」で、書き出したファイル内の URL をどう書き換えるかを選びます。
| 選択肢 | 使う場面 |
|---|---|
| Absolute URLs | 公開する独自ドメインのルートに置く場合。Scheme に https://、Host に公開するドメイン(例: www.example.com)を入れる |
| Relative Path | ドメインのサブディレクトリに置く場合 |
| Offline Usage | 自分の PC でファイルを直接開いて確認する場合(公開には使わない) |
Cloudflare Pages で独自ドメインのルートに公開するなら「Absolute URLs」を選びます。canonical や OGP の画像など、完全な URL が必要なタグも、公開するドメインの URL に書き換えられます。独自ドメインを付けずに プロジェクト名.pages.dev で公開する場合は、Host にそのドメインを入れます。
書き出し先を選んで実行する
「Simply Static」→「Deploy」の「Deployment Settings」で、書き出し方法(Deployment Method)を選んで保存します。無料版で選べるのは次の2つです。
- ZIP Archive:サイト全体を1つの ZIP ファイルにまとめる。処理が終わると「Simply Static」→「Activity Log」にダウンロードのリンクが表示される
- Local Directory:WordPress と同じサーバー内のフォルダーに書き出す。Path に書き出し先のフォルダーのフルパス(例:
/home/user/static-out)を入れる
設定したら、左側のパネルの「Push」をクリックすると書き出しが始まります。ローカル環境の WordPress なら、Local Directory でデプロイ用のフォルダーに直接書き出すと手間が少なくなります。ZIP の場合は、ダウンロードして展開したフォルダーを次の手順で使います。
有料の Pro 版には Cloudflare Pages へ直接デプロイする機能もあります。料金や機能は Simply Static の公式サイトで確認してください。
書き出したら、フォルダーの中に index.html があること、記事のフォルダーごとに index.html ができていること、画像や CSS が含まれていることを確認します。
Cloudflare Pagesにデプロイする
デプロイの方法は、ブラウザでフォルダーをアップロードする方法と、Wrangler を使う方法があります。どちらも Git のリポジトリを使わない「Direct Upload」の方式です。
| 方法 | ファイル数の上限 | 1ファイルの上限 |
|---|---|---|
| ダッシュボードにドラッグ&ドロップ | 1,000 ファイル | 25 MiB |
| Wrangler | 20,000 ファイル(無料プラン) | 25 MiB |
画像の多い WordPress サイトは、サイズ違いの画像ファイルも書き出されるため、すぐに1,000ファイルを超えます。ここでは Wrangler を使います。
なお、Direct Upload で作ったプロジェクトは、あとから Git 連携に切り替えることができません。Git のリポジトリから自動でデプロイしたくなったときは、別のプロジェクトを作ることになります。
Wranglerでログインしてプロジェクトを作る
Node.js をインストールした PC で、次のコマンドを実行します。最初の wrangler login でブラウザが開き、Cloudflare のアカウントでの許可を求められます。
npx wrangler login
npx wrangler pages project create my-wp-site --production-branch main
my-wp-site はプロジェクト名です。公開時の URL は、既定で https://プロジェクト名.pages.dev になります。
書き出したフォルダーをデプロイする
Simply Static で書き出したフォルダー(例: ./static-out)を指定してデプロイします。
npx wrangler pages deploy ./static-out --project-name my-wp-site --branch main
本番用のブランチ(プロジェクトを作るときに指定した main)を指定すると、本番の URL に反映されます。別の名前を --branch に指定すると、本番とは別のプレビュー用の URL にデプロイされるので、公開前の確認に使えます。
デプロイが終わると URL が表示されます。開いてトップページと記事ページ、画像の表示を確認してください。
独自ドメインを設定する
Cloudflare のダッシュボードの「Workers & Pages」でプロジェクトを開き、「Custom domains」の「Set up a domain」から公開するドメインを追加します。
- ルートドメイン(例:
example.com):ドメインのネームサーバーを Cloudflare に向け、同じアカウントで DNS を管理している必要があります。追加すると、必要なレコードは Cloudflare が作成します。 - サブドメイン(例:
www.example.com):DNS を他社で管理していても使えます。その場合は、サブドメインをプロジェクト名.pages.devに向ける CNAME レコードを自分で登録します。
CNAME レコードは、先にダッシュボードでドメインを追加してから登録してください。順番が逆だと、ドメインが正しく表示されず、522 エラーになることがあります。
Simply Static の「Replacing URLs」で Host に入れたドメインと、ここで設定するドメインを一致させてください。違っていると、ページ内のリンクや canonical が別のドメインを指してしまいます。
リダイレクトと404ページ
古いURLのリダイレクト
書き出したフォルダーの直下に、拡張子のない _redirects というファイルを置くと、リダイレクトを設定できます。1行に「元のパス 転送先 ステータスコード」を書きます。ステータスコードを省略すると 302 になります。
/old-page/ /new-page/ 301
/category/news/ /news/ 301
Simply Static の Local Directory で「Clear Local Directory」を有効にしていると、書き出しのたびにフォルダーが空にされるため、_redirects も消えます。_redirects は書き出し先とは別の場所に保存しておき、デプロイの前にコピーする手順にしておくと安全です。
404ページ
書き出したフォルダーの直下に 404.html がないと、Cloudflare Pages はサイトを SPA(単一ページのアプリ)として扱い、存在しない URL にもトップページを返します。存在しないページが 404 として扱われるよう、書き出したフォルダーに 404.html があるかを確認し、ない場合は用意してください。
記事を更新したときの流れ
WordPress で記事を更新しただけでは、公開中のサイトは変わりません。更新のたびに次の作業を行います。
- WordPress で記事を更新・公開する
- Simply Static の「Push」で書き出し直す
_redirectsなどの追加ファイルをコピーするnpx wrangler pages deployでデプロイする
デプロイしたファイルは次のデプロイまで Cloudflare のネットワークにキャッシュされ、新しいデプロイで入れ替わります。
作業を自動化する場合は、書き出しとデプロイを行うスクリプトを用意します。CI などブラウザでログインできない環境から Wrangler を使うときは、Cloudflare の API トークンを環境変数 CLOUDFLARE_API_TOKEN に、アカウント ID を CLOUDFLARE_ACCOUNT_ID に設定します。API トークンは Pages の操作に必要な権限だけを付けて発行し、リポジトリなどの公開される場所には書かないでください。
注意点
- WordPress 側の公開範囲:WordPress を外部に公開したまま静的サイトも公開すると、同じ内容のサイトが2つある状態になり、WordPress 側のセキュリティ対策も引き続き必要です。WordPress はローカル環境か、アクセスを制限したサーバーに置きます。
- 上限:無料プランのファイル数の上限(20,000)や1ファイルの上限(25 MiB)を超えると、デプロイできません。画像の数や動画ファイルの大きさを確認してください。上限は変わることがあるため、Cloudflare の公式ドキュメントの Limits のページで確認してください(2026年11月時点)。
- 書き出しの漏れ:JavaScript で読み込む画像や、テーマが動的に作る URL は、書き出しに含まれないことがあります。デプロイ前にプレビュー用の URL で主要なページを確認します。
まとめ
- Cloudflare Pages では PHP が動かないため、WordPress は Simply Static などで静的なファイルに書き出してから公開する
- 公開するドメインに合わせて「Absolute URLs」を選び、Host に公開するドメインを入れる
- ファイル数が多い WordPress サイトは、ドラッグ&ドロップ(1,000 ファイルまで)ではなく Wrangler でデプロイする
- Direct Upload のプロジェクトはあとから Git 連携に切り替えられない
_redirectsと404.htmlを用意し、記事の更新のたびに書き出しとデプロイを行う