自分のブログにWordPressを使うのをやめて良かったこと・悪かったこと。

感想記事です。このブログをWordPressからGridsomeに移行して半年くらい経ったのと、ぼちぼち質問を受けたので「良かったこと」「悪かったこと」をまとめることにしました。
正確にいうとWordPressはHeadless CMSとして裏で動いているので、完全にやめたわけではないのですが、記事のMarkdown化をするか別のHeadless CMSへの乗り換えを検討中なので、そのうち完全にお別れすると思います。(と言いつつ半年経過している)

そもそもなぜWordPressをやめたのか

大小含めいくつか理由があるのですが、最も大きいものを3つ挙げます。

脆弱性対策へのコストが無視できなくなった

2020年9月にWordPressのプラグインに大きな脆弱性が見つかりました。
WordPress 用プラグイン「File Manager」の脆弱性対策について(CVE-2020-25213) :IPA 独立行政法人 情報処理推進機構
自分のブログでは導入していないプラグインではありましたが、WordPress本体にも致命的な脆弱性が出てくる状態の中、自分以外の人間が作ったプラグインの面倒を見ることに限界を感じたので、Jamstackを使うことにしました。
ちなみにJamstackを選んだ理由は、WordPressに嫌気を感じていた時に以下の記事を見て「いいな~~~」と思ったのと、ちょうど直前にNuxt.jsを触っていて「今どきのJavaScriptのフレームワーク面白いな~~~」となっていたからです。安易ですね。
7年間使ってきたWordPressを捨ててContentful+Gatsby+Netlifyにしたら爆速になったし経緯とか教訓とか語る – Qiita

余談ですが、自分のWebサーバーに来る不審なアクセスのおおよそ80%がWordPressへの攻撃だったため、この点もWordPressをやめるのに十分な理由でした。ブログを書きたいだけなのに、クラックされていないか定期的に確認したり、セキュリティ対策を見直したり、書くことだけに集中できないのはストレスが溜まりました。

テーマや機能を修正するのがとにかく楽しくない

大体の機能はプラグインで実現できますが、かゆいところに手が届かない場合は自分で作成・修正する必要があります。見た目の改造をしたいだけなのに、CSSだけでは完結せずぐちゃぐちゃに入り組んだPHPに手を入れる必要があったり、既存機能の挙動を少し変更したいだけなのにWordPressのよくわからんAPIを調べる必要があったりでとにかく楽しくなかったです。

WordPressのプラグインやテーマを作成・改造してもPHPのスキル向上にならない

上述のテーマや機能を修正するのがとにかく楽しくない理由につながるのですが、必要になるのがPHPのスキルではなく、WordPressに対する知識に偏るため、WordPress以外に一切応用できないのがつらかったです。
プラグイン開発も、別にプラグインが作りたいわけではなくて自分の必要な機能がほしかっただけなので、一回作ったらそれっきりになってしまいました。

Gridsomeに乗り換えて不満は解消できたのか

おおむね解消できました。脆弱性やセキュリティについては、静的コンテンツなので攻撃されようがないですし、機能の追加についても、Vue.jsとGraphQLを使うことになるのでとても楽しいです。見た目の修正がHTMLとCSSで完結するのもうれしいですね。
Gatsubyのほうができることは多いらしいのですが、私は今の所Gridsomeで十分だと感じています。

Jamstackに移行したことで発生した問題

とくに不満らしい不満はないのですが、静的コンテンツだとどうしても解決が難しい点はいくつかあります。

全文検索ができなくなる

このブログでは記事を形態素解析した結果を検索することでそれっぽく見せています。が、やはり引っかからない記事もちらほらある状態です。ここは私が実装を頑張るべきところですね。
(2021/05/04追記)全文検索にlunrを導入しました。引っかからない記事もありますが、前より精度は上がった気がします。
Algoliaは使ったことがないためコメントできないのですが、検索のためだけにWordPressが捨てられない人(そんな人いるのか)がいれば、検討の余地はあると思います。
Site Search & Discovery powered by AI | Algolia

記事にコメントができなくなる

Disqusを使えばいいと思います。
Disqus – The #1 way to build an audience on your website
このブログはコメントをもらうことよりもメールで問い合わせをもらうことのほうが多かったので、コメント機能の導入予定はありません。
Disqusがサービス終了するのが不安なら、裏でWordPressを動かしておいて、コメント機能だけAPIで呼び出しても良さそうです。

Headless CMS用のWordPressをどこで動作させるか未だに悩む

WordPressについては、完全にお別れするまでの間Headless CMSとして運用しているのですが、どこで動かすのがベストなのか未だに悩んでいます。
ローカルホストのみで運用できればそれがベストなのですが、私の場合、WordPressはインターネットから使いたいので、その手段がとれません。
当初はこのブログのホスティング先になっているVPS内にWordPressが同居していて、FQDNを分ける+WordPressにアクセス制限をかける形式で運用していました。
WordPressのためだけに動かしているMySQLとphp-fpmリソースが無駄だったので、WordPressを自宅サーバー(Raspberry pi)に移行したのですが、自分も含め家族が在宅勤務という状態になり、家庭のネット環境に余計なリスクを増やしたくないという気持ちになりました。
そのため、現在はAWS EC2で使うときだけインスタンスを起動する運用にしています。今は無料期間中のため実際の支払額がどうなるか不明なのですが、無料期間中にWordPressとお別れする予定です。ちなみに、画像は記事投稿時にEC2からホスティング先にrsyncされるようになっています。
mysqldumpでDBをダンプして、CIでWordPress用のコンテナを立ち上げてビルドするのもありだとは思っています。頭が悪い感じはしますが。

所感

個人的にはWordPressから移行して本当によかったと思っているので、同じように悩んでいる方がいれば、ぜひ乗り換えを検討してみてください。
Gridsomeでのビルド方法とかWordPressのテーマをどうやってGridsomeで使えるようにしたか等も質問が来てたので、そのうち記事にしたいです。