パフォーマンスなら、WordPressキャッシュはどうしても実施すべき対策の一つでしょう。WordPressは大好きですが、特に完全に静的なウェブサイトと比較すると、最速のプラットフォームではありません。この理由の一つは、速度の宣言のどうしてもあるPHPで構築されていることです。PHP 7で大幅な改善が見られましたが、それでもウェブサイトを適切にキャッシュする必要があります。
最高のキャッシュプラグインを調査しなくてもよければ、いいと思いませんか?私たちKinstaはキャッシュを対応いたしますので、お客様にビジネスの成長に集中いただけます。
WordPressキャッシュとは?
キャッシュとは、あるリクエストのリソースを保存し、今後のリクエストに際してそのリソースを再利用するプロセスのことです。基本的には、ページビューを生成するのに必要な作業量を減らします。
何故キャッシュを使用した方がいいかと言うと、キャッシュを使用すると、WordPressウェブサイトがより速くなり、ウェブサーバーの負荷が軽減するからです。そのため、すべてのウェブサイトができるだけ多くのキャッシュを使用した方が良いでしょう。さらに、CDNキャッシュの場合は、静的リソースがWordPressホスティング会社外で保存されることにより、ページビューに必要なサーバー帯域幅の量も削減します。
KinstaならWordPressキャッシュプラグインは不要
Kinstaのお客様は、複雑で使用し難いキャッシュプラグインを使わずにすみます。当社は既にさまざまな種類のキャッシュを実行しています。「2023年の最高のキャッシュプラグイン」を検索せずに、より重要な仕事集中することができます。
Kinstaでは、ソフトウェアレベルまたはサーバーレベルで自動的に行われる次の4種類のキャッシュを利用しております。
Kinstaに移行するだけで読み込み時間が大幅に改善したというお客様も多いです。そのすべては以前にキャッシュプラグインを使用したWordPressウェブサイトです。以下は、キャッシュプラグインがインストールされていないくても、パフォーマンスが212.5%向上したサイトの一例です。

