2026年10月22日に、IPAが、遠隔から任意のコードを実行されるおそれがあるPHPの脆弱性(PHP2shell)について注意喚起を出しました[1]。WordPressのサイトを持つ会社は、PHPの更新を誰がするのかをあらためて問われています。WordPress静的化とはこの更新そのものをなくす方法です。ページを先にHTMLファイルとして書き出しておき、公開サーバーではPHPもデータベースも動かさない方式です。見た目は今のままにできます。ただし、向かないサイトもあります。更新を誰がするのかも、移す前に決めておく必要があります。
WordPress静的化とは
WordPressは、ページを開かれるたびにPHPがデータベースから文章を読み出し、その場でHTMLを組み立てて返します。静的化はこの組み立てを公開の前に1回だけ済ませ、できあがったHTMLファイルを置いておく方式です。
会社案内のページは、誰が開いても同じ内容を返します。それでもWordPressは開かれるたびに同じページを組み立て直しています。組み立てるプログラムが公開サーバーで動いている以上、そのプログラムの欠陥は外から狙える入口です。静的化は変わらないページを変わらないファイルとして置き、この組み立ての処理を公開サーバーから外します。
項目 | WordPress | 静的化したサイト |
|---|---|---|
ページの作り方 | 開かれるたびにPHPが組み立てる | 公開前に1回だけ作って置いておく |
公開サーバーで動くもの | PHP、データベース、WordPress本体、プラグイン | なし(ファイルを返すだけ) |
管理画面 | 公開サーバーの /wp-admin にある | 公開サーバーにはない |
定期的な更新作業 | 本体・プラグイン・テーマ・PHP | 公開側ではなし |
見た目 | — | 今のまま再現できる |
WordPressは2003年から続くソフトウェアです[2]。動かすには、推奨でPHP 8.3以上とデータベースが要ります[3]。
静的化で公開側からなくなるもの
静的化すると、公開サーバーからPHP、データベース、ログイン画面、プラグインがなくなります。攻撃者が狙う入口のうち、4つが消えます。
WordPressの公式の手引きは、プラグインを常に最新にすること、管理画面(/wp-admin)にサーバー側のパスワードをもう1段かけることを挙げ、2段階認証も勧めています[4]。静的化したサイトでは、公開側にこれらの対象が残りません。
脆弱性の数を見ると、プラグインを外す意味が分かります。Patchstackの集計では、2025年にWordPressの周りで新しく見つかった脆弱性は11,334件で、91%がプラグイン、9%がテーマでした[5]。46%は、公表の時点で開発者の修正が間に合っていませんでした[5]。よく攻撃に使われた脆弱性に限ると、公表から最初の攻撃が観測されるまでの時間は加重中央値で5時間でした[5]。修正を待つあいだも、更新するまでのあいだも、脆弱なプラグインを入れているサイトは攻撃の対象に入ります。
米国のNIST(国立標準技術研究所)は、2007年のウェブサーバーの手引きで、初期のウェブは静的なHTMLが中心で、のちに加わった対話的な仕組みが多くの脆弱性を持ち込んだと書いています[6]。静的化はこの対話的な仕組みを公開側から外す選択です。
PHPの脆弱性そのものについては「PHP2shellとは?自社サイトの確認と対処」に書きました。作り直したサイトは公開サーバーでPHPを動かさないため、PHPの更新を待つ必要がありません。
静的化の2つのやり方
静的化のやり方はWordPressを残して書き出す方法と、WordPressを使わずに作り直す方法の2つです。どちらを選ぶかで、静的化したあとに残る作業が変わります。
やり方 | 中身 | 残る作業 | 向いている会社 |
|---|---|---|---|
WordPressを残して書き出す | 社内などにWordPressを置き、プラグインでHTMLを書き出して公開する | 残したWordPressとPHPの更新は続く | WordPressの管理画面で更新を続けたい |
作り直す | ページをHTMLのファイルとして作り直し、WordPressを使わない | 公開側の更新作業はない。文章の差し替えはファイルを直して公開し直す | 会社案内が中心で、文章の差し替えは年に数回。ファイルを直せる人か依頼先がある |
1つ目のやり方ではSimply Staticのようなプラグインを使います。開発元は書き出したサイトにはデータベースもログイン画面もないと説明しています[7]。ただし、書き出すためのWordPressはどこかで動かし続けるため、その本体とPHPの更新は残ります。
AX総合研究所は、文章の差し替えが年に数回までの会社には、2つ目の作り直す方法を提案しています。WordPressもPHPも持たないので、PHP2shellのような注意喚起が出ても、ホームページのPHPを更新する作業はありません。AX総合研究所のサイトも静的なファイルをCloudflare Pagesから公開しています。
公開先にCloudflareを使う理由と無料の範囲
静的化したファイルは置いて返すだけのサービスで公開できます。AX総合研究所は、無料プランで会社のホームページに必要な範囲が収まるCloudflare Pagesを使います。
項目 | 無料プラン |
|---|---|
静的ファイルへのアクセス | 無料・無制限 |
1サイトのファイル数 | 20,000まで |
1ファイルの大きさ | 25MiBまで |
ビルド(変更を取り込んで組み立てる処理) | 月500回まで |
独自ドメイン | 1サイトに100まで |
SSL(https) | 無料。発行と更新は自動 |
出典はCloudflareの料金ページ[8]、制限のページ[9]、SSLのページ[10]、独自ドメインのページ[13]です。
2万ファイルはページ・画像・PDFを合わせた数です。会社案内が中心のサイトなら、この上限に届くことはまずありません。ビルドも月500回まで使えます。毎日1回更新しても月30回ほどです。サーバー代と保守費がどれだけ下がるかは「ホームページ保守費用の相場と内訳」で、相場の表と並べて比べています。
問い合わせフォームはどう動かすか
問い合わせフォームはフォームの送信だけを受け取る小さなプログラムを、Cloudflareの別の機能で動かします。ページは静的なまま、送信のときだけプログラムが動きます。
このプログラム(Pages Functions)は、Cloudflare Workersの無料枠を使います。無料枠は1日10万リクエストで、日本時間の朝9時にリセットされます[8][11]。問い合わせの送信だけに使うなら、1日10万件の上限に届くことはまずありません。同じアカウントでWorkersを使っている場合は、その分と合算されます[8]。
WordPressを残して書き出すプラグインの無料版では、フォームやコメントは静的なサイトでは動かず、有料版の機能が要ると開発元が書いています[7]。作り直す方法なら、送信を受け取るプログラムを最初から組み込めます。
静的化が向かないサイト
静的化は、サーバーでその場の処理が要る機能を持つサイトには向きません。Simply Staticの開発元は、ネットショップ、会員サイト、ログインが要るサイト、データがその場で変わるサイトを向かない例に挙げています[7]。予約システムのように最新の空き状況を出すサイトも、最後の例に当たります。
もう1つ、更新の頻度と、更新する人を考えてください。静的化したサイトには、WordPressのような管理画面がありません。移行したあとに文章を直すには、HTMLのファイルを直して公開し直す人が要ります。AX総合研究所の移行サービスはこの更新作業を含みません。社内でファイルを直せる人がいない会社は、移行の前に更新を頼む先を決めてください。ブログを毎日書く会社や、社内の担当者が管理画面で頻繁に直している会社は、WordPressのまま更新と保守を続けるほうが合っています。
乗り換えの手順とドメイン・メールの扱い
乗り換えは今のサイトを再現して公開先を切り替える作業です。ホームページのアドレスは変えずに移せます。
- 今のサイトのページ、文章、画像を集める
- 同じ見た目のHTMLを作る
- Cloudflare Pagesで公開し、切り替える前に見た目と動きを確かめる
- ドメインの向き先を切り替える
ドメインの登録先は変えなくてかまいません。Cloudflareは、登録先から移る必要はなく、変えるのはネームサーバーの向き先だけだと説明しています[12]。
www で始まるアドレスだけを切り替えるなら、Cloudflare Pagesの管理画面で独自ドメインを登録してから、今のDNSにCNAMEレコードを1行足します。順番を逆にすると、ページが表示されません(エラー522)[13]。ただし、www のないアドレスを旧サーバーに残すと、そちらではWordPressが動き続けます。両方を移すには、ネームサーバーをCloudflareに切り替えます[13]。
メールを止めないために
メールで気をつけるのは、ネームサーバーを切り替えるときです。メールに関わるレコードはMXだけではありません。メールサーバーを指すAレコード(mail など)と、なりすまし対策のTXTレコード(SPF・DKIM・DMARC)も、Cloudflareに移したあと同じ値で残っている必要があります[14]。Cloudflareは自動の読み取りではすべてのレコードを拾えないため、メールのレコードはとくに確かめるよう求めています[14]。例に挙げたメールのレコードは、いずれもプロキシを通さない設定です[14]。
ドメインでDNSSECを有効にしている場合は、ネームサーバーを切り替える前に登録先で無効にします。有効のまま切り替えると、ホームページにもメールにもつながらなくなることがあります[14]。メール用のレコードをすべて移せば、メールは今の契約のまま使えます。レンタルサーバーでメールを使っている会社は、ホームページを移してもメール用の契約は残ります。
切り替える前に確かめること
切り替えの前に、新しいサイトを公開前のアドレスで開き、次を確かめます。
- 全ページが今のサイトと同じアドレスで開けるか
- 画像、PDF、動画が表示されるか
- 問い合わせフォームから送信し、届くか
- スマートフォンで表示が崩れないか
- メールの送受信が切り替えの前後で止まらないか
アドレスを変えずに移せば、取引先に配った名刺やチラシの表記も、検索結果に出ているページのアドレスもそのまま使えます。
まとめ
WordPress静的化はページを先に作って置いておき、公開サーバーからPHP、データベース、ログイン画面、プラグインを外す作りです。会社案内が中心で、文章の差し替えが年に数回までの会社なら、作り直す方法でPHPの更新作業そのものをなくせます。自社のサイトが静的化に向くか分からない場合は、無料相談からホームページのアドレスをお送りください。移行できるかどうかと、お見積りをお返事します。
参考文献・出典
- PHPの脆弱性対策について(CVE-2026-109618、CVE-2026-109619:PHP2shell) — 情報処理推進機構(参照 2026-10-23)
- History — WordPress.org(参照 2026-10-23)
- Requirements — WordPress.org(参照 2026-10-23)
- Hardening WordPress — WordPress.org(参照 2026-10-23)
- State of WordPress Security In 2026 — Patchstack(参照 2026-10-23)
- Guidelines on Securing Public Web Servers (SP 800-44 Ver. 2)(6.4節) — NIST(参照 2026-10-23)
- Simply Static — WordPress.org プラグインディレクトリ(参照 2026-10-23)
- Pricing(Pages Functions) — Cloudflare(参照 2026-10-23)
- Limits(Pages) — Cloudflare(参照 2026-10-23)
- Universal SSL — Cloudflare(参照 2026-10-23)
- Limits(Workers) — Cloudflare(参照 2026-10-23)
- DNS FAQ — Cloudflare(参照 2026-10-23)
- Custom domains(Pages) — Cloudflare(参照 2026-10-23)
- Full setup(DNS) — Cloudflare(参照 2026-10-23)
※数値・料金は2026年10月23日時点の情報です。Cloudflareの無料プランの範囲は変わることがあるため、最新の情報は各出典でご確認ください。


