本文へ移動
TameshiTechLAB GUIDE

WordPressのキャッシュ設定|Cloudflare・サーバー・プラグインの重複を防ぐ方法

ブラウザ・CDN・サーバー・WordPressのキャッシュ層 WordPress

※本記事には広告・アフィリエイトリンクが含まれています。

先に結論
WordPress高速化でキャッシュを「多く入れる」ほど良いわけではありません。ブラウザ、Cloudflare、サーバー、WordPressプラグインのどこで何をキャッシュするかを決め、更新時にどの層をpurgeするか説明できる構成が正解です。

WordPressで表示速度を改善しようとすると、レンタルサーバーのキャッシュ、Cocoonやプラグインの高速化、Cloudflare CDNなど複数の設定が重なります。うまく動けば速くなりますが、役割が重複すると「記事を更新したのに古い」「管理画面では正しいのに一般ユーザーだけ違う」といった症状が起きます。

本記事は一般的な速度改善記事ではなく、複数キャッシュ層をどう分担させるかに絞ります。Cloudflare公式も、APO導入時に他キャッシュプラグインとの併用で予期しない挙動が起こる可能性を案内しており、最初は単純な構成から検証することが重要です。

WordPress周辺のキャッシュは少なくとも5層ある

層 保存場所 主な対象 更新時の注意
ブラウザ ユーザー端末 画像/CSS/JS等 端末側に古い資産が残る
Cloudflare/CDN エッジ 静的資産、設定によりHTML エッジpurgeが必要
サーバーページキャッシュ ホスティング側 生成済みHTML WordPress更新との連携を確認
WordPressプラグイン WordPress側 ページ/最適化済み資産 他層と重複しやすい
オブジェクト/DBキャッシュ サーバー内部 クエリ結果等 ページキャッシュとは別物

まず「誰がHTMLをキャッシュするか」を1つずつ決める

画像やCSSのブラウザキャッシュと、ページHTMLのキャッシュは分けて考えます。問題が起きやすいのはHTMLです。ログイン状態、プレビュー、コメント、会員、ECなどユーザーごとに表示が変わるWordPressで、複数レイヤーが同じHTMLをキャッシュすると除外条件のズレが出やすくなります。

最初はサーバー側ページキャッシュだけ、またはCloudflare側だけなど、主担当を決めます。正常動作を確認してから補助キャッシュを追加し、効果がないレイヤーは増やしません。

キャッシュ層の役割を分ける

Cloudflare標準キャッシュとHTMLキャッシュを分ける

Cloudflareは画像・CSS・JavaScriptなど静的ファイルを標準でキャッシュします。これはWordPress HTMLをすべてキャッシュすることとは違います。Cache RulesやAPOでHTMLまで対象にする場合は、ログイン・管理・プレビュー等の除外が重要です。

「Cloudflareを入れたからCache Everything」と一括設定するより、静的配信→必要なら匿名HTMLという順に広げます。ECや会員サイトは特に個別確認が必要です。

サーバーキャッシュとプラグインキャッシュの重複

レンタルサーバー側にWordPress向けキャッシュがある状態で、同じ目的のプラグインを追加すると、更新時のpurge順序が分かりにくくなります。プラグインは「入れたら速くなるもの」ではなく、現行サーバーで不足している機能だけ補うものとして考えます。

また画像最適化、CSS結合、JavaScript遅延はページキャッシュとは別機能です。1つの高速化プラグインが複数機能を持つため、「キャッシュを切ったつもりでもCSS最適化は残っている」ことがあります。

症状からキャッシュ層を逆引きする

症状 疑う層 確認方法
自分だけ古い表示 ブラウザ シークレット/別端末で確認
全員が古い表示 CDN/サーバーページキャッシュ レスポンスヘッダー、purge
ログイン時だけ新しい 匿名向けHTMLキャッシュ Cookie除外の確認
CSSだけ古い ブラウザ/CDN/最適化資産 ファイルURLとcache statusを確認
管理画面までおかしい 過剰なキャッシュルール /wp-admin除外を確認
フォーム送信後の表示がおかしい HTMLキャッシュ POST/動的ページの除外を確認

Automatic Cache Managementを使う意味

Cloudflare WordPressプラグインには、投稿・ページ・添付・コメントの追加/編集/削除やテーマ変更時に関連キャッシュをpurgeするAutomatic Cache Managementがあります。これにより「更新したら自分で全キャッシュ削除」という手作業を減らせます。