上記の読み込み時間の減少には他にも原因がありましたが、キャッシュは大きく影響してきました。すべてのキャッシュプラグインが悪いと言っているわけではありません。実際のところ、ユーザーがキャッシュプラグインを正しく設定していないためにWordPressウェブサイトが遅くなる場合が多いです。W3 Total Cacheを設定しようとしたことがありますか? 非常に分かりにくいです。
お客様の評価
ここで、Kinstaに移行してきたお客様の評価を示します。これらのお客様はすべて、キャッシュプラグインの使用を止めました。
An instant 37% reduction in the loading time after moving @WPColt to @kinsta! (NO CACHING PLUGINS) 🚀🚀🚀
— WPColt (@WPColt) January 3, 2018
Quite impressed what @googlecloud and @kinsta can pull of for #WordPress hosting! #DevOps #Cloud #WPDev #webdevelopment pic.twitter.com/Cr7UMaHdpH
— Neuralab (@Neuralab) July 22, 2017
@TheSportReview's new @Googlecloud based @kinsta environment handled the post-match @ManUtd v @ChelseaFC traffic spike in style 👌⚽ pic.twitter.com/kJewykSqaV
— Martin Caparrotta (@MartinCap) April 16, 2017
60%+ drop in @pingdom load times for @voompla after move to @kinsta + @CloudFlare CDN + site optimization! support by @tomzur @MarkGavalda
— Palash Bakshi (@ppbakshi) September 11, 2016
WordPressキャッシュの種類
さて、Kinstaが採用しているWordPressキャッシュの各種類について説明します。キャッシュの各レイヤーの概要を理解しておくことは、キャッシュに関連する異常の処置にも役立ち、ウェブサイトがスムーズに機能することも保証します。
バイトコードキャッシュ
バイトコードキャッシュは、同じコードが次回使用されるときにコンパイル手順をスキップできるように、コンパイル済みのPHPコードを保存します。Kinstaでは、PHP 7.2、7.3および7.4でもOPcacheを有効にしています。(今後、Kinstaのプラットフォームでリリースされる新しいバージョンのPHPでも有効になる予定です)
PHPファイルやスクリプトが処理されるときは、最初に機械可読なオペコードにコンパイルする必要があります。OPキャッシュが、変換済みのオペコードを保存することにより、該当のファイルまたはスクリプトが次回に必要になったときにPHPがコンパイル手順をスキップできるようにします。OPキャッシュを使用すると、PHPのパフォーマンスが大幅に改善します。ただし、PHPファイルの変更はすぐには反映されません。このため、KinstaのステージングサイトではOPキャッシュは無効になっています。
OPキャッシュがPHPアプリケーションをスピードアップする方法についてはこちらをご参照ください。
オブジェクトキャッシュ
オブジェクトキャッシュはデータベースクエリの結果を保存し、次回その特定のデータが要求されるとデータベースにクエリを実行せずにキャッシュから配信できます。これによりPHPの実行時間が短縮され、WordPressのデータベースの負荷が減ります。
WordPressには、WP_Object_Cache
という組み込みのオブジェクトキャッシュがあります。ただし、このオブジェクトキャッシュには、1回のページ読み込用のオブジェクトのみが保存されます。キャッシュの目的は、1回のページ読み込み中にデータベースが複数回同様にクエリされないことです。ただし、キャッシュされたオブジェクトは、1回のページ読み込みの後は使用されません。たしかに便利なWordPress機能ですが、複数のページ読み込みにわたって使用できるオブジェクトキャッシュの方はより役立つでしょう。
キャッシュされたオブジェクトを複数のページ読み込みに再利用するのに、WordPressの組み込みオブジェクトキャッシュの代わりに外部ソリューションを使用します。これを行うには、/wp-content/
ディレクトリにキャッシュスクリプトを追加します。W3 Total Cacheなどのプラグインベースのオブジェクトキャッシュオプションがあります。
Kinstaのお客様には、Redisアドオンも購入して、PHP 7.2、7.3または7.4と一緒にインストールいただけます。Redisは、データベース、キャッシュ、およびメッセージブローカーとして使用されるオープンソースのインメモリデータベースです。詳細については、Redisを永続キャッシュとして使用する方法をご確認ください。
ページキャッシュ
ページキャッシュがページのHTMLを完全に保存するため、次回のリクエストの際にWordPressがページを生成しなくてもページビューを生成できます。
WordPressウェブサイトが読み込まれるとき、WordPressは多数のPHPファイルを処理して、データベースに何度も照会する必要があります。常に更新されるページでない限り、これは無駄です。各ページを一度だけ生成してから、そのページを保存し、今後の訪問者に配信した方がはるかに効率的です。これはページキャッシュの機能です。
ページキャッシュの利点は次のとおりです。
- ページ表示速度を引き上げることができる
- サーバー負荷が大幅に削減できる(結果として処理できるトラフィックの量が大幅に増える)
Kinstaのサーバーでは、ページキャッシュにnginx fastcgi cache module
を使用しています。デフォルトで1時間ごとに期限切れになるように設定されていますが、延長または短縮をご希望であれば、いつでもお問い合わせいただけます。頻繁に変更されないサイトの場合、キャッシュの有効期限を長くすることでパフォーマンス向上が期待できます。
ページキャッシュは、標準のWordPress、BuddyPress、WooCommerce、およびEasy Digital Downloadを利用したサイトで(何も調整することなく)機能するように設定されています。WordPressサイトを構築するだけで、ページキャッシュが実装されます。ただし、特別なURL構造を使用する場合や、通常のWordPressセットアップから大きく外れている場合は、調整が必要になる場合があります。
デフォルトでは、Kinstaのステージングサイトではページキャッシュが無効になっています。状況によっては、ステージング環境でページキャッシュを有効にすることで、テストに役立てることも可能です。ステージングサイトのページキャッシュ有効化は、MyKinstaから操作することができます。
CDNキャッシュ
CDNキャッシュは、ホストサーバーの場所から地理的に離れた場所にいるユーザーのために配信をスピードアップするためのもので、サイトのファイル(JavaScript、CSS、メディアファイルなど)がコンテンツデリバリネットワークに保存されます。サイト訪問者には、ウェブサイトが実際にホスティングされているサーバーからではなく、CDNからファイルが配信されます。CDNを利用すべき理由もご覧ください。
コンテンツ(CDN)には、2つの主な利点があります。
- ウェブサイトの読み込みに必要なサーバーリソースの量を削減します。CDNが処理を行っているため、ウェブサーバーは処理しなくてもい良くなります。
- 世界中の複数箇所の場所からリソースを配信できるため、ウェブサイトがホスティングされるサーバーから地理的に離れているユーザーのためのパフォーマンスが改善されます。
CDNには、単にCDNであるものと、セキュリティ機能が付くものという2種類があります。例えば下記のものがあります。
- 標準のCDN:Kinsta CDN (KeyCDN)、Stackpath、CloudFront
- セキュリティ機能が付くCDN:Cloudflare、Sucuri、Akamai(オプション)
前者は、ウェブサイトのリソースへのアクセスができるCDN URLを作成することにより設定されます。有効化の方法は、CDNごとに異なります。 基本的な考え方は、静的リソースのURLをCDN URLに変更することにより、リソースがCDNから配信されるようにすることです。標準のCDNは、JS、CSS、メディアファイルなどの静的ファイルのみをキャッシュする場合が多いです。Kinsta CDN は、KeyCDNをベースにした標準CDNです。
後者はフルプロキシサーバーとして機能します。つまり、すべてのリクエストは、Kinstaのサーバーに到着する前にプロバイダーのサーバーを経由する必要があります。これは、CDNプロバイダーはウェブサイトのDNSを完全に制御できるように、CDNプロバイダーのネームサーバーを使用することで有効になります。これにより、プロバイダーは、不正なIPからのトラフィックを除外したり、DoSやDDoS保護を提供したり、CDNにフルページキャッシュを保存したりするなど、標準のCDNではできないことができるようになります。
上級のCDNキャッシュ
CloudflareやSucuriなどのプロキシサーバーCDNをご利用の場合、CDNに完全なページキャッシュを作成することができます。CloudflareやSucuriなどのCDNを使用してページ全体のHTMLをキャッシュすると、本来だとサーバーが実施する処理が完全にオフロードされるため、トラフィックの大幅な増加が見込まれるウェブサイトにとって優れたソリューションになります。
- Sucuriでは、キャッシュレベルを「有効」に設定して、フルページキャッシュを設定します。
- Cloudflareでは、フルページキャッシュが機能するようにページルールを設定する必要があります。キャッシュレベルを「Cache Everything」(すべてをキャッシュ)に設定します。
Kinstaのキャッシュレスポンスヘッダー
該当のページがKinstaのキャッシュから配信されているかどうかを確認するには、HTTPレスポンスヘッダーを調べます。KinstaはX-Kinsta-Cache
ヘッダーを追加します。 キャッシュされていないページへの最初のリクエストでは、以下に示すようにMISS
が表示されます。

