15年近く運営なさっていたけど、今は更新が止めておられるWordPressブログの静的化のお仕事をさせていただきました。
記事はおよそ2,000本。画像は17万枚で6.5GB。
静的サイトは、Cloudflare Pages + R2 へ移行しました。全4,018ページ・画像170,196枚を移して、月々のサーバー代は、ほぼゼロ円に。
Claude Codeを使ったところ、WordPressの静的化プラグインを使うよりも、ほとんどの作業を任せることができて、かなり楽に作業を進めることができました。バンザイ。
なぜ「静的サイト化」なのか
更新が止まったブログにとって、WordPressは過剰装備です。
記事を書かないのに、PHPとデータベースは毎日動き続ける。本体・プラグインのセキュリティ更新は必要で、放置すれば改ざんの的になる。実際、このブログのWordPressはバージョンがかなり古いままでした。
で、記事が変わらないなら、全ページを「完成したHTML」として保存してしまえばいい。これが静的サイト化です。
PHPもデータベースも無くなるので、攻撃される入り口がほぼ消える。表示も速くなる。Cloudflareの無料枠に載れば、維持費もほぼゼロ。更新は停止したが、アーカイブとして残しておきたい場合に、良い選択肢だと思っています。
全体の流れ
やったことを並べると、こうなります。
WordPressの全ページをクロールしてHTML化 → HTMLを一括変換(動的機能の置き換え) → Cloudflare Pagesへデプロイ → 画像17万枚をR2へ → 新旧サイトを全数チェック → DNS切替。
なお、静的化すると、コメント欄・検索・フォームといった「動く機能」は失われます。
つまずきポイントは、Pagesの「2万ファイル制限」
Cloudflare Pagesには、1プロジェクト20,000ファイルまでという制限があります。
HTMLとテーマ一式で約4,200ファイル。収まりそうですが、が、画像が170,196枚。
入りきりません。
そこで、画像はオブジェクトストレージのR2に分離しました。
R2に画像専用のサブドメインを割り当てて、HTML内の画像URLを一括書き換え。Pagesが本文、R2が画像、という分担です。
スマホとPCの出し分けは、Pages Functionsのミドルウェアで解決しました。スマホのユーザーエージェントならスマホ版HTMLを内部的に返す、という20行ほどのJavaScriptです。URLが変わらないので、SEO的にも安心。
と、この辺り、全部 Claude Codeに任せることで進めました。
ちなみにR2は10GBまで無料です。このブログは6.5GBなので、無料枠に収まりました。ありがたい。
移行でいちばん怖いのは、気づかない欠落です。2,000記事を目視で確認するのは無理。なので、検証もClaude Codeに全数チェックさせました。
全4,018 URLにリクエストを投げて、すべて200が返ることを確認。抜き取りで30ページのタイトルを新旧で突き合わせ。旧サイトのサイトマップにあるURLが新サイトに全部あるかの照合。アクセス解析タグ、ads.txt、robots.txt、sitemap.xmlの引き継ぎ確認。
この全数チェックを、公開前と、DNS切替後の本番ドメインで、それぞれ回しています。
手作業なら数日かかる検証が、自動化するとあっという間に完了。
こういう「面倒だけど省いてはいけない工程」こそ、AIエージェントの出番だと実感しました。
DNS切替と、切り戻しの保険
最後に、ドメインのDNSをCloudflare Pagesへ向けて、公開。
切替自体は数分で終わります。
ただ、旧サーバーはしばらく並行で残しておけば、万一のときにDNSを戻すだけで旧環境に復帰できる。保険です。
安定を確認してから解約すれば、そこから維持費ゼロ円の運用が始まります。
この手の移行は、当然ながら自己責任になります。作業前のバックアップと、切り戻し手段の確保は必ず。
まとめ
更新が止まってサーバー代だけがかかっていたWordPressブログが、表示速度アップ・維持費ほぼゼロの静的サイトとして生まれ変わりました。
2,000記事・画像17万枚という物量でも、クロール→変換→Pages+R2→全数検証という流れに乗せてしまえば、想像よりずっと現実的です。実作業の大半はClaude Codeが回してくれて、僕は方針の判断と、要所の確認だけ。
長年書き続けたブログは、それ自体が資産です。
更新が止まったからと消してしまう前に、静的化して残すという選択肢を思い出してもらえたら嬉しいです。







