Cloudflareのキャッシュ制御

MCP Abilities – Cloudflare:キャッシュを削除する前に古いコピーを見つける

ページを修正したのに、訪問者には昨日の内容が表示される。Cloudflareが別のコピーを保持しているのかもしれません。このWordPress用MCPアドオンで公開レスポンスを調べ、削除対象を選び、ページを再確認できます。

WordPress向けCloudflareキャッシュ制御のイラスト

1つのページに複数のキャッシュがある

WordPressサイトで講座の開始時刻を変更しても、訪問者には以前の時刻が見えているとします。まず保存済みのページが正しいか確認してください。そのうえで、WordPressサーバーのキャッシュ、Cloudflareのエッジキャッシュ、ブラウザーのキャッシュを区別します。

Cloudflareのパージは、Cloudflareに保存されたオブジェクトを削除します。未保存の変更を保存したり、訪問者のブラウザーキャッシュを消したりする処理ではありません。オリジンサーバーが古いコピーを返し続けていれば、Cloudflareも同じ古いコピーを再取得する可能性があります。

URL検査では、CF-Cache-StatusAgeCache-Controlなどのヘッダーが報告されます。ページ本文の比較は行いません。実際のレスポンスも読んでください。キャッシュの状態だけでは、時刻が正しいとは判断できません。

オリジンサーバー、エッジキャッシュ、ブラウザーがそれぞれページのコピーを保持している

青緑で示したオリジンのコピーは更新済みです。黄色のエッジキャッシュとブラウザーのコピーは古いままです。各層を個別に確認する必要があります。

1ページの削除が複数のアドレスに及ぶことも

クエリ文字列がなく、拡張子なし、または.htmlで終わるページURLは、プレフィックス指定のパージに変換されます。リソースのURLとクエリ文字列付きURLは、完全一致のURLパージのままです。結果には、自動変換されたプレフィックスが表示されます。

たとえばexample.com/classes/というプレフィックスは、そのパス配下のキャッシュ済みリソースも削除します。対象は1ファイルではなく、サイトの枝に当たる範囲です。選ぶ前にホスト名、言語パス、末尾のスラッシュを確認してください。

ホスト、キャッシュタグ、ゾーン全体を指定するパージは、さらに広い範囲に作用します。Cloudflareは全プランでこれらの方式をサポートし、アカウントごとの制限を設けています。独自のキャッシュキーには追加ヘッダーが必要な場合がありますが、このアドオンのファイル入力は文字列のみで、ヘッダーを送れません。対応する方式から適切な範囲を選んでください。

選択したキャッシュページの枝だけが削除され、隣の枝は残っている

強調した枝が削除範囲です。その下のリソースは対象に含まれ、もう一方の枝は範囲外です。

調べる、絞る、削除する、確かめる

1. 元の内容とゾーンを確認する

WordPressに保存された内容と、正確な公開URLを確認します。変更する前に、接続中のCloudflareゾーンを読み取ってください。認証が成功していても、ゾーンが違えば対象は誤っています。

2. レスポンスを読む

キャッシュ設定、ルール、対象URLのヘッダーを調べます。URL検査は最大20件を扱い、既定では各リクエストを2回実行します。各試行とHTTPステータスを確認してください。最上位の成功値は、検査処理が完了したことだけを示します。

3. 必要な最小範囲を選ぶ

対象を絞って削除する場合は、purge_everything: falseを明示し、確認済みのURLかプレフィックスを渡します。報告された処理を読み、後続リクエストが失敗した場合も、それまでに完了した処理を確認してください。

4. 訪問者に届く内容を確かめる

公開ページを再取得し、変更したテキストや画像を確認します。Cloudflareのパージ成功はリクエストが受理されたことを示すだけで、オリジンが正しいページを返した証拠ではありません。旧版が残る場合は、ブラウザーとローカルのキャッシュを別々に調べてください。

キャッシュ設定は別に判断する

開発モードはCloudflareのキャッシュを一時的に迂回しますが、保存済みファイルは削除しません。通常は3時間後にCloudflareが解除します。変更前に状態を確認し、保存されたコピーを消す目的ならパージを使ってください。

HTMLキャッシュルールの操作は、既定で変更のプレビューを返します。ルールは選択したホストを対象とし、一般的なWordPressのパスやCookieをいくつか除外します。オリジンのキャッシュ指示を上書きできるため、プレビューだけでは非公開ページの安全性を確認できません。

HTMLキャッシュを有効にする前に、独自のログイン、アカウント、購入手続き、個人向けコンテンツのパスを確認してください。独自の除外設定は、選択したパスとその配下を対象にします。ルールを適用する前に、生成された式を読み、実際のパスとCookieをテストしてください。

プラグインのインストールや更新が完了すると、このアドオンは公開ホストのルートプレフィックスのパージも試みます。変更計画では、この自動動作を考慮してください。1ページより広い範囲に及びます。

正しいWordPressサイトとCloudflareゾーンを接続する

公称の最低要件はWordPress 6.9とPHP 8.0です。WordPress 6.9にはAbilities APIが組み込まれています。保守対象のPHP、認証済みのMCP Adapter接続、サイト設定を管理できるWordPressアカウントを使ってください。

Cloudflare APIへのアクセスには、対象ゾーンと操作に適したトークンかキーが必要です。公式のCloudflare for WordPressプラグインから認証情報を取得できます。対応するWordPress定数も利用できます。

認証情報の設定操作には、公式プラグインと完全一致の確認値が必要です。ゾーンへのアクセスを検証してから設定を保存し、認証情報は返しません。ただし、これだけでキャッシュやルールに必要な全権限があるとは分かりません。必要な操作がMCPの機能一覧に現れるか確認してください。

提供元の動作と現在の制限は、Cloudflareのパージのドキュメント開発モードのガイドキャッシュルールの設定を参照してください。

WordPress向けCloudflareキャッシュ制御のイラスト

更新されていないページから始める

アドオンを導入し、接続先ゾーンを確認して、問題のURLを調べます。調査結果からパージ範囲を選び、最後に訪問者が実際に受け取るページを確認してください。