2026年6月17日
2026年6月17日
WordPressサイトをGitHub Pagesで公開する方法:静的化してリポジトリから配信
GitHub Pages は、GitHub のリポジトリに置いた静的なファイルを Web サイトとして公開する機能です。PHP とデータベースは動かないため、WordPress をそのまま GitHub Pages に置くことはできません。WordPress で作ったサイトを GitHub Pages で公開するには、WordPress の各ページを静的な HTML ファイルに書き出し、そのファイルをリポジトリに push します。
この記事では、プラグイン「Simply Static」で書き出したサイトを GitHub Pages で公開する手順と、記事を更新したときの反映方法、GitHub Pages を使う前に確認しておきたい制約を説明します。GitHub Pages 自体の仕組み(ユーザーサイトとプロジェクトサイト、GitHub Actions での公開、独自ドメイン)は関連記事で詳しく説明しています。
この方法が向いているサイト
構成は次のようになります。
- WordPress は自分の PC のローカル環境などで動かし、記事の作成と管理に使う
- Simply Static でサイト全体を静的なファイルに書き出す
- 書き出したファイルを GitHub のリポジトリに push し、GitHub Pages で公開する
書き出したサイトでは、コメント、問い合わせフォーム、サイト内検索、会員ログインなど、サーバー側で処理する機能は動きません。また、GitHub Pages の利用規約上、ネットショップなどの事業用のサイトや、パスワード・クレジットカード番号を送信させるサイトには使えません。個人のブログ、ドキュメント、ポートフォリオなど、更新頻度が高くなく、これらの機能を使わないサイト向けの方法です。
公開する前に、次の上限も確認してください(2026年11月時点の GitHub の公式ドキュメントによる)。
| 項目 | 上限 |
|---|---|
| 公開するサイトのサイズ | 1 GB まで |
| リポジトリのサイズ | 1 GB までを推奨 |
| 帯域 | 月 100 GB の目安(ソフトリミット) |
| ブランチからの公開 | 1時間に10回の目安(ソフトリミット) |
画像の多い WordPress サイトは、サイズ違いの画像も書き出されるため、容量が大きくなりがちです。書き出したフォルダーの合計サイズを先に確認しておきます。
公開するURLを決める
GitHub Pages のサイトの URL は、リポジトリ名によって変わります。書き出す前に、どの URL で公開するかを決めます。
| 公開する場所 | URLの例 | Simply Static の「Replacing URLs」 |
|---|---|---|
ユーザーサイト(リポジトリ名が ユーザー名.github.io) |
https://ユーザー名.github.io/ |
Absolute URLs(Host は ユーザー名.github.io) |
| プロジェクトサイト(それ以外のリポジトリ名) | https://ユーザー名.github.io/リポジトリ名/ |
Relative Path(Path は /リポジトリ名) |
| 独自ドメイン | https://www.example.com/ |
Absolute URLs(Host は www.example.com) |
プロジェクトサイトでは、サイトがドメインのルートではなく /リポジトリ名/ の下に置かれます。URL の置き換えを合わせないと、CSS や画像、ページ間のリンクが https://ユーザー名.github.io/ の直下を探しに行き、404 になります。
Simply StaticでWordPressを書き出す
WordPress の管理画面の「プラグイン」→「新規追加」で「Simply Static」を検索し、インストールして有効化します。
- 「Simply Static」→「General」の「Replacing URLs」で、上の表に合わせて選び、Scheme(
https://)と Host、または Path を入力して保存します。 - 「Simply Static」→「Deploy」の「Deployment Settings」で、Deployment Method を選んで保存します。無料版では、ZIP ファイルにまとめる「ZIP Archive」か、同じサーバー内のフォルダーに書き出す「Local Directory」を選べます。
- 左側のパネルの「Push」をクリックして書き出します。ZIP Archive の場合は、「Simply Static」→「Activity Log」に表示されるリンクからダウンロードして展開します。
書き出したフォルダー(以下の例では static-out)に index.html があり、記事ごとのフォルダーにも index.html ができていることを確認します。
有料の Pro 版には GitHub へ直接デプロイする機能もあります。料金や機能は Simply Static の公式サイトで確認してください。
リポジトリを作ってpushする
GitHub で新しいリポジトリを作ります。無料プランでは、公開リポジトリから GitHub Pages を使えます。公開リポジトリの中身は誰でも見られますが、書き出したフォルダーに含まれるのは公開するページと画像などだけなので、WordPress の設定ファイルやデータベースが含まれることはありません。
書き出したフォルダーとは別に、リポジトリ用のフォルダーを用意して push します。ユーザー名 と リポジトリ名 は自分のものに置き換えてください。
git clone https://github.com/ユーザー名/リポジトリ名.git site-repo
rsync -a --delete --exclude='.git' --exclude='.nojekyll' --exclude='CNAME' static-out/ site-repo/
cd site-repo
touch .nojekyll
git add -A
git commit -m "Publish static export of WordPress"
git branch -M main
git push -u origin main
空のリポジトリを clone した場合、手元のブランチ名は Git の設定によって master になることがあります。git branch -M main で main にそろえてから push しています。
rsync で書き出したフォルダーの中身をリポジトリのフォルダーに同期しています。--delete を付けると、WordPress 側で削除したページのファイルもリポジトリから消えます。.git フォルダー、.nojekyll、独自ドメインを設定したときに作られる CNAME ファイルは、書き出したフォルダーにはないため、--exclude で同期の対象から外して消えないようにしています。
.nojekyll は、GitHub Pages が既定で行う Jekyll の処理を止めるための空のファイルです。書き出したファイルは完成した HTML なので、Jekyll の処理は不要です。
Simply Static の書き出し先を直接リポジトリのフォルダーにしないのは、書き出しの前にフォルダーを空にする設定(Clear Local Directory)を有効にしていると、リポジトリの管理用のファイルまで消えるおそれがあるためです。
GitHub Pagesの公開元を設定する
リポジトリの「Settings」→「Pages」を開き、公開元(Source)に「Deploy from a branch」を選びます。ブランチに main、フォルダーに / (root) を選んで保存します。
数分後、同じ画面に公開された URL が表示されます。開いて、トップページ、記事ページ、画像、CSS が表示されるかを確認します。表示が崩れている場合は、ブラウザの開発者ツールで読み込みに失敗しているファイルの URL を見て、Simply Static の「Replacing URLs」の設定が公開する URL と合っているかを確認します。
画面の項目名は変わることがあります。見当たらない場合は、Pages の設定の中から公開元の選択を探してください。
記事を更新したときの流れ
WordPress で記事を更新しても、GitHub Pages のサイトは変わりません。更新のたびに次の作業を行います。
# Simply Static で書き出し直したあとに実行する
rsync -a --delete --exclude='.git' --exclude='.nojekyll' --exclude='CNAME' static-out/ site-repo/
cd site-repo
git add -A
git commit -m "Update static export"
git push origin main
push すると、GitHub Pages が自動で公開し直します。リポジトリの「Actions」タブで公開の処理が進んでいる様子を確認できます。
画像を差し替えるたびにリポジトリの履歴に古い画像が残るため、更新を繰り返すとリポジトリのサイズが大きくなっていきます。推奨の上限(1 GB)に近づいてきたら、画像のサイズを見直すか、別の配信方法を検討してください。
公開前に確認しておくこと
- リダイレクト:GitHub Pages には、URL ごとに 301 リダイレクトを設定する機能がありません。WordPress のときと同じ URL で公開できるよう、パーマリンク設定を変えずに書き出してください。
- 404ページ:公開元のフォルダーの直下に
404.htmlを置くと、存在しない URL でそのページが表示されます。書き出したファイルにない場合は用意します。 - 大きなファイル:GitHub では 100 MiB を超えるファイルは push できません。動画などの大きなファイルは別のサービスに置きます。
- WordPress 側の扱い:WordPress を外部に公開したまま静的サイトも公開すると、同じ内容のサイトが2つになり、WordPress 側のセキュリティ対策も引き続き必要です。WordPress はローカル環境か、アクセスを制限したサーバーに置き、バックアップを取っておきます。
- 独自ドメインと HTTPS:独自ドメインを使う場合は、Pages の設定でドメインを入力し、DNS にレコードを登録します。証明書が発行されたら「Enforce HTTPS」を有効にします。
まとめ
- GitHub Pages では PHP が動かないため、WordPress は Simply Static などで静的なファイルに書き出してから公開する
- 公開する URL に合わせて「Replacing URLs」を設定する。プロジェクトサイトは Relative Path に
/リポジトリ名を入れる - 書き出したフォルダーは
rsyncでリポジトリに同期し、.git・.nojekyll・CNAMEを消さないようにする - 公開元は「Deploy from a branch」で
mainの/ (root)を選ぶ - 事業用のサイトには使えず、サイズや帯域の上限、301 リダイレクトが使えない点を事前に確認する