同じページへの2回目のリクエストでは、X-Kinsta-Cache
ヘッダーの値はHIT
になります。つまり、キャッシュから配達されています。

また、「WordPressでもGoogle PageSpeed Insightsで満点を取得する方法」という記事を読んだことのある方は、Kinstaには追加のサーバーレベルの最適化機能があるため、次の異常を自動的に処理されることもご存じでしょう。
- 圧縮を有効にする(Kinstaではすべてのサーバーに対してGzipが有効にされている為、有効にする必要がありません。)
- サーバーの応答時間を短縮する(Kinstaは最初から高速です。最適化をしなくてもGoogleの許容可能なパラメータの範囲内です)
- Expiresヘッダー (Kinstaではサーバーレベルでキャッシュヘッダーが有効にしてある為、有効にする必要はありません。)
たとえば、Kinstaの用意したテストサイトでは、キャッシュプラグインを有効にせずにPageSpeed Insightsで満点を取得しています。KinstaではWordPressキャッシュがサーバーレベルで完全に処理されます。

Kinstaのキャッシュの設定
さて、Kinstaでキャッシュを管理する方法について知りたがっている方もいるかもしれません。もちろん、異常処置を行うときなど、キャッシュをクリアする場合があります。そのとき、MyKinstaダッシュボードでキャッシュをクリアするか、Kinsta MUプラグインを使用するかご選択いただけます。
WordPressキャッシュをクリアする
フルページキャッシュがMyKinstaダッシュボードで手動でクリアできます。該当のウェブサイトをクリックしてツールをクリックし、「キャッシュをクリア」ボタンをクリックするだけです。

CDNキャッシュは、ウェブサイトのファイル(JavaScript、CSS、メディアファイルなど)をコンテンツデリバリに保存して、ホストサーバーの場所から離れているユーザーへの配信を高速化します。あるユーザーがウェブサイトにアクセスしようとすると、上記のファイルはウェブサイトをホストしているサーバーから配信されるのではなく、CDNから配信されます。CDNを使用する理由については、こちらをご覧ください。
Kinsta MUプラグイン
2番目のオプションは、Kinsta MUプラグインを使用することです。このプラグインは本来だとキャッシュプラグインですが、サーバーレベルで動作するため、典型的なキャッシュプラグインではありません。
Kinsta MUプラグインは、Kinstaのサイトにデフォルトでインストールされ、WordPressの管理ダッシュボードの左側からアクセスできるようになっています。ウェブサイトの該当のページのキャッシュをインテリジェントにクリアするために使用されます。本プラグインは、ウェブサイトがKinstaのホスティング環境でスムーズに機能することを確保するため、必須です。また、ページキャッシュはデフォルトで1時間ごとに期限切れになることも忘れないでください。

プラグインを使用すると、WordPress管理バーでキャッシュをクリアできます。MyKinstaダッシュボードにアクセスする必要がないため、おそらく本プラグインを使用する最大の理由の一つでしょう。つまり、ウェブサイトを離れずにできます。

