エッジキャッシュ
エッジキャッシュでは、サイト/ページキャッシュ(お客様のサイトで設定したデータセンターにのみ保存されるもの)が、260+箇所のデータセンターからなるCloudflareのグローバルネットワークのいずれかに保存されます。訪問者がブラウザでサイトを読み込むと、最も近い場所からキャッシュされたレスポンスが配信される仕組みです。
エッジキャッシュは、すべてのプランに無料で付帯します。一般的なキャッシュソリューションとは異なり追加料金は発生せず、またプラグインをインストールする手間や負荷も削減されます。
キャッシュの有効期限は、デフォルトでは24時間です。必要に応じて有効期限を変更したり、手動でキャッシュをクリアしたりすることができます。MyKinsta、WordPress管理画面、またはWP-CLIを使用して手動でキャッシュをクリアする場合は、10秒につき1リクエストに制限されます。
エッジキャッシュを利用するにあたっての注意事項
- 現在、狭い範囲でのジオロケーションキャッシュ(国境付近、州、市)はエッジキャッシュ対象外です。MyKinstaでIPジオロケーションを有効にしている場合(「WordPressサイト」>(サイト名)>「ツール」>「ジオロケーション」)、最初にリクエストを送信した訪問者の場所に基づいて、各PoPにキャッシュデータが保存されます。
- 高度なサイトキャッシュの除外(CookieとURIの組み合わせなど) もまた、エッジキャッシュ対象外となります。
- 特別なCookieまたはジオロケーションを使用するサイトに、弊社スタッフが独自のキャッシュルールを設定している場合、エッジキャッシュをご利用いただけません。
エッジキャッシュを利用する
MyKinstaの「WordPressサイト」画面では、ステージングサイトを含む1つまたは複数のサイトで同時にエッジキャッシュを有効にすることができます。サイト名の左側にあるチェックボックスを使用して、エッジキャッシュを有効にするサイトを選択します。右上に出現する「操作」ドロップダウンをクリックして、「エッジキャッシュの変更」を選択します。
「利用する」を選択して、「エッジキャッシュを変更」をクリックします。
変更が適用されると、その旨を伝えるメッセージが表示されます。
また、「WordPressサイト」>(サイト名)>「キャッシュ」画面に移動し、「エッジキャッシュ」タブの「利用する」をクリックして、単一のサイトでエッジキャッシュを有効にすることもできます。
「エッジキャッシュの有効化」ポップアップが表示されたら、注意事項に目を通し、確認の上で「エッジキャッシュを有効にする」をクリックしてください。
特別なキャッシュルールの設定が検出されると、「エッジキャッシュの有効化」画面に警告が表示されます。このルールがエッジキャッシュと衝突しないことが確認された場合は、「エッジキャッシュを有効にする」ボタンをクリックすると、処理を続行することができます。干渉の有無が不明な場合には、開発者に依頼し、サイトのキャッシュルールにエッジキャッシュとの互換性があるかどうかをお確かめください。
エッジキャッシュを有効にすると、設定画面が表示されます。
モバイルキャッシュの有効化
サイトでモバイルブラウザを検出し、そのデバイスに固有のマークアップを持つページを生成する場合には、PC向けコンテンツとは別に、モバイルキャッシュを有効化することができます。これに関してご不明点がある場合は、サイト開発者に直接ご相談ください。
エッジキャッシュを利用している場合、サイトのエッジキャッシュ設定(「WordPressサイト」>(サイト名)>「キャッシュ」>「エッジキャッシュ」)でモバイルキャッシュを利用することもできます。モバイルキャッシュを有効化するには、「モバイルキャッシュ」セクションの「利用する」をクリックします。
エッジキャッシュのクリア
サイトのエッジキャッシュをクリアする方法は複数あります。注)お使いのテーマまたはサイトで有効になっているプラグインにキャッシュが組み込まれている場合、最初にそちらのキャッシュをクリアすることをお勧めします。
MyKinstaでキャッシュをクリアする
MyKinstaの「WordPressサイト」画面からステージング環境を含む1つまたは複数のサイトのサーバー、CDN、およびエッジキャッシュを同時にクリアすることができます。Redisアドオンをご利用の場合は、Redisオブジェクトキャッシュもクリアされます。
サイト名の左側にあるチェックボックスを使用して、キャッシュをクリアするサイトを選択します。右上に出現する「操作」ドロップダウンをクリックして、「キャッシュのクリア」を選択します。
クリアするキャッシュの種類を選択し、「キャッシュをクリア」をクリックします。
キャッシュのクリアが完了すると、その旨を伝えるメッセージが表示されます。
また、「WordPressサイト」>(サイト名)>「キャッシュ」画面に移動し、「エッジキャッシュ」タブの「キャッシュをクリアする」をクリックして、単一サイトのエッジキャッシュをクリアすることもできます。
特定のURLまたはパスのみをクリアするには、「URL指定キャッシュクリア」フィールドにURLをhttps://mydomain.com/path
の形式で入力し、「URLを指定しキャッシュをクリア」をクリックします。URLの下にあるサブディレクトリのキャッシュもクリアするには、「指定したURL下にあるすべてのサブディレクトリのキャッシュをクリア」のチェックボックスを選択します。
注)この操作でクリアされるのはエッジキャッシュのみです。サイトのキャッシュをクリアするには、「キャッシュ」画面の「サーバーキャッシュ」タブで「キャッシュをクリアする」をクリックしてください。
WordPress管理画面でキャッシュをクリアする
Kinsta MU(Must-Use)プラグインがインストールされている場合、WordPressの管理画面でエッジキャッシュ(およびその他のキャッシュ)をクリアすることができます。以下のいずれかの方法で実行してください。
- WordPress管理画面の左サイドバーから「Kinsta Cache」を選択し、「Clear All Caches」ボタンをクリック。
- WordPress管理画面のツールバーにある「Clear Cache」をクリック。
どちらの方法でも、エッジキャッシュおよびサイトキャッシュの両方がクリアされます。
自動パージ設定(サイトに変更を加えた際に特定のURLまたはパスのキャッシュを自動的にクリアする)は、Kinsta MUプラグインの設定ページで行うことができます。左サイドバーの「Kinsta Cache」をクリックし、更新時にパージしたいURLを追加します。詳細についてはこちらをご覧ください。
WP-CLIでキャッシュをクリアする
Kinsta MU(Must-Use)プラグインがインストールされている場合、WP-CLIでエッジキャッシュ(およびその他のキャッシュ)をクリアすることができます。
SSHでサーバーに接続し、サイトのドキュメントルートに移動します。
cd public
Kinsta MU(Must-Use)プラグインがインストールされている場合、以下のコマンドでフルページキャッシュとエッジキャッシュ(有効な場合)をクリアできます。
wp kinsta cache purge
すべてのキャッシュをクリアするには、--all
フラグを追加します。
wp kinsta cache purge --all
エッジキャッシュの有効期限
キャッシュの有効期限はデフォルトで24時間に設定されていますが、必要に応じて延長することも可能です。キャッシュの有効期限を変更するには、以下の手順に従ってください。
- MyKinstaにログインし、「WordPressサイト」>(サイト名)>「キャッシュ」画面に移動し、「サーバーキャッシュ」タブを開きます。
- 「キャッシュの有効期限を変更する」をクリックし、表示されるポップアップウィンドウで任意の期間を選択して、「有効期限を変更する」をクリックします。
これにより、サーバーキャッシュとエッジキャッシュの有効期限が変更されます。頻繁に変更を加えないサイトでは、有効期限の延長はパフォーマンスに有益です。
エッジキャッシュのテスト
サイト表示速度テストツールでサイトのパフォーマンスをテストする前に、エッジキャッシュからの読み込みが機能していることを確認するために、ページのHTTPヘッダーを検査することをお勧めします。以下、サイトのHTTPヘッダーを確認する方法をいくつかご紹介します。
HTTPステータス&リダイレクトチェッカーでエッジキャッシュを確認する
弊社のHTTPステータス&リダイレクトチェッカー(無料)では、任意のURLの HTTPステータスとリダイレクトチェーンを確認できます。これにより、レスポンスヘッダーを調査し、エッジキャッシュが機能しているかどうかを把握可能です。
エッジキャッシュから配信されるべきページを選択し、ブラウザのアドレスバーからURLをコピーしてください。このURLをリダイレクトチェッカーに貼り付けてチェックを実行します。
以下のような結果が表示されます。
レスポンスヘッダが表示されるまで下にスクロールしてください。このセクションで、ki-cache-type
とKi-CF-Cache-Status
という2つのヘッダーの値を確認します。ki-cache-type
ヘッダーの値はEdge
である必要があります。Ki-CF-Cache-Status
ヘッダーの値はHIT
またはSAVING
であれば正常に機能していることになります。
ウェブブラウザでエッジキャッシュを確認する
ブラウザ搭載の開発者ツールでも、エッジキャッシュが機能しているかどうかを確認できます。この例では、Google Chromeを使用して、サイトのホームページのHTTPヘッダーを検査します。Chromeの開発者ツールを開くには、ページ上の任意の場所を右クリックし「検証」をクリックします。
次に「Network」タブをクリックし、ページを再び読み込みます。ページが読み込まれると、開発者ツールウィンドウの左側にリクエストの一覧が表示されます。最初のページリクエストをクリックして、エッジキャッシュが正しく動作していることを確認してください。
「Header」タブで、「Response Headers」が表示されるまで下にスクロールします。このセクションにある、ki-cache-type
とKi-CF-Cache-Status
という2つのヘッダーの値を確認します。ki-cache-type
ヘッダーの値はEdge
である必要があります。Ki-CF-Cache-Status
ヘッダーの値は、HIT
またはSAVING
であれば正常です。
ターミナルでエッジキャッシュを確認する
ターミナル(コマンドライン)の使用に慣れている方は、curl
コマンドでHTTPヘッダーを確認することもできます。以下のコマンドを使用し、コマンド末尾のURLを実際のサイトURLに置き換えてください。
curl -L -s -o /dev/null -D - https://kinstaexample.com
このコマンドを実行すると、次のようなレスポンスが返されます。
ki-cache-type
とKi-CF-Cache-Status
の2つのヘッダーを確認します。ki-cache-type
ヘッダの値はEdge
である必要があります。Ki-CF-Cache-Status
ヘッダーの値は、HIT
またはSAVING
であれば正常です。
エッジキャッシュのトラブルシューティング
エッジキャッシュが動作を確かめるには、以下の方法があります。
X-Kinsta-Cache
ヘッダーの値:エッジキャッシュは、すでにサイトでキャッシュ(フルページキャッシュ)されている場合のみ、対象のレスポンスをキャッシュします。X-Kinsta-Cache
の値がHIT
でない場合、そのページはフルページキャッシュされていないことを意味し、これに対しエッジキャッシュが動作することはありません。- 一般的にキャッシュから除外されるページ(wp-admin, cart, my-account, checkoutなど)以外のページについて、キャッシュが機能しない問題が見られる場合には、弊社カスタマーサポートまでご連絡ください。Nginxにより除外URLやCookieが設定されていないか、確認させていただきます。
エッジキャッシュの無効化
MyKinstaの「WordPressサイト」画面では、ステージングサイトを含む1つまたは複数のサイトで同時にエッジキャッシュを無効にすることができます。サイト名の左側にあるチェックボックスを使用して、エッジキャッシュを無効にするサイトを選択します。右上に出現する「操作」ドロップダウンをクリックして、「エッジキャッシュの変更」を選択します。
「無効化する」を選択して、「エッジキャッシュを変更」をクリックします。
変更が適用されると、その旨を伝えるメッセージが表示されます。
また、「WordPressサイト」>(サイト名)>「キャッシュ」画面に移動し、「エッジキャッシュ」タブの「無効化する」をクリックして、単一サイトのエッジキャッシュを無効にすることもできます。
注意事項
- エッジキャッシュは、今後デフォルトで有効化される予定です。
- Cloudflareのすべてのデータセンターを対象としたエッジキャッシュのクリアには、最大で2〜5分かかる場合があります。MyKinstaで完了通知が表示されても、すべてのデータセンターでのキャッシュクリアが確実に完了するように、2~5分ほどお待ちください。頻繁に更新されるページのエッジキャッシュからの除外については、カスタマーサポートまでご相談ください。
- エッジキャッシュは、本番サイトとプレミアムステージング環境でご利用いただけますが、標準ステージング環境ではご利用いただけません。
- エッジキャッシュは、狭い範囲のジオロケーションキャッシュや、CookieとURIの組み合わせによる高度なサイトキャッシュ例外指定とは互換性がありません。
- エッジキャッシュはKinstaサイト/ページキャッシュを配信しますが、画像、JavaScriptファイル、CSSファイルなどの静的アセットは対象外です。エッジキャッシュから独立している弊社CDNは、サイトの静的アセット配信のために有効にすることができます。
- 弊社CDNを利用している場合、サイトにはエッジキャッシュとは別に管理されるキャッシュの層が存在することになります。CDNキャッシュは、Kinsta MUプラグイン、WP-CLI(Kinsta MUプラグインがインストールされている場合)、またはMyKinstaでクリアすることができます。
- エッジキャッシュのルールは、標準的なWordPress、BuddyPress、WooCommerce、Easy Digital Downloadsサイトで機能するように設定されています。一般的なプライベートURIとCookieを除外しているため、WordPress管理画面、フォーラム、買い物カゴなど、ユーザーによるログインが必要な領域にはキャッシュは適用されません。WordPressサイトに手を加えて使用している場合、キャッシュをバイパスする必要があるサイトのセクションや、互換性のために追加する必要があるルールが存在する可能性があります。そのような場合には、お気軽にカスタマーサポートにお問い合わせください。
- エッジキャッシュは、レスポンスヘッダー
Set-Cookie
を返すリクエストでは機能しません。Set-Cookie
ヘッダーは、新規作成したサイトのキャッシュレスポンスからデフォルトで削除されます。通常このヘッダーは、クライアント向けデータの提供に使用されるため、キャッシュすると、訪問者に意図しないデータを表示する可能性があります。 - WordPressサイトのページを更新するたびに、サイトキャッシュとエッジキャッシュを手動でクリアする必要はありません。
- サイトでお客様ご自身のCloudflareアカウントを使用されている場合、CloudflareのAutomatic Platform Optimizations(APO)を有効にしなければ、エッジキャッシュをご利用いただけます。この2つのキャッシュ方式には互換性がないため、両方ではなくどちらか一方のみご使用いただけます。
- MyKinstaの「IP制限」ツールで悪意のあるIPアドレスをブロックした上で、ブロック対象のIPアドレスによるキャッシュ版サイトへのアクセスもできないようにする、または分析対象外にしたい場合には、エッジキャッシュのご利用をお控えください。「IP制限」ツールで指定したIPアドレスは、Cloudflareレベルではなく、Nginxレベルでブロックされます。Cloudflareには、NginxでブロックしたIPアドレス情報が共有されないため、エッジキャッシュが有効である場合、サイトのキャッシュがCloudflareのデータセンターからブロック対象のIPアドレスに配信されてしまう可能性があります。ブロック対象のIPアドレスが、キャッシュバージョンのサイトに到達するかどうかが問題でない場合には、エッジキャッシュをご利用いただけます。注)ページのキャッシュで発生したPVは、IP アドレスがNginxでブロックされていても、分析データに加味されます。
- エッジキャッシュは、特定の国や地域からのアクセスのみを許可するような、位置情報に応じたブロック(ジオブロッキング)はサポートされません。ジオブロッキングは、CloudflareレベルではなくNginxレベルで行われます。Cloudflareは、サイトに設定されたジオブロッキングの詳細を把握しないため、エッジキャッシュを利用すると、コンテンツのキャッシュバージョンが、Cloudflareのデータセンターからブロックされた場所に配信される可能性があります。これを気にしない場合のみ、エッジキャッシュをご利用ください。
パフォーマンスデータ
ベータ版にて、91件のサイトのパフォーマンスデータを収集し、エッジキャッシュの速度向上を測定したところ、以下のような結果となりました。
- ページキャッシュ(
X-Kinsta-Cache: HIT
)を使用したサイトの平均HTMLページ読み込み時間は、0.4909秒。エッジキャッシュを使用した場合は0.2239秒で、45.6%の速度向上、つまりHTMLページの表示速度がおよそ2倍高速化されました。 - 平均TTFBは、51%削減されました(0.4025秒と0.2069秒)。
まとめ
サイト高速化の方法をお探しなら、エッジキャッシュをご利用ください。複数のデータセンターでキャッシュしたコンテンツを最小限の設定で配信できるようになります。また、別途プラグインのインストールも不要です。