以前、キャッシュ系プラグイン『W3 Total Cache』や『DB Cache Reloaded』、CDN『CloudFlare』を利用していましたが、許容できないレベルのタイムラグが発生してしまいました。
知識がなければ、原因を特定できず、致命的な欠陥となる恐れがあります。質のいいサーバーを利用すれば、100万PV/月程度までなら、キャッシュ系プラグインやCDNは不要であるため、素人は安易に手を出さないことをおすすめします。
キャッシュ系プラグイン&CDNとは
WordPressを利用したサイトは、その構造上、アクセスがある度に動的にページを生成して表示させています。
キャッシュ系プラグインは、動的に生成する様々な要素をキャッシュ化し、あらかじめ用意しておくことで、負荷を経験したり、コンテンツ表示速度を速めたりできます。
便利なものではあるのですが、実のところ、仕組みはかなり複雑です。
どの要素をキャッシュ化するかによって、ページキャッシュ、オブジェクトキャッシュ、データベースキャッシュなど、様々に分類でき、それぞれに対応しているプラグインが無数に存在します。こちらのページがうまく分類してくれています。
WordPressキャッシュ系プラグインの比較とサイトに適した選び方 | ゆっくりと…
つまり、あれがいいから、これがいいからと、仕組みもよくわからずにキャッシュ系プラグインを多用してしまうと、機能がかぶってしまったり、機能を充分に発揮させられなかったり、酷いときには不具合が出て逆にパフォーマンスが低下したりするわけです(後述しますが、体験済みです……)。
またCDNとは、コンテンツ・デリバリ・ネットワーク(Contents Delivery Network)を意味し、従来は大容量コンテンツをストレスなく配信するために用いられてきたシステムです。
が、無料で使える『CloudFlare』などの登場により、個人ブログの負荷対策・コンテンツ表示速度改善にも使われるようになりました。きちんと機能すれば、キャッシュ系プラグインよりも大幅な効果を期待できるようです。
ただしこれも、仕組みをきちんと理解できないと、うまく機能しなかったり、不具合が出たときに対処できなかったりします。
GTmetrixでは明確に数値が向上するものの、許容できないタイムラグが発生
当サイト『Handmade Future !』では、2013年秋頃まで、キャッシュ系プラグイン『W3 Total Cache』『DB Cache Reloaded』と、CDN『CloudFlare』を併用していました。
GTmetrixでは、明らかに数値が向上し、GoogleとYahoo!の指標でダブルAを獲得できていました。
(なので、きちんと動作してくれれば、これで正解なのだと思います)
が、当サイトで使用しているテンプレート『Sahifa』との相性が悪かったのか、はたまは別の要因によるのかわかりませんが、リンクをクリックしてからページの読み込みが開始されるまでに、3秒や5秒といった、とても許容できないレベルのタイムラグが発生してしまっていました。
プラグインのオン・オフを切り替えてみたり、『CloudFlare』を切ってプラグインのみにしてみたりと、時間をかけて思いつく限りの検証はしてみたのですが、結局、知識の無さがアダになり、原因を特定できませんでした。
最終的には、数字よりも体感を優先すべく、キャッシュ系プラグインとCDNの利用を取りやめました。
上記グラフのとおり、現在はGTmetrixでの評価は下がっていますが、体感速度は飛躍的に向上しています。
Latest Performance Report for: http://yorikanekeiichi.com/ | GTmetrix
高品質サーバーを利用するのが最大の負荷対策
現在、『Handmade Future !』では、共有サーバー最高峰とも言われる『シックスコア』のレンタルサーバーを利用し、キャッシュ系プラグインやCDNは一切使用していません。
記事がバズったときは、該当記事のみを、手動で、シックスコアのキャッシュ機能である “Xキャッシュ” でキャッシュ化しています(サイト全体をキャッシュする設定にすると、すべてのページで同じ記事が表示されてしまう不具合が発生したため、現在の運用に落ち着きました)。
体感ではパフォーマンスの低下は感じなかったので、同時接続1000人くらいまでは問題なく行けそうな雰囲気です。
同時接続800人以上となると、Yahoo!のトップニュースに取り上げられる以外には、なかなか考えられない水準です。
100万PV/月程度までの個人ブログなら、負荷対策としてのキャッシュ系プラグインやCDNは不要です。また、ページ表示速度も見てのとおりで、これ以上を求めることももちろん可能ですが、必要充分だと個人的には考えています。
ロリポップやさくらインターネットの格安プランでは、いくらキャッシュ系プラグインやCDNを導入したところで、基本スペックの低さをごまかすことはできません(さくらインターネットの500円プランから、シックスコアへ乗り換えているので、実感しています)。
つまり、高品質サーバーを利用するのが最大の負荷対策であるわけです。おまけに、素人でも確実に効果を発揮できます。
キャッシュやCDNは必要になったら専門家に依頼すべし
もし、月間300万PVクラスのサイトに成長したり、ページ表示速度を本気で1秒未満にする必要に迫られたりすれば、キャッシュ系プラグインやCDNも必要になってくるでしょう。
それどころか、共有サーバーでなく、専用サーバーやAWSも必要になるかもしれませんね。
そこまできたら、お金をかけて、しっかりとした知識のある専門家に依頼すれば済む話だと思います。
個人的には、知識に不安があるのなら、高品質サーバーを利用し、キャッシュ系プラグインやCDNには手を出さないのが、ベストの選択肢だと思います。
試行錯誤してみるのも面白いは面白いですし、手軽にできてしまいはするのですが、トラブルが起きたときに対処できないのでは、リスクが大きいと感じました。