または、カスタムキャッシュルールを設定することもできます。ウェブサイトのコンフィギュレーションにより、追加のキャッシュルールが必要になる場合があります。更新される度に、ウェブサイトをクリアするカスタムパスを追加することもできます。
キャッシュの対象外にしたい特定のページまたはURLがある場合は、サポートチームまで連絡いただけます。
Kinstaのステージング環境
デフォルトでは、Kinstaのステージング環境ではページキャッシュが無効になっています。これにより、編集のたびに手動でキャッシュをクリアする必要がなくなり、WordPressサイトの開発とデバッグが簡単になります。必要に応じて、ステージング環境でページキャッシュを有効にして、サイトを本番サイトに公開せずにキャッシュページの正確なスピードテストを行いっていただけます。
ステージング環境でページキャッシュを有効にするには、MyKinstaの「サイト」> 「ツール」に移動し、「キャッシュを有効にする」ボタンをクリックします。ステージングでキャッシュが有効になっている場合、「キャッシュのクリア」ボタンを使用してキャッシュを削除できます。

Kinstaのキャッシュの分析データ
WordPressウェブサイトのキャッシュが適切であるるかをMyKinstaの分析機能で詳しく調べることができます。キャッシュコンポーネントスタックを使用すると、HIT、BYPASS、MISS、またはEXPIREDなどのリクエストの状態を確認できます。過去24時間、7日、または30日でデータをフィルタリングできます。

キャッシュコンポーネントのグラフではキャッシュ率が簡単に確認できます。キャッシュから配信するほど良いです。

キャッシュバイパスのトップリストでは、キャッシュから配信されていないリクエストが確認できます。通常、CRONジョブ、admin-ajaxリクエスト、電子商取引チェックアウトページ、クエリ文字列、UTMパラメータなどがあります。

404ページのキャッシュ
404ページはリソースを数多く使ってしまう場合があります。想像以上に頻繁に404エラーが発生するWordPressウェブサイト、特に大規模な会員サイトが多いです。ページの場所を変更してリダイレクトを追加するのを忘れたり、ソーシャルメディアでシェアしているものに誤ったリンクがあったりします。つまり、404ページが発生する原因は多いです。これらのページには、データベースにアクセスする代替検索結果を表示するためのクエリもある傾向があります。
WordPressウェブサイトのパフォーマンスを向上させるために、Kinstaは404ページを15分間キャッシュするようになりました。X-Kinsta-Cache
ヘッダーの値はHIT
になります。つまり、キャッシュから配達されています。以前は404が発生したページを作成すると、キャッシュはすぐに消去されます。
MyKinstaの分析を使用すると、404エラーの正確な数を確認することができます。

なお、404リクエストすべてをキャッシュしませんので、ご注意ください。404リクエストは、404ページが表示されるPHPページからのものと、存在しないか移動されているファイルまたは画像からのものの2種類があります。404ページがキャッシュされますが、不足しているファイルまたは画像への404リクエストが異なる手段で処理されます。
したがって、原因を特定する際に「404エラーのトップリスト」を使用することもできます。

もちろん、Google Search Consoleで404エラーを確認するか、404エラーを記録するRedirectionなどのサードパーティプラグインをインストールすることもできます。ただし、これらのプラグインはパフォーマンスにも影響することにご注意ください。サーバーレベルのツールを使用した方がはるかにいいです。
可能な限りデータベースへのクエリを回避する単純な404テンプレートを作成してください。
POSTリクエストとBYPASSキャッシュ
当社の分析ツールまたはキャッシュ分析の結果ができるだけ正確であることを目指しております。パフォーマンスの課題をトラブルシューティングする際には、おそらく誰でもキャッシュのHIT率をできるだけ高くすることを検討しているでしょう。そのため、今回はPOSTリクエストを分析結果のレポートに追加しました。
非常に特殊な設定を除いて、POSTリクエストはキャッシュできません。これらのリクエストに対してはX-Kinsta-Cache
の値がBYPASS
になります。POSTリクエストはブログの投稿またはWordPressの投稿のことではありません。(これらはキャッシュ可能です。)POSTリクエストは、サーバーにデータを送信するためのものです。たとえば、ウェブフォームを送信したときに送信されるデータなどのことです。
まとめ
WordPressキャッシュと、Kinstaで使われている4種類のキャッシュ(バイトコードキャッシュ、オブジェクトキャッシュ、ページキャッシュ、CDNキャッシュ)の概要を少し理解できたかと思います。
従来のWordPressキャッシュプラグインを試験したりするのにうんざりしている方に、基本設定のままでも高速なKinstaをお勧めします。5年連続でReviewSignalによるトップティアWordPressホスティングパフォーマンス賞を受賞したことに理由があります。そしてその理由はもちろん、当社のサーバーが超高速の読み込み時間のためにGoogle Cloud Platform上で微調整されていることです。当社のパフォーマンスににがっかりさせません。
コメントを残す