Dyno

CMS のデメリット

追記: 続編として CMS のメリットについての記事 も書きました。

今回はウェブサイト構築・運用ツールとしての CMS のデメリット について説明します。

CMS にかぎらず何かのメリット・デメリットを語るときに重要なのは「何と比較するか」という点です。例えば「自転車のメリットは何ですか?」と漠然と聞かれても、比較対象が決めないことにはうまく回答はできません。ふだんの移動手段として徒歩や自動車等と比較するのか、趣味という視点から登山やゲームと比較するのか。比較対象をどこに置くかによって物事のメリット・デメリットは変わります。ですので、 CMS のメリット・デメリットを考えるときも比較対象を明らかにすることが重要です。

ということでまず最初に CMS の比較対象になるサイト構築・運用方法についておさらいしてから、 CMS のデメリットについて語りたいと思います。 細かくあげていくとキリがないので、比較対象は近年主流のものだけをあげることにします。

CMS 以外のサイト構築方法

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

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

1. 静的サイト

静的な HTML ファイルを使う方法です。 構築・運用の担当者は作成した HTML ファイル( index.html 等 )をウェブサーバーに設置します。 ブラウザからのリクエストがあれば、ウェブサーバーはリクエストに対応する 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 はウェブサーバーとは別のマシン上でページに相当するファイルをまとめて生成し、ブラウザからアクセスがあったときには静的サイトとしてふるまいます。 広義の意味では SSG も CMS の一種と言えます。

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

CMS のデメリット

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

1. 静的サイトに対する CMS のデメリット

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

2. フレームワークに対する CMS のデメリット

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

3. スクラッチ開発に対する CMS のデメリット

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

4. ウェブサービスに対する CMS のデメリット

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

5. スタティックサイトジェネレーターに対する CMS のデメリット

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

以上です。

この一覧からおわかりいただけるとおり、 CMS にはさまざまなデメリットがあります。 そしてその内容は比較対象をどこに置くかによって大きく変わってきます。

CMS は広く使われている定番ツールですが万能薬ではないので、適切な使いどころで適切に使ってこそ真価を発揮します。 CMS の導入の際にはぜひメリット・デメリットを理解してそれが本当に最適な方法なのか判断した上で導入するようにしてください。

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