cloudflareでwordpressを高速化する
cloudflareというCDNサービスを使用してみました。このサイトは、wordpressというcmsを使用して作っています。そして、google site kitというプラグインを併せて使用しています。このgoogle site kitはサイトの読み込みにどの程度の時間を要したかを測定してくれます。このサイトは、google的には読み込みに時間がかかるようです。そのため、poorとかneeds improvementという警告が表示されます。
キャッシュを導入してみました
読み込み速度を改善するために、キャッシュや部分的なCDNも試してみました。そもそも、wordpressは、投稿データをデータベースに格納します。そして、参照の都度データベースからデータを読みこんで、ページを組み立てます。ですから、読み込みの都度ページを作るので、時間がかかるわけです。キャッシュはあらかじめページを作っておく仕組みです。
キャッシュにも欠点はあって、ページの組み立ての時間は節約できます。しかし、回線速度を速くするわけではありません。そのうえ、組み立て済のページを保持するため、サーバーのストレージも消費します。
そこで、出てくるのがCDNです。画像や動画などは、あらかじめ太い回線につながれた別サーバにコピーしておきます。そして、画像のリンク先をCDNのサーバーに書き換えておきます。すると、画像の読み込みが速くなります。
キャッシュの効果はそれほどでもなかった
実際に、hummingbirdを導入し、サーバー内にキャッシュを作ってみましたが、わずかな効果でした。また、jetpackを使用して、wordpress.comを画像のCDNサーバーとして使用してみました。しかし、効果はいま一つでした。
cloudflare登場
cloudflareはCDNサービスです。最初の参照で大元のサーバーからデータを引き出し、キャッシュします。そして、二度目以降はcloudflareに保管されたデータを送信します。つまり、大元のサーバーへのアクセスは最初の一回だけです。しかし、実際には大元のサーバーの更新状況をチェックします。したがって、二度目以降の参照でもわずかなトラフィックは発生します。
cloudeflareの導入には勇気が必要
cloudflareを導入するにはいくつかのやり方があるようです。しかし、無料での使用となるとできることは限られます。DNSごとcloudflareに預ける形になります。これは、結構勇気がいります。万一間違って登録すれば、アクセス不能となる可能性もあります。また、cloudflareの動作が怪しくなっても同じくです。また、DNSの伝搬が終わるまでは、アクセスは不安定になります。
cloudflareの動作がおかしい(備忘録)
DNSの移管は完了しました。しかし、数時間経ってDNSの伝搬が終わったと思われたころに事件が起きました。サイトへのアクセスができなくなりました。原因をたどっていくと、cloudflare側のDNSレコードに誤りがあることがわかりました。cloudflareのDNSレコードは、大元のDNSから自動的に引き継がれまず。しかし、ドメインルートpooq.bizが、cnameレコードに入っていました。同じく、www.pooq.bizもcnameレコードに入っていました。本来、pooq.bizはAレコードに入っていなければなりません。そして、www.pooq.bizをcnameで定義するのではなく、wwwを定義すべきです。つまり、”@ A TTL IP_ADDRESS”と”www. cname TTL pooq.biz”と書くべきです。
なぜ、cloudeflareがこのような誤った設定をしたのかは不明です。しかし、cnameレコードを二つ削除し、Aレコードとcnameレコードを追加して解消です。
cloudflare導入の効果は?
まずは、google site kitの計測結果を見てみましょう。
Total Blocking Timeはかなり良い数値です。そして、Cumlative Layout Shiftも優秀な数値です。しかし、Largest Contentful Paintが飛びぬけて悪い数値です。これは、恐らく十分なキャッシュがまだできていないためと思われます。したがって、しばらく様子を見たいと思います。
では、スマホを対象とした結果を見てみましょう。
ひどい値です。これは、cloudflare導入前とあまり変わりません。CDN導入でも効果が無いということは、使用しているテーマに問題がありそうです。PC向けとは別に、スマホ向けのテーマを導入すべきでしょう。
ちなみに、cloudflareでの統計情報はこんな感じです。
データ量はトータルで159,24MBでした、そのうち、キャッシュにヒットしたのは15.21MBです。またまだ、キャッシュが十分にできていないようです。したがって、まだcloudflareは十分に力を発揮できていない状況です。しばらく様子を見たいと思います。