ただし自動purgeがあるから何でもキャッシュしてよいわけではありません。動的ページをそもそもキャッシュ対象から外す設計と、更新時に対象URLを正しくpurgeする仕組みの両方が必要です。

ログイン・カート・会員ページは「キャッシュしない」が正解になる

HTMLキャッシュを広げるほど速くなるわけではありません。WordPress管理画面、ログイン済み画面、プレビュー、ECのカート/決済、会員専用ページなどはユーザーごとに内容が変わるため、キャッシュ除外が必要です。WooCommerce等ではCookieやURL条件を使ってbypassする設計が一般的です。

確認のコツは、未ログインではHITしても、ログイン時やカート操作時には意図どおりBYPASS/DYNAMICになるかを見ることです。匿名ユーザーの表示速度だけを見て、個別セッションまでキャッシュしてしまう設定は避けます。

キャッシュを増やす前にオリジンサーバーを見る

キャッシュHIT時だけ速く、MISS時に極端に遅い場合は、PHP/DBやサーバー性能の問題が隠れている可能性があります。編集者や検索エンジン、初回訪問、ログインユーザーは常に同じキャッシュを使うとは限りません。

オリジン自体が不安定なら、キャッシュ設定を複雑化するよりサーバー・プラグイン・DBの見直しを先に行います。

キャッシュ以前にサーバー側の機能・復元性を見直す場合

サーバーキャッシュ、バックアップ、容量、管理性までまとめて不満があるなら、設定を積み重ねるよりホスティングの見直しがシンプルな場合があります。最新条件は各公式で確認してください。

僕ならこの順番でキャッシュを設計する

  1. キャッシュなし/最小構成のオリジン速度を測る
  2. レンタルサーバー標準キャッシュを確認する
  3. 画像・CSS・JSのブラウザ/CDNキャッシュを確認する
  4. 更新・フォーム・ログインが正常かテストする
  5. 必要な場合だけHTMLキャッシュを追加する
  6. purge方法を1つの運用手順にまとめる
  7. 月1回、古い表示・フォーム・APIを確認する

公開・更新時のQA

  • 公開直後に一般ブラウザで新本文が見える
  • スマホでも同じ内容が見える
  • アイキャッチ・CSS・JSが旧版のまま残っていない
  • wp-adminとプレビューがキャッシュされていない
  • フォーム送信が正常
  • REST APIや外部連携が正常
  • purge手順を担当者が説明できる

「全部のキャッシュを削除」が毎回の解決策になっているなら、構成が複雑すぎるサインです。どの変更でどのキャッシュを消すべきか特定できる形へ整理します。

古い表示を切り分ける実務

レスポンスヘッダーで「どこから返ったか」を確認する

キャッシュ問題を感覚で判断せず、ブラウザの開発者ツールやcurlでレスポンスヘッダーを確認します。Cloudflareではcf-cache-statusが基本の手掛かりです。HITならCloudflareキャッシュから配信、MISSならキャッシュに無くオリジン等から取得、BYPASSならキャッシュ可能性はあっても設定やレスポンス条件で迂回した状態です。

APOを使っている場合、Cloudflare公式はCF-Cache-Status、cf-apo-via、cf-edge-cacheの3つを確認する方法を案内しています。典型的な正常例はCF-Cache-Status: HIT、cf-apo-viaがキャッシュ経路を示し、cf-edge-cache: cache, platform=wordpressがWordPress連携を示す状態です。

ヘッダー 見ること
CF-Cache-Status HIT/MISS/BYPASS/DYNAMIC等。どの層へ取りに行ったかの切り分け
cf-apo-via APOがそのリクエストをどう扱ったか
cf-edge-cache WordPressプラットフォームのエッジキャッシュ連携

同じURLを未ログイン・ログイン・シークレットウィンドウで比較すると、Cookieによる除外が正しく効いているか確認しやすくなります。更新が反映されない時に「とりあえず全部削除」ではなく、どの層が古いレスポンスを返しているかを特定します。

CSS・JavaScriptはファイル名のバージョン管理も重要

