【雑記】WordPress から Astro へサイトを全面移行した話

  • WordPress
  • Astro
  • サイト移行

Sponsored

ある日突然、自分のサイトが開けなくなりました。

この記事では、WordPress の突然死をきっかけに、Astro への全面移行を決意し、AI を活用して 2.5 時間で完了させた話を書きます。

きっかけ ── 突然のサイトダウン

いつものようにサイトを開こうとしたら、こんな画面が表示されました。

WordPress エラー画面

「このサイトで重大なエラーが発生しました。」

何のリリースもしていないのに突然これです。WordPress を使っている方なら、一度は目にしたことがあるかもしれません。

この時点では原因がまったくわからず、とりあえず調査を開始しました。

原因調査 ── メモリ不足とテーマの問題

デバッグモードを有効にする

WordPress でエラーの詳細を確認するには、wp-config.php を編集してデバッグモードを有効にします。

FTP でサーバーに接続し、WordPress のルートディレクトリにある wp-config.php を開きます。

以下の行を探します。

define('WP_DEBUG', false);

これを以下のように変更します。

define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);
  • WP_DEBUG: デバッグモードの有効化
  • WP_DEBUG_LOG: エラーログを wp-content/debug.log に出力
  • WP_DEBUG_DISPLAY: ブラウザへのエラー表示を抑制(ログだけ残す)

設定後、サイトにアクセスして wp-content/debug.log を確認すると、メモリ不足(Allowed memory size exhausted) のエラーが記録されていました。

・・・。 ・・・・・・・?

何もしてないぞ?

切り分け開始

メモリ不足ということはわかりましたが、何がメモリを食っているのかを特定する必要があります。

定番の切り分けを順番にやっていきました。

1. プラグインの ON/OFF

FTP で wp-content/plugins フォルダの名前を一時的にリネーム(例: plugins_bak)して、全プラグインを無効化。

変化なし。 プラグインが原因ではない。

2. テーマの切り替え

管理画面にもアクセスできなかったので、FTP で wp-content/themes 内の現行テーマフォルダをリネームして強制的にデフォルトテーマに切り替え。

WordPress はアクティブテーマが見つからないと、インストール済みのデフォルトテーマ(Twenty Twenty-Five など)にフォールバックします。

表示された!

ということは テーマが原因 です。

Cocoon が犯人、だが詳細は不明

使っていたテーマは Cocoon でした。

無料テーマとしては非常に優秀で、長年お世話になっていたのですが・・・。

さらに切り分けを試みました。

  • 親テーマのみで確認 → エラー
  • 子テーマのみで確認 → エラー
  • スキンを切り替えて確認 → エラー

Cocoon のどのコンポーネントが悪いのかまでは特定できませんでした。

テーマ自体のどこかでメモリを大量消費しているようです。

サーバー設定にトライ ── メモリ上限を上げられない

テーマ側で解決できないなら、サーバー側でメモリ上限を引き上げればいいのでは?

Lolipop ハイスピードプランの壁

当時使っていたのは Lolipop のハイスピードプラン でした。

ハイスピードプランは LiteSpeed を採用しているのですが、この環境では PHP のメモリ上限をユーザー側で変更できません でした。

wp-config.php に以下を追記してみましたが、効果なし。

define('WP_MEMORY_LIMIT', '256M');

.htaccess に以下を追記してみても、効果なし。

php_value memory_limit 256M

LiteSpeed 環境では .htaccessphp_value ディレクティブが無視されるケースがあり、まさにそれでした。

管理画面からメモリ設定を変更する手段も見当たらず、サーバー側でのアプローチは行き詰まりました。

移行を決意 ── AI と 2.5 時間の全力疾走

ずっとやろうと思っていた

正直なところ、WordPress からの脱却はいつかやろうと思っていました。

WordPress は高機能ですが、テーマやプラグインの依存関係、アップデートの度に何か壊れないかヒヤヒヤする運用、そしてそもそも動的生成の必要がない個人ブログには少々オーバースペックです。

ただ、惰性で使い続けていて、なかなかタイミングを見失っていました。

今回の件で完全に腰が上がりました。

「今は AI もあるし、すぐ終わるだろう」 という楽観的な見通しもありました。

やったこと

移行の手順はこんな感じです(概ねの流れのイメージが伝わればいいです)。

  1. WordPress の全データをローカルへ退避

    • FTP ツールでサーバー上の WordPress ファイルを全てローカルにダウンロード
  2. データベースのダンプ

    • phpMyAdmin の UI からデータベースを SQL でエクスポート
  3. Astro プロジェクトの構築

    • ダウンロードした WordPress のデータ(投稿、画像、メタ情報など)を移行元として、AI に Astro のテンプレートを組ませる
    • Git に初期コミット
    • 投稿データの一括変換・移行をコミット
  4. デザイン修正と機能改善

    • 元のサイトのデザインを再現しつつ、Astro + Tailwind CSS でモダンに再構築
    • 各種修正を重ねて完成
  5. デプロイ

    • Astro の SSG(静的サイト生成)でビルドし、FTP でサーバーに反映

所要時間: 2.5 時間

ここまでの全工程で、かかった時間はたったの 2.5 時間 でした。

正直、こんなに早くできるとは思いませんでした。

AI にテンプレート生成やデータ変換を任せられたのが大きいです。

手作業でやっていたら、少なくとも丸一日はかかっていたでしょう。

WordPress の管理画面で記事を書く時代から、マークダウンで記事を書いて Git で管理する時代へ。

開発者としてはこちらの方がずっと自然です。

※WP時代からあの記事作成には辟易していて、MD形式のエディタプラグインを入れてました。

おわりに

WordPress の突然の不具合がきっかけで、結果的にはずっとやりたかった Astro への移行を実現できました。

怪我の功名というやつですね。

静的サイトになったことで、表示速度は圧倒的に速くなり、セキュリティリスクも激減しました。テーマやプラグインのアップデートに怯える日々からも解放されました。

もし WordPress の運用に疲れている方がいれば、Astro への移行は選択肢としておすすめです。特に、AI を活用すれば移行コストは驚くほど低く済みます。

重い腰が上がらない方は、WordPress が壊れるのを待つのもアリかもしれません(冗談です)。

Sponsored