キャッシュの全体像と種類をWordPress制作者向けにわかりやすく解説
この記事では、WordPress開発者や制作者向けに、キャッシュの仕組みと種類の全体像をわかりやすく整理します。
特に「投稿ページにのみ反映される」ように実装する場合の考え方や、WordPress内部キャッシュ(Transient / Object Cache)との関係も解説します。
1 キャッシュとは?
キャッシュ(Cache)とは、一度処理したデータを一時的に保存し、次回以降の処理を高速化する仕組みのことです。
WordPressではPHP・MySQL・サーバー・ブラウザなど、複数の階層でキャッシュが存在します。
2 主なキャッシュの種類と特徴
| 種類 | 保存場所 | 管理対象 | 主な目的 | 制御方法 |
|---|---|---|---|---|
| クエリキャッシュ (Query Cache) |
WordPress(DB内部) | データベースクエリ結果 | DBアクセス削減 | Transient API |
| オブジェクトキャッシュ (Object Cache) |
サーバーのメモリ(Redis / Memcached) | PHPオブジェクト | 内部処理の高速化 | wp_cache_get() / wp_cache_set() |
| サーバーキャッシュ | Webサーバー(LiteSpeed / Nginx) | 完成済みHTML | ページ全体の高速配信 | プラグインやサーバー設定 |
| ブラウザキャッシュ | ユーザー端末(ローカル) | 画像 / CSS / JS | 再読み込みの高速化 | HTTPヘッダ(Cache-Control) |
| CDNキャッシュ(Content Delivery Network/コンテンツデリバリーネットワーク) | CDNサーバー | 静的ファイル / HTML | 地理的な転送最適化 | CDN管理画面(Cloudflare等) |
| OPcache(PHPキャッシュ) | PHPエンジン | PHPコンパイル結果 | PHP実行の高速化 | PHP設定ファイル(php.ini) |
| ブラウザストレージ (localStorage / sessionStorage) |
ブラウザ内部 | JavaScriptデータ | ユーザー操作の保持 | JS API(localStorage) |
3 クエリキャッシュ(Query Cache)
WordPressのPHPレイヤーで実行したMySQLクエリ結果を一時保存するキャッシュ。
DBへのアクセスを減らして表示速度を上げます。
set_transient('query_cache_post_123', $results, HOUR_IN_SECONDS);
4 オブジェクトキャッシュ(Object Cache)
WordPress内部のPHPデータをメモリに保持します。
wp_cache_get() / wp_cache_set() 関数で操作可能。
wp_cache_set('my_data', $value);
$data = wp_cache_get('my_data');
5 サーバーキャッシュ(Server Cache)
完成済みHTMLをサーバーやリバースプロキシでキャッシュ。
WordPressを介さず、即座に静的ページを返す仕組みです。
例: LiteSpeed Cache / WP Super Cache / Nginx FastCGI Cache
6 ブラウザキャッシュ(Browser Cache)
ユーザー端末にCSSやJSなどの静的ファイルを保存します。
次回アクセス時にサーバー通信を省略して高速化。
Cache-Control: max-age=86400
Expires: Thu, 26 Oct 2025 10:00:00 GMT
7 CDNキャッシュ
CloudflareやAWS CloudFrontなどが代表的です。
世界各地に分散されたサーバーが、静的リソースを地理的に最適化して配信します。
8 OPcache(PHPコンパイルキャッシュ)
PHPコードを解析してバイトコード化し、メモリに保存することで
「同じPHPコードを再コンパイルせずに即実行」できます。
opcache.enable=1
opcache.memory_consumption=128
9 ブラウザストレージ(localStorage / sessionStorage)
フロントエンドでユーザーの操作履歴や設定を保存できます。
サーバーには送信されないため軽量で即時反映が可能です。
localStorage.setItem("win_count", 5);
10 キャッシュ種類別のまとめ
| 名称 | 役割 | 保存場所 | 有効期間 | 制御単位 | 代表例 |
|---|---|---|---|---|---|
| クエリキャッシュ | DBクエリ結果の保存 | WordPress DB | 一時 | 投稿単位 | set_transient() |
| オブジェクトキャッシュ | PHPオブジェクト再利用 | メモリ | 短期~永続 | リクエスト単位 | wp_cache_get() |
| サーバーキャッシュ | HTML出力全体 | Webサーバー | 任意 | ページ単位 | LiteSpeed / Nginx |
| ブラウザキャッシュ | 静的リソース保持 | ユーザー端末 | 指定秒数 | ファイル単位 | Cache-Control |
| CDNキャッシュ | 世界配信最適化 | CDNサーバー | 設定依存 | サイト全体 | Cloudflare |
| OPcache | PHPコード実行効率化 | サーバーメモリ | 永続(再起動まで) | サーバー単位 | php.ini |
| localStorage | JSデータ保持 | ブラウザ | 無期限 | ユーザー単位 | localStorage |
11 ポイント
- 開発段階ではキャッシュをオフに: テーマやプラグイン調整中はキャッシュを無効化して動作確認を行いましょう。
- 本番環境では多層キャッシュ構成: Object Cache+サーバーキャッシュ+CDNの組み合わせが最も効果的です。
- 更新時はパージ(削除)必須: 投稿やテンプレートを更新したらキャッシュクリアを忘れずに。
- TransientはWordPress専用キャッシュ: MySQL内に保存されるため、簡易的な一時キャッシュ実装に最適。
12 まとめ
キャッシュは「速度とリソース効率」を支える最重要技術です。
WordPressでは、PHP / DB / サーバー / ブラウザ / CDN と複数層で管理されるため、各階層の役割を理解して適切に設定することが、高速で安定したサイト運用の鍵となります。


コメント欄をアコーディオンで折りたたむ方法(投稿ページ限定)