CMS(WordPress、Drupal、Joomla など)でサイトを構築している方なら、「プラグインはできるだけ少なくしたほうがサイトが速くなる」という話を先輩から聞いたことがあるかもしれません。たとえば、サイトに Lightbox の効果を付けたい場合、jQuery のコードを手動で追加することもできますし、プラグインをインストールすることもできます。どちらの方法でも同じ効果は得られますが、ページの読み込み速度には大きな差が出ることがあります。
なぜプラグインを使うとサイトが遅くなるのか?
では、なぜプラグインを使うとサイトが遅くなるのでしょうか。同じ機能なのに、なぜプラグインだと遅くなり、手動で追加すると影響が小さいのでしょうか。もしかして、怠け者を罰するという都市伝説のような仕組みがあるのでしょうか? いいえ、そうではありません。プラグインがサイトを遅くする理由は実はシンプルです。多くの CMS のプラグインは、Hook という仕組みを使って書かれています。つまり、CMS 自体が開発者向けに一連の API を提供しているのです。これは、オブジェクト指向におけるイベントのようなものと考えるとわかりやすいでしょう。CMS の中で何かが起きたときに、何らかの動作を実行することがあります。たとえば次のような例です。新しい記事が公開されたときに、その記事の URL をメールで自分に送りたいとします。その場合は、新しい記事を公開する API を使い、記事が公開されたときに「メールを送る」関数を呼び出すように指定する必要があります。言い換えれば、「新しい記事が公開されるイベントが発生したら」「メールを送る」ということです。
CMS でプラグインを開発する場合、ほとんどがこのような方式で設計されています。つまり、何かが起きたときに、プラグインが直接処理するのではなく、システムが一括して管理します。そのため、CMS という過程を一つ余分に経由することになり、手動で書き込んだ場合のように直接動くのと比べて効率が下がってしまうのです。
一つ例を挙げましょう。多くの人はGoogle のアクセス解析サービスを使いたいと思っています。しかし、テーマファイルを手動で編集して解析用のコードを入れるのは避けたいものです。そのため、解析用のコードをすばやく追加してくれるプラグインをインストールすることになります。この方法は、CMS の管理を経由するため、知らず知らずのうちにサイトの速度を落としてしまいます。一方、解析用のコードを手動でテーマファイルに入れた場合は、影響はそれほど大きくありません。
どうすればサイトを速くできるのか?
サイトを速くする方法はたくさんあります。代表的なものは、Gzip を有効にする、より良いホストを使う、画像を圧縮する、などです。ただ、この記事はプラグインについてのものなので、ここではプラグインに絞って説明します。- プラグインを使わなくても実現できる機能は、できるだけ使わないようにしましょう。たとえば Google アクセス解析、Lightbox エフェクト、ツイートボタンなどです。
- 使っていないプラグインは必ず削除しましょう。有効化されていなくても、サイトの速度に影響します。
図解 ▼▼

