このブログをWordPressからGhostに移行しました!

タイトル通りではあるのですが、この度長年使ってきたWordPressからGhostへ移行しました。どちらもブログを書くためのCMSではありますが、WordPressにもGhostにもそれぞれメリット、デメリットがあります。

今回はそのあたりの比較をしつつ、なぜ筆者がGhostへの移行をしたかを語っていければと思います。

WordPressの特徴とメリデメ

WordPressは世界中で圧倒的シェアを誇るCMSです。2026年2月現在で世界の全ウェブサイトの約42.8%がWordPressで出来ていると言われている、大変やべえやつですね。

メリット

  • 高い拡張性と自由度

数万種類以上の「プラグイン」を組み合わせることで、ブログ、コーポレートサイト、ECサイト、予約システムなど、ほぼあらゆる種類のサイトを構築できます。ただ、この辺りはShopifyやBASEなどのEC特化サービスや、より手軽にホームページを作れるWix、ペライチなんかがシェアを伸ばしていますね。特にEC利用はもうあんまりないかなという印象。

  • 圧倒的な情報量

利用者が多いため、トラブル解決法やカスタマイズ方法がネット上に溢れています。初心者でも検索すれば大抵の悩みは解決できます。これは本当に大きくて、日本語の情報もいっぱいでてきますし、有識者もいっぱいいます。運用で困ることはあんまりないと思います。

  • SEO(検索エンジン最適化)に強い

構造自体が検索エンジンに好まれやすく、さらに「Yoast SEO」や「Rank Math」といった強力なプラグインで、細かなSEO設定を簡単に行えます。ここに限らずプラグインでの拡張性がWordPressの利点ですね。

  • 資産の所有権が自分にある WixなどのSaaS型サービスとは異なり、データやファイルを自分で管理できます。サービス終了によるサイト消失のリスクを避けられ、サーバーの移行も自由です。
  • デザインの選択肢(テーマ)が豊富

「テーマ」を切り替えるだけで、プロ級のデザインに瞬時に変更できます。無料から有料まで選択肢が無限にあります。日本だとCocoon、Swellとかが特に有名ですよね。筆者も両方使った事があります。

デメリット

  • 保守・運用の手間

本体、プラグイン、テーマのアップデートを自分で行う必要があります。放置するとセキュリティリスクが高まり、不用意に更新するとサイトが崩れる(プラグイン同士の競合など)こともあります。筆者もファイの自動更新でサイトが落ちたりしたことがあります。まあセルフホストならWordPressでなくてもリスクはありますけどね。

  • セキュリティリスクの高さ

シェアが高いため、常にサイバー攻撃の標的になりやすいです。ログインURLの変更や二段階認証など、自身での対策が必須です。筆者はここをかなりガチガチにやってましたが、初心者の方がここの設定をしっかりやるのは難しいかなと思っています。アクセスログ見てみ。あまりの攻撃の多さに飛ぶぜ!

  • サイト速度の低下

多機能なテーマや大量のプラグインを導入すると、動作が重くなりがちです。高速化にはサーバー選びやキャッシュ設定などの知識が求められます。なお、ガチるとチューニングに多大な時間を要します。神経質な人には向いてないかも知れません。

Ghostの特徴とメリデメ

ここからはGhostについてです。WordPressと比べたらだいぶマイナーですし、特に日本でのシェアは少なめ。しかもできることはWordPressの方が多い。でも、これがハマることもあるんですよねえ。

メリット

  • 「書くこと」に特化した圧倒的なUI

WordPressのブロックエディタ(Gutenberg)よりもシンプルで、Markdownが直感的に使えるエディタは、一度慣れると離れられない快適さがあります。あと、地味にデフォルトでダークモードあるのが嬉しい。

  • デフォルトで爆速(Node.js採用)

PHPベースのWordPressに比べ、Node.jsで動作するGhostはページ読み込みや管理画面の動作が非常に軽量です。複雑なキャッシュプラグインを入れなくても高いパフォーマンスを発揮します。これは触ると間違いなく違いを感じると思います。なんか動きがスタイリッシュなんですよね。

  • 会員制・サブスク機能が標準装備

「Portal」機能により、ニュースレターの配信や有料会員限定記事の設定がデフォルトで可能です。WordPressのようにプラグインを何個も組み合わせて競合に悩む必要がありません。まだ導入出来ていませんが、そのうちやれたらいいなあ。面白いよね。これをデフォルトで用意してるの。

  • SEO・SNS最適化が「内蔵」されている

メタタグの設定、JSON-LDの生成、サイトマップ作成などが標準で完備されており、SEO系プラグインを管理する手間がありません。これも書くことに専念させるという意思を感じますね。

  • モダンな開発体験

Handlebarsを使用したテーマ制作や、ヘッドレスCMSとしての利用(API連携)など、エンジニアにとって「触っていて楽しい」モダンなスタックで構成されています。個人的に惹かれたのはここでした。フロントエンド自作してえ。

デメリット

  • 環境構築と運用のハードル(インフラ知識が必須)

WordPressのように「共有サーバーでボタン一つ」で作れるレンサバはまずないです!Amazon Lightsailなら比較的簡単に作れますが、普通にエンジニアの知識が必要です。いちおうGhost公式のサブスクはありますが、ほんのり高く、WordPressの方が安価で始めやすいのは間違いないです。

  • 情報がとても不足している

日本語の情報が極端に少なく、エラーに直面した際は英語の公式ドキュメントやフォーラムを自力で読み解く必要があります。今回の移行時も割とすんなりとはいかず、ログ追ったり移行用ファイルを眺めて置換、整形したりしました。普通に仕事です。

  • 「ブログ以外」への転用が難しい

