こんにちは。
会員サイトを作るとき、WordPressをベースに会員サイト化プラグインを利用するという手法があります。学習コストや制作コストが低く、それでいて高単価の案件を受託できるため比較的人気な手法のように思います。
しかしその仕組みをよく理解せずに利用すると、作ってからしばらく経った時に大きな問題を引き起こす可能性があります。今回はそのリスクと解決策、代替案を紹介します。
理由1:長期的な運用に耐えないものが多い
実は最近実際の案件で出会ってこれを実感しました。
何が問題なのかというと、独自テーブルを作らないプラグインが結構あるんです。会員情報などを綺麗に保存するためのデータベースを作らないということです。Ultimate Member(無料版)など有名なプラグインでも該当することがあります。昔からあるものがそうなっていることが多いですね。
独自テーブルを作らないとなるとWordPressのデフォルトで存在している保存場所、wp_postmetaやwp_usermetaというカラムに際限なくデータを入れてしまいます。これが非常に厄介。これらのデータが肥大化すると、例えばページの読み込み速度が異常に遅くなったり(1ページ開くのに20秒以上かかることも!)、ひどいと管理画面にログインができなくなったりします。
データが肥大化した時にスケーリング(サーバーの性能をあげたり、複数サーバーを立てて負荷分散)することも、AWSやGCPなどのクラウドに比べればあまり得意ではありません、
そしてこの問題をよりややこしくしているのが、データが少ないときは問題ないように見えることです。テスト時にそれほどダミーデータを用意せずに動作させるとこれらの問題が隠れてしまうので要注意です。
理由2:リプレイスも大変
上記の問題が発生したとき、基本的な解決策はリプレイスになります。
- プラグインを別のものに入れ替える
- そもそもWordPressでない技術を使う
などです。この時に困るのが、データの移行です。前述のとおりwp_postmetaにデータを際限なく入れてしまうのですが、データの分類も何もなく入ってしまいます。単純にデータが重いこととは比べ物にならないくらいに問題です。
例えば次の画像のような状態になってしまいます(画像1)。例としてスプレッドシートで作りました。

画像のようにExcelやスプレッドシートで分類なく情報が入っていたら困りますよね。会員情報が1行にまとまっておらずバラバラに保存されています。
本来なら会員情報シートに綺麗にまとまっているべきです(画像2)。各行が各ユーザーに対応している形です。

画像1の状態ではデータベースの情報を綺麗に整理するのに非常に時間がかかります。その上移行したものが正しいか確認するにも大変なコストがかかります。
理由3:根本的にWordPressは会員制サイトに向かない
前提としてWordPressはブログツールとして開発が始まっています。当初は会員制サイトを作ることは想定されていませんでした。確かに開発が進みある程度は会員制サイトの運用にも耐えられるようになっていますが、やはり限界があります。
これまで触れてきたデータベースの問題だったり、セキュリティ的にもやや弱い点など問題を挙げればキリがありません。
したがって、初めから大規模のサービスになることを目指しているなら他の選択肢もよく吟味した方が良いでしょう。
対策1:独自のテーブルを作るプラグインを選ぶ
では対策です。少なくとも独自テーブルを作るプラグインを選びましょう。ほとんど有料になりますが、総合的に見れば課金を視野に入れた方がいいでしょう。
有名どころのプラグインを表にまとめますが、独自テーブルのないものはまず候補から外しましょう。個人的に調べた中ではMemberPressとPaid Memberships Proの有料版が良さそうです。機能が豊富な上に公式もしくは有志により日本語対応しているようです。まずはこの2つからリサーチをするのがおすすめです。
プラグイン名(バージョン) | 無料/有料/フリーミアム | 独自テーブル | 公式サイトURL |
---|---|---|---|
MemberPress | 有料 | あり(mepr_ プレフィックス) | memberpress.com |
Paid Memberships Pro(無料) | フリーミアム(コア無料) | あり(pmpro_ テーブル) | paidmembershipspro.com |
Paid Memberships Pro(有料) | 有料 | あり(pmpro_ テーブル) | paidmembershipspro.com |
Restrict Content(無料版) | 無料 | なし | wordpress.org/plugins/restrict-content |
Restrict Content Pro(有料) | 有料 | あり(v3.0以降、カスタムテーブル導入) | restrictcontentpro.com |
Ultimate Member(無料) | フリーミアム(コア無料) | 任意(会員検索用に um_metadata テーブル使用可) | ultimatemember.com |
Ultimate Member(有料) | 有料 | 任意 | ultimatemember.com |
WishList Member | 有料 | あり(wlm_ /wlcc_ プレフィックス) | wishlistmember.com |
WooCommerce Memberships | 有料(WooCommerce拡張) | なし(カスタム投稿タイプ&メタ利用) | woocommerce.com/products/woocommerce-memberships |
s2Member(無料) | フリーミアム(コア無料) | なし | s2member.com |
s2Member Pro | 有料 | なし | s2member.com |
WP-Members | 無料(拡張有料あり) | なし | wordpress.org/plugins/wp-members |
対策2:WordPress以外の技術を使う
そもそもWordPress以外のものを使うこともちゃんと考えた方がいいでしょう。また、正直言ってしまうと会員制サイトの案件に対してWordPressを候補に入れる時点で予算の問題やエンジニアの技術力問題があるケースが多いため「それができればやってる・・・」と思うかもしれません。
一方そういったケースにおいて前述の問題が発生したとき、結局同様の問題にぶつかります。
- 予算/技術力がないからリプレイスがうまくできない
- 技術力がないからプラグインの選定を間違えてしまった
- etc
などでしょうか。クライアントの課題解決のためにも、総合的に適切な手法を提案できるように考えておきましょう。
よくある質問
- Q無料のWordPress会員制プラグインは使っても問題ないですか?
- A
小規模・短期的な運用であれば使えるケースもありますが、長期運用には向きません。多くの無料プラグインは独自テーブルを使わず、データ肥大化や速度低下の原因となります。
- Q有料プラグインでおすすめはありますか?
- A
MemberPressやPaid Memberships Pro(有料版)は独自テーブルを使用しており、長期運用やデータ管理に優れています。特に会員情報の分類が明確で移行にも有利です。
- QWordPress以外の選択肢にはどんなものがありますか?
- A
- Q会員制サイトを作るなら最初に何から検討すべきですか?
- A
「規模・継続性・予算・担当者の技術力」を基準にプラットフォーム選定を行うべきです。WordPressを選ぶ場合は、必ず独自テーブル対応プラグインを調査し、将来的な移行も視野に入れてください。
コメント