Magento Community Editionにはフルページキャッシュ機能がなく、どうしても動作が重くなりがちです。
サイトが遅いな、と思ったときは、サーバの設定や構成を見直すことも重要ですが、Magento自体の処理を軽量化することも重要です。

このエントリでは、無料で利用できるエクステンションの「Lesti::Fpc」を使用して、Magentoのスピードアップをする方法をご紹介します。 

Lesti::Fpcとは

Lesti::Fpcとは、Gordon Lestiという開発者が無償公開している、Magento Community Edition向けのフルページキャッシュエクステンションです。比較的シンプルな実装でできているフルページキャッシュエクステンションで、カスタマイズ度の低いサイトには簡単に導入できます。

フルページキャッシュをカスタマイズしたサイトに導入しにくい理由

フルページキャッシュは、その名の通り、ページのコンテンツをまるごとキャッシュします。
1回目のアクセスは遅いですが、2回目以降は必要最小限の部分だけを処理するので、レスポンスが大幅に向上します。

ところが、どのフルページキャッシュエクステンションも、標準状態または開発元が提供しているエクステンションとの競合チェックまでしか行っていないのが実情です。ですから、独自のカスタマイズを数多く行ったサイトに導入した場合、予想しない場所までキャッシュされてしまう恐れがあります。

そのため、フルページキャッシュエクステンションを導入する際は、テスト環境などを用意して入念にテストを行い、問題がないことを確認する必要があります。個人名などが見えてしまうと大変なことになります。

インストール

Lesti::FpcはGitHubで公開されています。
ダウンロードして、Magentoのソースツリーに配置し、キャッシュをクリアすれば利用できるようになります。 

設定

設定も簡単です。
インストール直後は、フルページキャッシュが無効になっているので、「システム>キャッシュ管理」で「Fpc」を有効にします。 

標準状態のMagentoであれば、このままフロントエンドのページをリロードするだけで、フルページキャッシュが徐々に効いてきます。

サイトに合わせた調整をしたい場合は、「システム>設定>システム」のなかに「Lesti Fpc」というセクションが追加されているので、キャッシュさせたいアクションの名前や、キャッシュさせたくないブロックの名前を追記していきます。

設定ファイルを調整してキャッシュ先を変える

Lesti::Fpcは app/etc ディレクトリに fpc.xml.sample という設定ファイルのサンプルを配置してくれます。
このファイルを開くと、Lesti::Fpcは

  • ファイル
  • Redis
  • memcached
  • APC

に対してキャッシュを保存させることができる事がわかります。
導入するサイトが利用しているキャッシュストレージに合わせて調整すると良いでしょう。

ベンチマーク

フルページキャッシュ有効前と有効後でベンチマークを取ると、以下のようになります。

  有効前 有効後
トップページ 570ms 126ms
商品一覧ページ 1130ms 247ms
商品ページ 2100ms 432ms

有効前と有効後で、3〜5倍のスピードアップが確認できました。
かなりの効果が期待できます。もちろん、フルページキャッシュはPHPで処理しているので、多くのリクエストが一度に来るような状況下では、性能が劣化します。

ですが、より早くレスポンスを返すことで、システム全体の処理効率が良くなり、より多くのリクエストに応えることができるようになるでしょう。 

まとめ

Magento Community Editionにはフルページキャッシュ機能がありません。標準状態の性能のままではEnterprise Editionはおろか、他のシステムにすら性能で劣ります。

ですが、フルページキャッシュを導入することで、かなりの性能向上を図ることができます。
適切に導入し、より快適なECサイト運営を目指しましょう。

なお、このエクステンションは導入に際しMagentoに関する専門的な知識が必要になる場合があります。
インストールは簡単ですが、運用方法や設定方法、カスタマイズ箇所との競合の回避方法がわからなくなった場合は、弊社のをぜひご利用ください。