WordPressは「何でも屋」になれるけど、Ghostは「出版・メディア」に特化しています。複雑なECサイトや独自の業務システムを組み込むには、かなりのカスタマイズ(あるいは外部API連携)が必要です。なんならブログ以外やるなという特化型らしい意思を感じます。

  • プラグインという概念がない

「ちょっとこの機能を追加したい」と思っても、WordPressのようにプラグインをインストールして終わり、ということができません。基本的にはAPIやテーマのコード修正で対応することになります。デフォルトテーマはとてもシンプルなものばかり。やはりここにも「とりあえず書け!」という意思を感じます。

なぜわざわざ移行したのか

なんとなくここまででそれぞれの特徴だったりが分かったと思うので、ここからはなぜ筆者がGhostへの移行を選択したかを語っていきたいと思います。

昔から気になってた

実はいうと、Ghostが出始めの頃にデモでローカル環境で動かしたことがありました。今でこそnode.jsは色んな所で採用されてますし、筆者も職場で触っていますが、筆者が触った2014年は「サーバー側でjs動くのマジ!?」という、いわゆるnode.jsが登場したての頃で、Ghostはこれを使っていたんですよね。

当時の筆者は新人のエンジニアで、興味があったので触ってみたのですが、やはりその頃はまだ情報が少なく、難易度が高い印象でした。ワイ文系ですしね。プログラムとか知らんし。

そんな訳で、昔から存在は知っていたのです。

移行したい、でも面倒くさい

数年前からたびたび移行しようと思っていたんですが、WordPressでの運用が長ければ長いほど、移行が億劫になるんですよね。そもそもWordPressがめっちゃ使いやすいCMSではあるし、慣れている分トラブっても復旧がすぐできますし。

そんな中でわざわざGhostに移行する必要があるのだろうか。。と二の脚を踏んでいました。

最近AIがとてもすごい

そんな中、ここ一年くらいで一気にAIが実用レベルまで進化しました。筆者もWebサービスを作ったり、もともとWordPressにプラグインを追加する形で作成していた自作ツールを脱WordPressしたりと、かなり使い倒して来ました。

そして、GhostはHandlebarsが採用されており、フロントエンドを比較的弄りやすいようになっています。また、もともとヘッドレス的な思想で軽量なので、WordPressと比べてバックエンドが軽め。そして、それをうまく生かしNext.jsやVue.jsなんかでフロントエンドを組むこともできます。自前でアレコレしやすいのはGhostらしい面白ポイントですよね。

今までだったらフロントエンドなんて仕事以外で触りたくないくらいクッソ嫌いだったのですが、今ならAIにお願いすれば基本的なコーティングはしてくれる。特にCSSとかマジ無理。

そんなこんなで、今ならGhostの利点をより活かせるかも知れん。。!と思ったわけです。

移行時に面倒くさかったこと

今回、WordPressからGhostに移行しましたが、もちろんWordPressのデータとかをそのまま引っ張って移行しています。

その中面倒だったことを振り返っていこうと思います。

大きく2点、まあ移行時によくあるやつかな。

記事データの移行

WordPressの機能で記事データのエクスポート機能があります。ただ、Ghostはjson形式でのインポートになっています。うーん、かみ合わない。

いちおうGhost公式でもとのドメインを指定すると移行できる機能があるのですが、これが上手く動かなかったので、仕方なく全て手動で行いました。ダルすぎい!

まずxmlをjsonにしなきゃいけないんですが、特に変換用のWebサイトとかはないんですよね。なのでアレコレ調べた結果、結局Geminiにやってもらいました。AIマジで神。

なんだけど、これだとスラッグが狂ったりしたので、jsonの中身を確認して置換したり、Pythonでツール作ってきれいに値が埋まるようにしたり、かなり整形に時間を使いました。

なんでプライベートでこんなことしなきゃいかんのだ。

メディアファイルの移行

基本的には記事内の画像ですね。これも移行する必要があります。旧サーバーからFTPで引っこ抜いてきて、新しいサーバーのディレクトリに置く必要があります。

しかし、WordPressとGhostはもちろんディレクトリ構成が違います。そして、上述の記事データは相対パスでWordPressのディレクトリを参照しています。ここも直さなきゃいかんのです。またもやjsonの置換が始まり、新サーバーのディレクトリ構成をちょっといじったりと、ここでも手動作業になってしまいました。

ここ数年Excelおじさん化が過ぎるので、正直久しぶりにエンジニアっぽいことしているなぁという実感はありましたが、もちろんお金にはなりません。祝日になにやっとるんだワシは。

移行後のGhostの触りごこち

無事移行が終わり、こうして記事を書ける状態に至ったので、所感を述べていこうと思います。

まず、WordPressと比べるとモダンな感じは凄く感じますね。node ならではの動きというか、やっぱりSPAは触っている時のスピード感が違います。

それと、初期設定の手間はだいぶ少ない印象を受けました。これはWordPressと比べできることが限られてると言う面もあるのですが、記事を書き始めるまでの最低限の設定と言う意味では、WordPressよりGhostに軍配が上がる感じです。

「あのプラグイン入れなきゃ!」みたいな事を考えなくてもいいんですよね、選択肢がないから。ここは文章を書きたい!という人には適している部分かなと思いました。

まだ数日しか触ってないですが、今のところかなり印象はいいですね。デザイン面はまだ初期状態でシンプルですが、これから作り込んでいきたい所存です。

最後に

Ghost触って思ったけど、やっぱりWordPressってすごい。なんでもできすぎやろ。