Dyno

CMS のデメリット

2019/11/05

今回は CMS のデメリット について説明します。もう少し正確に言うと サイトの構築・運用手段としての CMS のデメリット について説明します。

※ここで CMS とはコンテンツ・マネジメント・システムのことです

CMS にかぎらず何かの物事についてメリット・デメリットを語るとき、重要なのは「何と比較するか」という視点です。例えば、「自転車のメリット・デメリットは何ですか?」と漠然と聞かれても比較対象を明確にしないことにはうまく回答することはできません。移動手段とみなして徒歩や自動車と比較するのか、趣味とみなして登山やカラオケと比較するのかで、そのメリット・デメリットは大きく変わります。

ですので、 CMS のメリット・デメリットについて語るときには先に比較対象を明確にする必要があります。

というわけで、まず最初に CMS 以外のサイト構築手段について見てみましょう。 細かくあげていくとキリが無いのでここでは近年主流のものだけを取り上げます。

CMS 以外のサイト構築手段

CMS 以外のサイト構築・運用の手段には次のようなものがあります。

  1. HTML ファイル
  2. フレームワーク
  3. スクラッチ開発
  4. ウェブサービス
  5. スタティックサイトジェネレータ

1. HTML ファイル

静的な HTML ファイルを使った方法です。 サイトの担当者は作成した HTML ファイル( index.html 等 )をウェブサーバーに設置し、サーバーはブラウザからのリクエストがあれば、その URL に対応する HTML ファイルの中身を送り返します。

2. フレームワーク

フレームワークを使った方法です。 正確にはウェブ・アプリケーション・フレームワークで、略して WAF と記述したりもします。 一般にはウェブサイトよりも複雑な「ウェブシステム」「ウェブアプリ」を作るために使われることが多いですが、通常のウェブサイトに使うことも可能です。

有名なフレームワークには Laravel / Symfony / CakePHP / Ruby on Rails / Django / Flask / Express / Ghost 等があります。

3. スクラッチ開発

ゼロからプログラムを書き上げるスクラッチ開発です。 どこからどこまでをスクラッチ開発と呼ぶかは意見が分かれるところですが、スクラッチ開発では原則 CMS 等のパッケージやフレームワークを使いません。 ブラウザからのリクエストに対して動的にページを生成する点は CMS やフレームワークと同じです。

4. ウェブサービス

簡易的にサイトを構築できるウェブサービス( SaaS )を利用する方法です。 多くの場合高品質なテンプレートが多数用意されており、技術的な知識が無くても見栄えのきれいなサイトをすばやくかんたんに構築することができます。 広義の CMS に含まれます。

有名なものに Squarespace / Wix / Weebly / Jimdo 等があります。

5. スタティックサイトジェネレータ

スタティックサイトジェネレータ(以下「 SSG 」)と呼ばれる技術を使った方法です。 プログラムでページを生成する点は CMS と同じですが、 SSG の場合はページの生成タイミングが一般的な CMS とは異なります。 CMS は一般にブラウザからアクセスがあったときにページを生成しますが、 SSG の場合はコンテンツの更新時に HTML ファイルを生成し、アクセスがあったときにはその HTML の中身を単純に返す、という仕組みです。 厳密には SSG は CMS の一種です。

他にもさまざまな方法がありますが、現在主流のサイト構築方法はこの 5 つだと思います。

CMS のデメリット

本題の CMS のデメリットについてです。 比較対象別にあげるのがわかりやすいのでその形で見ていきましょう(数が多いので箇条書きです)。

1. 対 HTML ファイル

  • イニシャルコスト・ランニングコストが高い
  • 最初のサイト公開までのスピードが遅くなる
  • CMS の知識を学ぶ必要がある
  • 自社で構築する場合は CMS の技術を学ぶ必要がある
  • 制作会社に依頼する場合は制作会社への依存リスクが増える
  • CMS のメンテナンスが停止するとサイトリニューアルが必要になる
  • UX や SEO において重要な動作パフォーマンスが低い
  • セキュリティリスク・対応コストが上がる

2. 対フレームワーク

  • サイトの構造や機能に関して自由度が下がる
  • サイトの要件が複雑な場合や公開後の変更が多い場合は開発の生産性が低い
  • DX (技術者にとっての使いやすさ)が悪い
  • ( CMS の技術は遅れていることが多いので)技術者にとってやりがいが低い
  • ( CMS は利用者に求められる技術レベルが低いので)意欲のある技術者にとって成長機会が少ない
  • (要件上必要の無い処理も走るので)動作パフォーマンスが悪い

3. 対スクラッチ開発

  • サイトの構造や機能に関して自由度が下がる
  • 自社で構築する場合は CMS 特有の技術知識を学ぶ必要がある
  • CMS のメンテナンスが停止するとサイトリニューアルが必要になる
  • 有名な CMS を使う場合はセキュリティパッチのゼロデイ攻撃の被害を受けるリスクがある
  • (要件上必要の無い処理も走るので)動作パフォーマンスが悪い

4. 対ウェブサービス

  • イニシャルコストが高い
  • ランニングコストも一般的な安価なウェブサービスよりも高くなることが多い
  • 自社で構築する場合は CMS の技術を学ぶ必要がある

5. 対スタティックサイトジェネレータ

  • (サーバー上でプログラムが動くので)セキュリティが弱い
  • (サーバー上でプログラムが動くので)動作パフォーマンスが悪い
  • DX (技術者にとっての使いやすさ)が悪い
  • 保守業務の自動化の難易度が高い

以上です。

ということで、他のサイト構築・運用手段と比べたときの CMS のデメリットについてでした。 ぜひ参考にしてみてください。

CMS のメリット・デメリットについて言及した記事が他にもあるので、興味がある方は読んでみてください: