今後の10年を左右するCMSの決断
コンテンツ管理システムの選定は、単に今日の要件だけの問題ではありません。選ぶCMSは、その後何年にもわたって開発スピード、チームの採用対象となる人材プール、セキュリティ体制、そしてデジタルプレゼンスが到達できる上限を決定づけます。
オープンソースCMSの分野では、3つのプラットフォームが主流を占めています。WordPress(全ウェブサイトの43%を支える)、Drupal(政府機関や高等教育機関で使われるエンタープライズ向けの実力派)、そしてUmbraco(Mercedes-Benz、Microsoft、Carlsbergに信頼される.NETベースのCMS)です。
この比較は、マーケティングの宣伝文句を超えて、本番環境で本当に重要となるアーキテクチャ上のトレードオフを理解する必要がある技術的意思決定者(CTO、リード開発者、エージェンシー経営者)に向けて書かれています。
クイックオーバービュー: 3つのCMSの思想
| 観点 | WordPress | Drupal | Umbraco |
|---|---|---|---|
| プラットフォーム | PHP | PHP | .NET (C#) |
| 市場シェア | ウェブの約43% | ウェブの約1.2% | ウェブの約0.3% |
| 適した用途 | ブログ、中小企業サイト、マーケティング | 政府機関、高等教育、複雑なデータ | エンタープライズ、イントラネット、.NET開発チーム |
| ライセンス | GPLv2 | GPLv2 | MIT |
| データベース | MySQL/MariaDB | MySQL、PostgreSQL、SQLite | SQL Server、SQLite、SQL CE |
| ヘッドレス対応 | REST API経由(限定的) | JSON:APIを標準搭載 | Content Delivery APIを標準搭載 |
| 学習曲線 | 低い | 急峻 | 中程度(.NETの知識が必要) |
アーキテクチャの詳細
WordPress: プラグインエコシステムは強みでもあり弱みでもある
WordPressは手続き型のPHPを基盤とし、フックベースのプラグインシステムで動作します。そのアーキテクチャは2003年以来、根本的には変わっていません。新機能は既存の構造を置き換えるのではなく、その上に積み重ねられていきます。この後方互換性はWordPressの最大の武器であると同時に(58,000以上のプラグインが連携して動作する)、弱点でもあります(プラットフォームがレガシーなアーキテクチャ上の判断を無期限に引きずり続ける)。
WordPress 5.0で導入されたGutenbergブロックエディターは、Reactベースの近代化への取り組みですが、従来のエディター基盤とはぎこちなく共存しています。フルサイト編集(FSE)はブロックをテーマにまで拡張しますが、その普及はエコシステム全体で見るとまだムラがあります。
アーキテクチャ上の主な懸念点: WordPressはグローバルな状態に依存し、wp_optionsテーブルがキーバリューの何でも入れ場所となり、第一級の依存性注入コンテナが存在しないため、大規模なWordPressアプリケーションは相応の規律なしにはテストや保守が難しくなります。
Drupal: 複雑さと引き換えのエンタープライズパワー
Drupalのアーキテクチャは根本的に異なります。Symfonyコンポーネント上に構築され、構造化されたエンティティシステム、構成管理パイプライン、そして正式なキャッシュレイヤー(BigPipe、Dynamic Page Cache、Internal Page Cache)を備えています。Drupalのエンティティ参照とViewsのシステムにより、サイト構築者はコードを書かずに複雑なコンテンツの関係をモデル化できます。
DrupalのLayout BuilderとParagraphsモジュールは柔軟なページ構成を提供し、そのJSON:API実装は第一級です。Drupalは追加のプラグインなしで、そのままヘッドレスCMSとして機能できます。
アーキテクチャ上の主な懸念点: Drupalの複雑さは急峻な学習曲線を生みます。サイト構築者はエンティティ、バンドル、フィールド、表示モード、フォームモード、構成の同期を理解する必要があります。これらはWordPressには相当する概念が存在しません。開発者の採用対象となる人材プールは小さく、経験豊富なDrupal開発者は高い単価を要求します。
Umbraco: クリーンなアーキテクチャ、.NET基盤
UmbracoはASP.NET Core上に構築され、コンテンツ管理(バックオフィス)とコンテンツ配信(フロントエンド)がクリーンに分離されています。WordPressのプラグインフックやDrupalのフックシステムとは異なり、Umbracoはコンポジションベースのアーキテクチャを採用しています。サービスは依存性注入によって登録され、コンテンツは強く型付けされたC#クラス(ModelsBuilder)としてモデル化され、レンダリングパイプラインはMVCまたはヘッドレスのContent Delivery APIを通じて完全にカスタマイズ可能です。
バックオフィスは、Umbraco 14以降で「Bellissima」として再構築されており、Umbraco Management APIと通信するモダンなTypeScript/Web Componentsアプリケーションです。コンテンツ編集者は直感的なツリーベースのインターフェースを、開発者はよく構造化されたAPIサーフェスを手に入れます。
アーキテクチャ上の主な利点: Umbracoの設計は「適切な抽象度」を体現しています。WordPressのようなサイトビルダーになろうとも、Drupalのようなコンテンツフレームワークになろうともせず、開発者にフロントエンドの構築を委ねるコンテンツプラットフォームです。その結果、よりクリーンなコード、優れたテスト容易性、そして問題が発生したときのより浅いデバッグ階層が得られます。
セキュリティ体制
| セキュリティ要素 | WordPress | Drupal | Umbraco |
|---|---|---|---|
| 攻撃対象領域 | 最大(43%の市場シェア=最大の標的) | 中程度(エンタープライズ志向とセキュリティチーム) | 小さい(市場シェアが低く、.NETエコシステム) |
| プラグインのセキュリティ | 大きくばらつく — 5万8千のプラグイン、必須のレビューなし | 中程度 — コントリビュートされたモジュールはセキュリティアドバイザリのプロセスを経る | ばらつく — マーケットプレイスは小規模、NuGetによるパッケージレベルの管理 |
| コアセキュリティチーム | 約50名のコントリビューター、ボランティア主導 | 専任のセキュリティチーム、正式なプロセス | Umbraco HQ + コミュニティ |
| プラットフォームのセキュリティ | PHP(リクエストごとに共有なし) | PHP + Symfony(改善されたデフォルト設定) | .NET(マネージドランタイム、デフォルトで強い型付け) |
| 自動更新 | コア: あり(5.5以降) | プラグイン: 手動 | コア: 手動 | モジュール: Composerで管理 | コア: 手動 | パッケージ: NuGetで管理 |
現実は、どのCMSも、その保守運用の実践レベル以上に安全にはならないということです。WordPressの巨大なプラグインエコシステムは、たった一つの古くなったプラグインが、それ以外はきちんと保守されたサイトを危険にさらしうることを意味します。Drupalの正式なセキュリティアドバイザリのプロセスはより良いシグナルを提供しますが、積極的な監視が求められます。Umbracoの小さなフットプリントは公開されるCVEが少ないことを意味しますが、.NETランタイムのメモリ安全性は、PHPプラットフォームに影響する脆弱性のクラス全体(バッファオーバーフロー、解放後使用)を排除します。
開発者体験
WordPress: 低い床、低い天井
WordPressは最も始めやすいCMSです。インストールし、テーマを選び、プラグインを入れ、コンテンツを追加するだけです。しかし、カスタム要件が積み重なるにつれ、フレームワークと戦う羽目になります。正式なテンプレートエンジンの不在(PHPとHTMLの混在)、グローバルな関数の名前空間、そして手続き型のコードベースにより、大規模なWordPressプロジェクトは理解しづらくなります。LaravelのようなモダンなPHPフレームワークはWordPressのアーキテクチャパターンをはるかに超えて進化しており、「PHP開発」と「WordPress開発」の間に広がる溝を生んでいます。
Drupal: 高い天井、困難な登坂
Drupalの学習曲線は3つの中で最も急峻です。しかし、いったん習得すれば、Drupalのエンティティシステム、Views、構成管理は、他のプラットフォームではカスタム開発を要するような機能を提供します。Drupal 10以降はモダンなPHPの実践(Symfony、Composer、Twigテンプレート、オブジェクト指向アーキテクチャ)を取り入れており、LaravelやSymfony出身のPHP開発者にとって馴染みやすいものになっています。
Umbraco: 適切な抽象度
Umbracoの開発者体験が際立っているのは、ASP.NET Core上に構築されているからです。これは、第一級の依存性注入、ミドルウェアパイプライン、強く型付けされた構成を備えた、モダンで十分に文書化されたフレームワークです。ModelsBuilderはドキュメントタイプ定義からC#クラスを生成し、コンテンツアクセスにコンパイル時の安全性を与えます。レンダリングパイプラインは標準的なMVCで、コントローラー、ビュー、ビューモデルという、あらゆる.NET開発者に馴染みのあるパターンです。
.NETチームにとってUmbracoは、CMSのコードとアプリケーションのコードが同じ言語、同じデバッグツール、同じテストフレームワーク、同じCI/CDパイプラインを使うことを意味します。コンテキストの切り替えは不要です。「WordPress開発者」と「アプリケーション開発者」というサイロも生まれません。
コンテンツ編集者の体験
コンテンツ編集者、つまり実際に日々CMSを使う人々が気にするのはただ一つ、いかに速く仕事を終えられるかです。
- WordPress (Gutenberg): ブロックベースの編集はシンプルなページには直感的ですが、入れ子のレイアウトになると扱いにくくなります。プラグインがメニューやメタボックスを追加するにつれ、管理UIは雑然と感じられるようになります。コンテンツ編集者は概してWordPressを馴染みやすく親しみやすいと感じます。
- Drupal (Layout Builder): 強力だが複雑です。Drupalの管理インターフェースはトレーニングを要します。コンテンツタイプ、ブロック、ビュー、レイアウトの分離はアーキテクチャ的には理にかなっていますが、編集の観点では分かりにくいものです。パワーユーザーのためのパワーツールです。
- Umbraco (Bellissima + Block Grid): ツリーベースのコンテンツ構造はすぐに直感的に理解でき、サイトのページ階層に直接対応します。Block Gridエディター(Umbraco 14以降)は、Gutenbergよりも構造的で意図の明確な柔軟なページ構成を提供します。ユーザビリティテストによれば、コンテンツ編集者はWordPressやDrupalよりも早く習得できるとされています。
総所有コスト
| コスト要素 | WordPress | Drupal | Umbraco |
|---|---|---|---|
| ライセンス | 無料(GPL) | 無料(GPL) | 無料(MIT) — Umbraco Cloud/Heartcoreはオプション |
| ホスティング | 月額$5〜50(共有)、月額$50〜500(マネージド) | 月額$20〜200(VPS以上)、月額$100〜500(マネージド) | 月額$20〜200(Windows/Linuxホスト) |
| 開発者単価 | 時給$50〜150(広く確保可能) | 時給$100〜200(専門的) | 時給$80〜180(.NET開発者) |
| 初期構築 | $5K〜30K(中小企業サイト) | $30K〜150K(エンタープライズ) | $15K〜100K(中堅市場〜エンタープライズ) |
| 年間保守 | $1K〜5K(セキュリティ + マイナー更新) | $5K〜25K(更新 + セキュリティ) | $3K〜15K(更新 + サポート) |
より安価な選択肢であるWordPressは、要件が拡大した場合、3〜5年のスパンで見ると最も高くつくことがしばしばあります。プラグインの競合による技術的負債、構造化されたコンテンツモデリングの不在、そしてますます複雑化するサイトの手動保守は、はじめからきちんと設計されたDrupalやUmbracoでの構築が要したであろうコストよりも、静かに多くの予算を食いつぶしていく可能性があります。
意思決定のフレームワーク: あなたに最適なCMSは?
WordPressを選ぶべき場合:
- マーケティングサイト、ブログ、またはシンプルなeコマースストア(WooCommerce)を構築する場合。
- コンテンツモデルがフラットで、複雑な関係を持たないページ、投稿、メディアで構成される場合。
- 既製のテーマと出来合いのプラグインで素早くローンチする必要がある場合。
- サイトを独立して管理する非技術者のコンテンツ編集者がいる場合。
- 予算が$10K未満の場合。
Drupalを選ぶべき場合:
- タクソノミー、エンティティ参照、多面的なコンテンツタイプなど、複雑なコンテンツの関係が必要な場合。
- Drupalが深く普及し専門的なモジュールがある分野、すなわち政府機関、高等教育、医療分野向けに構築する場合。
- きめ細かいユーザー権限、ワークフローの状態、コンテンツモデレーションが必要な場合。
- 翻訳ワークフローを備えた多言語サイトを構築する場合。Drupalの多言語アーキテクチャは最も成熟しています。
- PHP/Symfonyの経験を持つ専任の開発チームがいる場合。
Umbracoを選ぶべき場合:
- チームがすでに.NET開発チームであり、CMSのコードとアプリケーションのコードが同じスタックを共有する場合。
- コンテンツ管理とコンテンツ配信のクリーンな分離(ヘッドレスまたはハイブリッド)が必要な場合。
- 強く型付けされたコンテンツモデル、適切なDI、標準的なMVCパターンといった開発者体験を重視する場合。
- イントラネット、顧客ポータル、またはCMS機能と並んで複雑なバックエンドロジックを持つアプリケーションを構築する場合。
- MITライセンスが必要で、カスタムコードにコピーレフトの制約を課したくない場合。
- シンプルなマーケティングサイトから、複雑なマルチサイト・多言語プラットフォームまで、プラットフォームを変えることなくスケールできるCMSを求める場合。
SplatDevの位置づけ
私たちは2010年からUmbracoで構築してきました。バージョン4.0から最新のv17リリースまでです。Umbraco Certified Masterとして、分析、バックアップ、フォーム、SEO、ソーシャルメディア連携、ニュースレター、電子署名(D4Sign)をカバーする20以上のUmbracoプラグインを開発してきました。すべてのプラグインはUmbraco 17互換のために移行済みです。
私たちはUmbracoサイトを構築するだけではありません。Umbracoプラグインを開発し、エコシステムに貢献し、企業が現行のプラットフォームを卒業する際にWordPressやDrupalからUmbracoへの移行を支援しています。
しかし、私たちは適材適所も信条としています。もし要件がWordPressやDrupalを指し示すなら、私たちはそう申し上げます。もしUmbracoを指し示すなら、私たちはこのエコシステムで最も経験豊富なチームの一つです。
CMSの選定や移行にお困りですか? 御社の要件、チーム、スケジュールについてお話ししましょう。
またはこちらまでご連絡ください: [email protected]