ページHTMLだけ更新されても、同じURLのCSSやJavaScriptに長いブラウザキャッシュが付いていると、古い見た目や挙動が残ることがあります。テーマやビルド環境がクエリ文字列やハッシュ付きファイル名でバージョンを変える仕組みを持っている場合は、それを壊さないようにします。

キャッシュTTLを極端に短くするより、静的資産は長くキャッシュし、変更時にURLが変わる設計の方が効率的です。ただしWordPressテーマ・プラグインがどの方法を採用しているか確認してから調整します。

緊急時の「キャッシュ無効化手順」を1枚にする

公開直後に重大な誤りを修正したのに古いページが残る場合に備え、Cloudflare purge、サーバーキャッシュ削除、WordPressプラグインキャッシュ削除、ブラウザ確認の順番を決めておきます。複数サイトではサイトごとに使っているキャッシュ層が違うため、共通手順と例外を分けます。

緊急時に管理画面を探し回らないよう、どの画面でpurgeできるかを運用台帳へ記録しておくと復旧が速くなります。

公式情報・参考資料

仕様確認日:2026年10月1日。設定画面・料金・提供機能は変更されるため、実作業前にリンク先の最新版も確認してください。

あわせて読みたい

まとめ

WordPressキャッシュは数ではなく役割分担です。静的ファイル、HTML、DB/オブジェクトを分け、Cloudflare・サーバー・プラグインの主担当を決めてください。更新時にどこをpurgeするか分からない構成は、速度改善より保守負担を増やします。

コメント

SITE NAVIGATOR151本から、いま必要な記事だけ探す
索引を読み込んでいます…
TameshiTechAI Tool Lab
AI TOOL LAB / TCO + BREAK-EVEN

「便利そう」で契約せず、実際の仕事で元が取れるか試す。

AIの処理時間だけでなく、人が確認・修正する時間、学習・初期設定、利用人数まで含めて2候補を同じ条件で試算します。入力は外部送信しません。

ブラウザ内だけで計算個人情報不要性能ランキングではない公式情報へ直リンク
OFFICIAL SNAPSHOT

主要プランの公式情報を、確認日つきで見る

契約価格を自動決定する機能ではありません。最終支払額・利用上限・データ条件は公式画面で確認してから下の試算へ入力してください。

OpenAI個人向け

ChatGPT Plus

$20/month

月額課金。API利用は別料金。

  • Freeより広いモデル・ツール利用枠
  • Deep Researchなど拡張機能
  • 画像生成・ファイル分析
  • 利用上限は変動する場合あり
公式ページを確認 ↗
OpenAIチーム向け

ChatGPT Business Standard

$20/seat/month annual; $25 monthly

年額課金時$20/月、月額課金時$25/月。

  • ChatGPT・Work・Codex機能
  • SAML SSO・MFA
  • 各種コネクタ
  • ビジネスデータは既定で学習不使用
公式ページを確認 ↗
Anthropic個人向け

Claude Pro

$17/month annual equivalent; $20 monthly

$200年払いで月換算$17、月払い$20。税別表示。

  • Freeより多い利用枠
  • タスクの引き継ぎ・スケジュール
  • Claude Code
  • Projects・Researchなど
公式ページを確認 ↗
Anthropic2〜150人

Claude Team Standard

$20/seat/month annual; $25 monthly

年払い時$20/席/月、月払い時$25/席/月。

  • Teamは2〜150人
  • Proより多い利用枠
  • 中央請求・管理
  • SSO・組織検索
公式ページを確認 ↗
Google日本

Google AI Plus / Pro / Ultra

契約画面で現在価格を確認

日本向け公式ページはプラン構成を確認。価格はアカウント・時期の契約画面で再確認。

  • AI Plus 400GB
  • AI Pro 5TB
  • AI Ultra 20TB〜
  • Gemini・Googleアプリ連携の利用枠はプランで異なる
公式ページを確認 ↗

確認日:2026-10-08。税・為替・キャンペーン・API従量課金・地域差は別途確認してください。

0. 何のために使う?

用途は計算式を変えません。結果のあとに読む記事を絞るために使います。

1. 共通条件
2A. 候補A
2B. 候補B
3. 契約前チェック
SIMULATION

まだ計算していません

現在の作業時間と、AI利用後の「AI作業+人の確認・修正」を分けて入れるのがポイントです。

試算は入力値にもとづく参考値です。TameshiTechが生産性・利益・料金・将来の成果を保証するものではありません。