WordPress等のCMSサイトが重くなる原因は、多くの場合サーバ性能不足として片付けられがちで、安易に「サーバ増強」「サーバ引越し」「CDN導入」等で対応しがちです。
しかし、CMSサイトが重くなる原因は、本当に性能不足だけが原因なのでしょうか?
残念ながら、CMSはサイト制作ツールである前にWebシステムである、ということが意識されていないことが多いです。同じ「デザインした通りの表示になる」という状態であっても、
- PHPの書き方が悪ければ
- データベースの設定が甘ければ
- WebサーバやPHP環境の設定が適切でなければ
CMSサイトは、いとも簡単に負荷に弱い作りになります。その結果、運用後のサイト成長期やキャンペーン、メディア露出のタイミングという大事な時期に問題が発生します。サイト表示は重くなり、閲覧者の回遊率が下がり、管理画面の操作にも待ち時間が発生し、サーバは落ちてしまいます。
原因はサーバ性能ではなく、CMSの構築の仕方に問題がある。これが、多くのCMSサイト高速化をご支援してきた弊社が、Webシステム視点で確信的に持っている感触です。
本コラムコーナーは、そうした課題認識をベースにCMSをWebシステムと捉える視点で、CMSの動作原理や重くなる要因、その根本的な対策技術について論ずることを主旨としています。
CMSをWebシステムとして見れない弊害
CMSは「手軽なサイト制作ツール」として捉えられていますが、本質的には複雑なWebシステムです。これを忘れてはなりません。
- WebサーバのApache
- PHPプログラム実行環境
- CMSという巨大なPHPプログラム
- データベースのMySQL
- これら以外のLinuxサーバ上の様々なプログラム
これらが複雑に絡んで連携しながら動作しています。それぞれをパフォーマンス最適化という観点で、設計・実装・設定したことはあるでしょうか?多くの場合、無い筈です。これらをパフォーマンス視点で見る発想を持ったこともないかも知れません…。
これは、CMSを簡単にインストールできるレンタルサーバの負の側面と言えるでしょう。多くのレンタルサーバやVPSは、容易にCMSを構築できるメリットがある一方で、Webシステムとしての複雑さを隠蔽します。結果、「CMSサイト構築はデザインした通りに見えたら完成」と見なされ、CMSを構成するパーツの設計・設定・実装を最適化することをおろそかにさせてきました。
- 非効率なデータベースクエリ
- ミドルウェアの設定不備
- 無駄の多いPHP実装
- 不適切なキャッシュ設定
等々が普通に発生します。
SQLを直接叩いてデータベースのインデックスを作ったり、SLOWクエリを分析したり、ログを解析したり、プラグインが無駄な処理を内包していないかチェックしたり、といった作業は通常のCMSサイト制作では行いません。「行わない」というよりも「行えない」が実情でしょう。これらは、制作作業の範疇外だからです。多くの制作会社様は「見た目」と「機能」に特化していて、パフォーマンスは専門外なのです。低負荷な作りを求めるのは筋が違います。
CMSサイトはこうして、通常のWebシステム開発なら絶対に見るはずの、誰も見れていない考慮漏れゾーンを内在させたまま、納品・検収され、ローンチすることになります。
CMSサイトの構築中や立ち上げ当初は、せいぜい1日に数十アクセス、月に数百アクセス程度ですから、上手く動作しているように感じられます。ブラウザ上では「見えて」いるからです。
しかし、サイトが成長期に入って月に数万・数十万アクセスと増えてきたり、メディア露出したりSNSでバズってアクセスが急増するという大事な時に、突然、負荷急増と応答遅延という形で顕在化して、障害が発生し、最悪の場合はビジネス機会まで逸失します。
CMSをWebシステムとして捉えて構築しなければ、(批判を恐れずに言えば)臨界点を突破したら爆発する爆弾を抱えたままサイトを運用することになるのです。
意図せずに仕込まれた爆弾を処理する
多くのWeb制作現場の実態を鑑みれば、前述したようなWebシステム視点でCMSを構築することは現実的ではありません。技術的・コスト的な難しさがあるからです。
もし御社(貴殿)のCMSサイトが、以下の条件を全て満たすなら、CMSサイトに爆弾を内在させてしまっていないかを検討する価値があります。
- CMSサイトが事業に欠かせない収益に直結する要素になっている
- アクセス集中時の高負荷や障害で困り果てた経験がある
- サイト制作担当者から「サーバ増強」以外の提案を貰えていない
Webシステムの視点でCMSサイトを捉え直し、問題を特定して解決することで、将来に備えることができる筈です。負荷に強い、安心して運用できるCMSサイトを作りましょう。
もし身近にCMSサイトの高速化に関する知見を持った技術者がいない場合は、ぜひ弊社の「CMS高速化アドバイザリー」サービスのご利用をご検討ください。相談は無料ですので、こちらからお問い合わせください。1時間の無料相談が可能です。