説明
Prime Cache を有効化すれば、ページはキャッシュされます。最初に済ませる設定画面も、編集が必要な wp-config.php もありません。
さらに高速化したいときは、「自動」ボタン1つで高速化の設定をまとめて適用できます: HTML、CSS、JavaScript の圧縮、JavaScript の遅延読み込み、レンダリングを妨げない CSS の読み込み、遅延読み込み、ブラウザーキャッシュ、リンクプリフェッチ、キャッシュプリロード。適用後も各設定はそれぞれの画面に残るので、どの設定でも確認や変更ができます。
5分のセットアップ動画チュートリアル:
設定なしで動く仕組み
ページキャッシュは、プラグインを有効化した時点で動作します。Prime Cache は各リクエストの早い段階でページキャッシュエンジンを動かし、ページを作り直す代わりに保存済みのコピーを送信します。そのため、テーマの処理やページの裏で実行されるデータベースクエリーが省略されます。ログインユーザー、管理画面、フォームの送信、WooCommerce のカート、購入手続き、アカウントの各ページには、キャッシュを配信しません。
さらに高速な配信方法を2つ、任意で使えます:
- .htaccess 最適化 (.htaccess を読み込むサーバーの場合): キャッシュ済みのページを、PHP を起動せずに Web サーバーが送信します。「ページキャッシュ」タブで有効にするか、.htaccess が書き込み可能な場合は自動プリセットで有効になります。
- ドロップインモード: wp-config.php に
define( 'WP_CACHE', true );を自分で追加すると、WordPress コアの読み込み前にキャッシュ済みのページが配信されます。追加する行は設定画面に表示されます。
無料版が wp-config.php を編集することはありません。このファイルはサイト全体を制御するもので、サーバー会社が管理している場合もあるため、自動で編集するリスクは取りません。ドロップインの手順はご自身で行うかどうかを選べ、行わなくてもページキャッシュは動作します。
Prime Cache は共用サーバー上で開発し、運用しています。
自動プリセットのあとで表示がおかしいとき
自動プリセットのうち JavaScript と CSS の設定は、高速化の効果がもっとも大きい一方で、テーマやほかのプラグインともっとも合わないことが多い設定でもあります。問題が出やすいのは、メニュー、スライダー、フォームです。
いちばん早い解決方法は、「ツール」タブの安全プリセットです。ページキャッシュ、ブラウザーキャッシュ、遅延読み込みはそのままにして、圧縮、JavaScript の遅延読み込みと遅延実行、CSS の配信設定、そのほかページの見た目を変える自動プリセットの設定を、手動で有効にしたものも含めて無効にします。無効になる設定の一覧は「ツール」タブのプリセットカードに表示されます。キャッシュをクリアして、ページをもう一度確認してください。
自動プリセットのほかの設定を残したまま、合わない設定を見つけたい場合は、代わりに自動プリセットをもう一度適用してから、次の順に設定を無効にしてください。1つ無効にするたびにキャッシュをクリアします:
- JavaScript 実行の遅延と最大 Delay (自分で有効にした場合)。無料版の自動プリセットはこれらを有効にしません。
- JavaScript の遅延読み込み
- CSS を非同期読み込み (Free)、次に小さな CSS ファイルのインライン化
- HTML の圧縮、CSS の圧縮、JavaScript の圧縮
無料版の機能
- 有効化した時点から動くページキャッシュ
- 自動プリセット (ほかに安全、バランス、アグレッシブのプリセット)
- ブラウザーキャッシュヘッダー
- .htaccess 最適化
- Gzip 圧縮
- 404ページのキャッシュ
- HTML / CSS / JavaScript の圧縮
- 小さな CSS のインライン化
- JavaScript の defer
- JavaScript 実行の遅延 (最大 Delay を含む)
- Google Fonts の display=swap
- 画像、iframe、動画の遅延読み込み
- WebP 変換 (一括変換付き)
- アップロード時の画像リサイズと EXIF の削除
- ホームページ、公開済みの投稿、公開タクソノミーのキャッシュプリロード
- リンクプリフェッチ
- パフォーマンスチューニング (絵文字、jQuery Migrate、埋め込みなど、WordPress の不要な機能を無効化)
- コンテンツ変更時の自動キャッシュパージ
- セキュリティーヘッダー
- インポート / エクスポート
- WP-CLI 対応
Prime Cache Pro (任意のアドオン)
Prime Cache Pro は、作者のウェブサイト (https://raplsworks.com/plugins/prime-cache/) で販売している別売りのアドオンです。ここまでに説明した機能はすべて無料で、制限なく使えます。無料版は Pro がなくても動作します。
Pro をインストールすると、自動プリセットで次の設定も有効になります:
- 未使用 CSS の削除 (クリティカル CSS の自動生成付き)
- 最大 Delay による JavaScript 実行の遅延
- AVIF 画像変換 (サーバーが AVIF を作成できない場合は WebP)
- Google Fonts のセルフホストとフォントプリロード
- LCP 最適化
- Speculation Rules
- クリックで動画を読み込む YouTube サムネイル
- タクソノミーアーカイブのプリロード
Pro では、自分で有効にして使う機能も追加されます:
- AI による速度診断と相談 (API キーは各自で用意: Anthropic / OpenAI / OpenRouter / Gemini)
- CSS と JavaScript の結合
- CDN の URL 書き換え
- Cloudflare、Sucuri、Varnish との連携
- オブジェクトキャッシュのバックエンド (APCu / Redis / Memcached)
- サイトマップを利用したキャッシュのプリロード
- データベースクリーンアップ
- Heartbeat の制御
- Google Analytics のセルフホスト
- ワンクリックで wp-config.php に
WP_CACHEを設定 (先にバックアップを作成) - サーバー側のキャッシュがサイトの手前にある場合の警告
Prime Cache Pro の紹介動画 (日本語ナレーション):
日本語
管理画面は日本語に翻訳されています。
ドキュメント
すべての設定と動作についての詳しいドキュメント:
- 無料版マニュアル (英語): https://raplsworks.com/prime-cache-free-manual-en/
- 無料版マニュアル (日本語): https://raplsworks.com/prime-cache-free-manual-ja/
- Pro 版マニュアル (英語): https://raplsworks.com/prime-cache-manual-pro-en/
- Pro 版マニュアル (日本語): https://raplsworks.com/prime-cache-manual-pro-ja/
外部サービス
無料版の Prime Cache プラグインは、外部サービスに一切接続しません。無料版プラグインが第三者にデータを送信することは、いかなるときもありません。
以下の第三者のホスト名は、プラグインのソースコード内に文字列としてのみ登場します。プラグインがこれらのホストに対して通信を行うことはありません。
googletagmanager.com、google-analytics.com、connect.facebook.net、widget.intercom.io、embed.tawk.to—includes/class-file-optimizer.phpに、「JavaScript 実行の遅延」機能の URL パターンのプリセットとして記載しています。これらは、ページ上にすでに存在する第三者のスクリプト (他のプラグインやテーマが追加したもの) を認識し、その実行を最初のユーザー操作まで遅延させるためにのみ使用します。プラグイン自身がこれらのサービスを読み込んだり、取得したり、埋め込んだりすることはありません。cdnjs.cloudflare.com— コード内のコメントと、一部のテーマが同梱の jQuery を CDN 版に置き換える仕組みを説明する管理画面のヘルプテキストにのみ登場します。プラグインがこのホストを呼び出したり、このホストからリソースを読み込んだりすることはありません。
任意のアドオンである Prime Cache Pro を導入した場合、その外部サービスの利用については別プラグインである Prime Cache Pro 自身の readme に記載しています。Prime Cache (無料版) 単体では、外部への通信は一切行いません。
ページキャッシュのドロップインが出力バッファーを開いたままにする理由
ページキャッシュプラグインは、レンダリング済みの HTML レスポンス全体を取得し、ブラウザーに届く前にその本文をディスクへ書き出す必要があります。dropins/page-cache.php はリクエストの早い段階で ob_start() を呼び出し、リクエストの終了時に PHP が自然にバッファーをフラッシュするのに任せます。取得した本文は、バッファーのコールバック内でキャッシュファイルに書き込まれます。バッファーはリクエストの途中では意図的に閉じません。途中で閉じると、キャッシュされる本文が途中で切れるか、シャットダウン時に最後の出力を行うプラグインやテーマの取得に失敗するためです。これは WordPress のページキャッシュにおける標準的な設計です。includes/class-html-pipeline.php の HTML 変換パイプラインも、同じ理由で同じパターンを採用しています。
スクリーンショット








インストール
- WordPress 管理画面の「プラグイン」>「新規追加」で「Prime Cache」を検索し、「今すぐインストール」をクリックします (または
prime-cacheフォルダーを/wp-content/plugins/にアップロードします) - WordPress の「プラグイン」メニューからプラグインを有効化してください。ページキャッシュはすぐに動き始めます。wp-config.php の変更は不要です。
- 任意: Prime Cache > ツールを開いて「自動プリセットを適用」をクリックすると、上で説明した高速化の設定が有効になります。
- 任意: ドロップインモードを使う場合は、画面の案内に従って
WP_CACHEの行を自分で追加してください。
設定タブ
- 「ページキャッシュ」タブ – モバイルキャッシュ、gzip 圧縮、.htaccess 最適化、404ページのキャッシュ
- 「ファイル最適化」タブ – HTML、CSS、JS の圧縮、遅延読み込み (defer) と遅延実行 (delay)
- 「メディア」タブ – 遅延読み込みと WebP 変換
- 「プリロード」タブ – キャッシュのプリロードとリンクプリフェッチ
FAQ
-
自動プリセットを適用したら表示が崩れました。
-
まず「ツール」タブで安全プリセットを適用してください。ページキャッシュ、ブラウザーキャッシュ、遅延読み込みはそのままにして、圧縮、JavaScript の遅延読み込みと遅延実行、CSS の配信設定、そのほかページの見た目を変える自動プリセットの設定を、手動で有効にしたものも含めて無効にします。無効になる設定の一覧は「ツール」タブのプリセットカードに表示されます。そのあとキャッシュをクリアし (管理バー > Prime Cache > すべてのキャッシュをクリア)、メニュー、スライダー、フォームをもう一度確認してください。
安全プリセットで直ったうえで自動プリセットのほかの設定を残したい場合は、自動プリセットをもう一度適用してから、次の順に設定を無効にしてください。1つ無効にするたびにキャッシュをクリアします:
- JavaScript 実行の遅延と最大 Delay (自分で有効にした場合)。無料版の自動プリセットはこれらを有効にしません。
- JavaScript の遅延読み込み
- CSS を非同期読み込み (Free)、次に小さな CSS ファイルのインライン化
- HTML の圧縮、CSS の圧縮、JavaScript の圧縮
-
自動プリセットは具体的に何を変更しますか ?
-
無料版の自動プリセットは次の設定を有効にします: モバイルキャッシュを含むページキャッシュ、gzip 圧縮、ブラウザーキャッシュのヘッダー、.htaccess 最適化 (.htaccess が書き込み可能な場合のみ)、HTML / CSS / JavaScript の圧縮、HTML コメントの削除、画像、iframe、動画の遅延読み込み (最大の画像が遅れないよう、最初の6枚は遅延させません)、画像の幅と高さの補完、テーマが CDN から jQuery を読み込む場合のローカルコピー、JavaScript の遅延読み込み、小さな CSS のインライン化、先頭以外の CSS の非同期読み込み、Google Fonts の display=swap、絵文字と埋め込みの無効化、バージョンのクエリー文字列の削除、DNS プリフェッチの制限、クラシックテーマでのブロック CSS の無効化、リンクプリフェッチ、キャッシュプリロード。WooCommerce サイトでは、ショップ以外のページでの WooCommerce スクリプトとカートフラグメントも無効にし、カート、購入手続き、アカウントの各ページを除外に追加します。
無料版の自動プリセットは、JavaScript 実行の遅延、WebP 変換、Brotli 圧縮を有効にしません。Prime Cache Pro は自動プリセットに独自の項目を追加します (「説明」を参照)。
-
このプラグインは wp-config.php を編集しますか ?
-
無料版は編集しません。
WP_CACHEが設定されているかを確認するために wp-config.php を読み込むだけで、書き込むことはありません。ページキャッシュはWP_CACHEがなくても動作します。define( 'WP_CACHE', true );を自分で追加すると、WordPress コアの読み込み前にキャッシュ済みのページが配信されるため、さらに高速になります。Prime Cache Pro では、先にバックアップを作成したうえで、この行をワンクリックで追加できます。 -
ほかのキャッシュプラグインと併用できますか ?
-
2つのページキャッシュを同時に使わないでください。Prime Cache を有効化する前に、ほかのキャッシュプラグインを無効化してください。Prime Cache は既知のキャッシュプラグインや最適化プラグイン14種類を検出し、有効になっているものがあれば警告します。
-
サーバーにすでにキャッシュ機能があります。
-
2つのページキャッシュで同じページを配信しないでください。サーバーのキャッシュが Prime Cache の手前にあると、Prime Cache のパージが届かないため、投稿を更新したあとも訪問者に古いページが表示され続けることがあります。どちらでページを配信するかを決めてください。サーバーのキャッシュを使い続ける場合は、Prime Cache のキャッシュをクリアするたびに、サーバーのキャッシュもクリアしてください。Prime Cache Pro は一般的なサーバー側キャッシュを検出し、サイトの手前にある場合に知らせます。
-
ログインユーザーに古いページが表示されます。
-
初期設定では起きません。ログインユーザーにキャッシュ済みのページが配信されることはなく、ページの最適化も適用されません。「ページキャッシュ」タブでログインユーザーキャッシュを有効にしている場合は、すべてのログインユーザーが匿名の訪問者と同じキャッシュを共有します。この設定を無効にしてください。
-
キャッシュをクリアするにはどうすればよいですか ?
-
いくつかの方法があります。管理バーのメニュー (Prime Cache > すべてのキャッシュをクリア、ほか)、ダッシュボードのクイックアクション、WP-CLI (
wp prime-cache flush)、自動パージのトリガーです。 -
日本語で使えますか ?
-
はい。管理画面は日本語に翻訳されています。
-
Core Web Vitals の改善に役立ちますか ?
-
各機能は Core Web Vitals のよくあるボトルネックを対象にしています。ページキャッシュとプリロードはサーバーの応答時間 (LCP に影響する TTFB) を短縮し、圧縮と JavaScript の遅延読み込みはレンダリングを妨げるリソースを減らします。遅延読み込みと WebP 変換は画像の容量を減らし、最初の画像を遅延させないことで LCP 画像の表示を守ります。結果はテーマ、サーバー環境、ほかのプラグインによって変わるため、設定を変えるたびに前後で計測してください。
-
サーバー要件を教えてください。
-
WordPress 5.8以降、PHP 7.4以降です。WebP 変換には GD または Imagick の PHP 拡張が必要です。
-
Nginx でも動作しますか ?
-
動作します。ページキャッシュ、ファイル最適化、メディア最適化をはじめ、PHP ベースの機能はすべてどのサーバーでも動作します。.htaccess 最適化は .htaccess を読み込むサーバーが必要で、Nginx ではオフのままで構いません。
-
WooCommerce に対応していますか ?
-
対応しています。WooCommerce のカート、購入手続き、アカウントの各ページは自動的にキャッシュから除外されます。さらに、WooCommerce 以外のページでのスクリプト無効化や、カートフラグメント AJAX の無効化といった最適化も利用できます。
-
特定のページだけキャッシュを無効化できますか ?
-
できます。投稿または固定ページを編集し、サイドバーの Prime Cache メタボックスで「このページのキャッシュを無効化」にチェックを入れてください。
-
.htaccess 高速パスはすべてのリクエストで機能しますか ?
-
.htaccess 高速パスは、PHP を読み込まずにキャッシュ済みのページを配信します。動作条件は、Host ヘッダーが小文字であること、クエリー文字列がないこと (cache_query_strings が無効な場合を除く)、Vary Cookie がないこと、URL パスが ASCII のみであること、GET リクエストであることです。これらの条件に一致しないリクエストは PHP エンジンで配信されます。こちらも十分に高速ですが、PHP をまったく使わないわけではありません。
-
WordPress のマルチサイトに対応していますか ?
-
マルチサイトではページキャッシュはサポートしていません。その他の機能 (ファイル最適化、遅延読み込み、画像最適化など) はマルチサイトでも通常どおり動作します。
-
画像最適化はどのように動作しますか ?
-
WebP 変換と自動変換を有効にすると、JPG/PNG 画像はアップロード時に、すべてのサムネイルサイズを含めて WebP に変換されます。WebP は、.htaccess の書き換えルール、picture タグ、URL の書き換えのいずれかで、対応ブラウザーに配信されます。
-
Prime Cache は外部サービスにデータを送信しますか ?
-
送信しません。無料版プラグインは、利用者のデータや API リクエストを第三者のサービスに送信しません。キャッシュのプリロードは、自分のサイトの URL にのみリクエストを送ります。一部の任意機能では、サイトがすでに使用している外部アセットに対してブラウザーのリソースヒント (preconnect など) を追加する場合がありますが、Prime Cache 自体が外部サービスにデータを送信することはありません。
貢献者と開発者
変更履歴
1.10.62
- 修正済み: 「Delay JavaScript」が有効な場合、Cocoon テーマのモバイルサイドバードロワーは、最初のタップでは空の状態になって開き、2回目のタップ以降から正常に動作していました。ドロワーを開くタップは、遅延スクリプトの読み込みを開始するタップでもあるため、サイドバーをドロワー内に移動させる Cocoon のスクリプトがまだ実行されていなかったのです。この修正により、遅延処理の対象外となる小さなスクリプトが、Cocoon のスクリプトがまだ実行されていない場合にサイドバーをドローワー内に移動させ、Cocoon のスクリプトが実行され始めた後は何も行わないようになりました。この影響を受けるのは、Cocoon を使用しているサイトのみです。
1.10.61
- 表示名と readme を更新しました。
- 変更: 安全プリセットで、「CSS を非同期読み込み (Free)」、「小さな CSS ファイルのインライン化」、そのほか自動プリセットが有効にするページを変える設定 (「ローカル jQuery を使用」、「Gutenberg ブロック CSS を無効化」、「WP Embed を無効化」、「埋め込み (oEmbed) を無効化」、「画像の寸法を自動補完」、HTML の DOM とコメントのオプション、WooCommerce のスクリプトとカートフラグメントのオプション) も無効にするようにしました。これで、無料版の自動プリセットのうち、ページの見た目を変えうる設定はすべて元に戻ります。「ツール」タブの安全プリセットのカードに、無効にする設定をすべて表示するようにしました。アドオンは、新しい
prime_cache_preset_safeフィルターで安全プリセットを拡張できます。
1.10.60
- 修正: 「WordPress 本体の更新」をオフにしていると、「プラグインの有効化・無効化」と「テーマの切り替え」を有効にしていても、プラグインやテーマの更新後にキャッシュがクリアされませんでした。3種類の更新はすべて1つの WordPress フックで届きますが、そのフックはコア更新の設定がオンのときにしか登録されていませんでした。3つのいずれかが有効なら常にフックを登録し、更新の種類ごとにそれぞれの設定に従うようにしました。3つとも有効なサイト (初期設定) には影響はありません。
1.10.59
- 修正: CSS 圧縮処理が
:not()セレクタを壊していた問題を解消しました。メディアクエリーのキーワードに必要な空白を補う処理 (and(をand (にする) が、:not(疑似クラスにもマッチし、.a:not(.b)を無効な.a:not (.b)に変えていたため、ブラウザーが:not()を使うすべてのスタイルルールを破棄していました。レイアウトを:not()に依存するテーマ (例: Avada の検索フォーム) では、CSS 最適化を有効にすると要素の位置がずれたり装飾が外れたりしていました。圧縮処理は、メディアクエリーのキーワードには引き続き空白を補いつつ、:not()はそのまま残すようにしました。 - 変更: 圧縮した CSS/JS (Pro アドオン使用時は結合ファイルと未使用 CSS 削除ファイルも) のキャッシュファイル名に、プラグインのバージョンを含めるようにしました。従来は、上記のようなコード修正をしても元ファイルのタイムスタンプが変わらないため、古い壊れた出力が再利用されていました。今回からは更新するとこれらのアセットが自動的に再生成され、ファイル名も変わるので、上流やサーバーのキャッシュが古い内容を配信し続けることもなくなります。既存の最適化ファイルは、更新後に次にアクセスがあった時点で置き換わります。
1.10.58
- 修正: 削除した画像が表示され続けることがある問題を解消しました。WebP の書き換えルールが、元ファイルがまだあるか確認せずに、ディスク上に
.webpがあれば配信していたため、削除された元画像の.webpが孤立して残ると、正しく404を返さずに200で古い画像が配信され続けていました。元ファイルが存在するときだけ書き換えるようにしました (アドオン Prime Cache Pro の AVIF ルールにも同じ修正を適用しています)。 - 修正: メディアライブラリで画像を削除すると、生成された
.webp/.avifファイル (元画像とすべてのサイズ) も削除するようにしました。従来は WordPress が把握している元ファイルしか削除されず、変換ファイルが孤立して残っていました。変換は既存の変換ファイルがあるとスキップするため、同じ名前で再アップロードすると古い画像が表示され続けることがありました。 - 追加: この修正より前の削除で取り残された変換ファイルを掃除する機能を追加しました。メディア設定に件数と、ワンクリックの「孤立ファイルを削除」(確認あり) を表示します。
wp prime-cache image-orphansで一覧を表示でき、--deleteを付けると削除します。
1.10.57
- 修正: プラグインやテーマを更新してもキャッシュがクリアされず、キャッシュ済みのページや、更新されたファイルの内容ハッシュを持つ結合・圧縮済みの CSS/JS が、手動でキャッシュを削除するまで古いまま配信されることがありました。Prime Cache は WordPress 本体の更新でしかパージしておらず、通常のプラグイン更新はプラグインが有効なまま差し替わるため、ほかのどのイベントでも捕捉できませんでした。プラグインやテーマの更新後にもキャッシュ全体をパージするようにしました (本体の更新では以前から動作しており、翻訳のみの更新はこれまでどおり対象外です)。
1.10.56
- 修正: 最適化アセットが0バイトのファイルとして書き出され、中身は空なのに「成功」扱い (200) のスタイルシートやスクリプトとして配信されてしまい、ページのスタイルが崩れたまま静かに放置されることがありました。404よりも気付きにくい問題です。空の最適化アセットの書き込みを拒否し、代わりに最適化前の元ファイルへフォールバックするようにしました。一部のサイトで Cocoon のスマートフォン用サイドバーが真っ白になる症状の原因と考えられます。
- 追加: 毎時のクリーンアップで、生成された最適化アセット (結合・圧縮した CSS/JS と未使用 CSS の削除) のうち古くなったものも削除し、残った0バイトのファイルを取り除くようにしました。従来これらはクリーンアップが届かない隣のディレクトリにあり、際限なく溜まる可能性がありました。クリティカル CSS とセルフホストのフォントは対象外です。まだ参照されているアセットが削除された場合は、1.10.55で追加したアセット欠落時のフォールバックが必要に応じて再生成します。
1.10.55
- 修正: 「圧縮済み CSS/JS をクリア」と「クリティカル CSS をクリア」で、ページキャッシュもクリアするようにしました。キャッシュされたページの HTML には、生成されたそれらのアセットのハッシュ化されたファイル名が埋め込まれています。HTML を残したままファイルを削除すると、キャッシュされたすべてのページが、もう存在しないアセットを参照したままになっていました。キャッシュヒットとして配信されると、テーマの404 HTML ページが返され、ブラウザーはこれをスタイルシートとして拒否するため、再生成されるまでページはスタイルが適用されない状態で表示されていました。現在は両方のボタンがページキャッシュをパージするため、有効なアセット URL で HTML が再構築されます。
- 追加: アセット欠落時のフォールバック。最適化アセット (圧縮・結合された CSS/JS、または未使用 CSS の削除) が要求されたのにそのファイルが失われている場合 —— キャッシュの部分的なクリア、手動での削除、ディスクの不調など —— Prime Cache が元のソース (小さなマニフェストに記録されています) からその場で再生成し、正しい
text/css/application/javascriptタイプと200で配信して、ディスクへ自己修復するようになりました。再生成できない場合は、404の HTML ページではなく、正しいタイプの空ファイルを配信するため、1つのアセットが失われてもページのスタイルが崩れることはなくなりました。
1.10.54
- 修正: JavaScript の遅延読み込みまたは実行の遅延を有効にしていると、WordPress の国際化 (i18n) 系スクリプトが “wp is not defined” や “Cannot read properties of undefined (reading ‘hooks’)” で失敗し、翻訳、Contact Form 7、管理バーなど wp.* を使う機能が壊れることがありました。インラインの翻訳ブロックのために同期実行のまま残すスクリプト (例:
-js-afterを持つ wp-i18n) が、遅延された依存先 (wp-hooks) より先に実行され、wp-hooks が定義する前にwindow.wp.hooksを参照してwp名前空間全体を壊していました。Prime Cache は、同期実行のまま残すスクリプトの依存先も同期実行に保ち、依存関係の順序を守るようにしました。対象はページに実際に出力されるスクリプトに限っているため、モバイルでの jQuery の defer など、無関係な最適化には影響しません。
1.10.53
- 修正: Cocoon テーマで、1.10.52の jQuery 修正の後もモバイル用スライドインサイドバーが空で開くことがある問題を解消しました。サイドバーボタンをタップすると Cocoon はサイドバーをドロワーに移動して id を変更しますが、Cocoon 自身のスクリプトが表示用クラスを追加する際に 変更前 の id で要素を選び直しているため、クラスが適用されず、移動先のサイドバーがテーマのモバイル用 display:none のまま残っていました。Prime Cache は、移動先のサイドバーをドロワー内で表示状態に保つ Cocoon 専用の小さな CSS ルールを出力するようにしました (ドロワー内に限定しているため、ページ内の通常のサイドバーには影響しません)。1.10.52と合わせて、Cocoon のモバイルサイドバーが空になる問題は完全に解消します。
1.10.52
- 修正: JavaScript 実行の遅延を有効にしているとき、テーマまたはプラグインが
jQuery.noConflict()($エイリアスを解放するためによく呼ばれる呼び出し) を呼ぶサイトで、jQuery とそれに依存するページ上のすべてのスクリプトが undefined になることがある問題を解消しました。Delay JS ローダーがwindow.jQueryとwindow.$を単一の内部変数で保持していたため、noConflict()がwindow.$を jQuery 読み込み前の値に戻すとwindow.jQueryまで消えていました。その結果、ページ全体が “jQuery is not a function” / “$ is not a function” で失敗し、jQuery に依存するものがすべて壊れていました。window.$がwindow.jQueryとは独立した保持値を持つようにしました。これが Cocoon のモバイル用スライドインサイドバーが空で開く現象 (1.10.51で報告) の実際の原因で、同じ形で壊れていた他の jQuery 依存機能もすべて回復します。 - 撤回: 1.10.51で導入した Cocoon 個別の変更は原因を取り違えていたため削除しました。上記の jQuery ローダー修正が正しい修正です。
1.10.51
- JavaScript 実行の遅延を有効にしていると Cocoon のモバイル用スライドインサイドバーが空 (真っ白) で開く問題に対し、Cocoon 本体スクリプトを読み込み時に実行させる Cocoon 個別の対応を試みました。しかし原因を取り違えており解消しませんでした。1.10.52で撤回し、1.10.52が本当の原因を修正しています (上記参照)。
1.10.50
- 修正: 圧縮した CSS/JS のキャッシュを、リクエスト URL ではなく元ファイル単位で管理するようにしました。一部のテーマ (特に Cocoon) は、ページ表示ごとに変わるバージョンクエリー文字列をすべてのスタイルシートに付与します。キャッシュのファイル名を URL 全体から生成していたため、内容が完全に同一の CSS でもアクセスごとに別ファイルとして書き出され、
wp-content/cache/prime-cache-foフォルダーが際限なく肥大化していました。あるサイトでは25万を超えるファイルと数 GB の重複した CSS に達していました。キャッシュキーは、解決済みのファイルパスと更新時刻、サイズを使うようにし、同一の出力が単一のファイルにまとまるようにしました。更新後は、すでに蓄積した重複を取り除くために圧縮済み CSS/JS を一度クリアしてください。
1.10.49
- 表示名を「Prime Cache – ページキャッシュと Core Web Vitals (設定不要)」に短縮しました。従来の表示名は機能を6つ並べて81文字あり、プラグインディレクトリが許容する80文字を超えて、ガイドラインが「readme スパム」と呼ぶ状態でした。並べていた機能は説明文に移しました。説明文も検索の対象です。動作の変更はありません。
1.10.48
- 修正: 「小さな CSS ファイルのインライン化」で、各スタイルシートのメディア条件を保持するようにしました。以前は、メディアクエリーで範囲を限定した小さなスタイルシート (例:
<link media="(max-width:800px)">で読み込まれるテーマのモバイル専用 CSS) をインライン化するとメディアクエリーが失われ、そのルールがすべての画面サイズに適用されてデスクトップのレイアウトが崩れることがありました。インライン化した CSS は、対応する @media ブロックで囲むようにしました。
1.10.47
- 修正: オブジェクトキャッシュの状態表示で、バックエンドがインストールされているものの実際には動作していない場合 (PHP 拡張は存在するが実行時に無効化されており、WordPress が内部キャッシュに黙ってフォールバックしている場合など) にも「有効」と表示されることがありました。オブジェクトキャッシュが実際に初期化されたことを確認してから「有効」と表示し、そうでない場合は「インストール済みだが動作していません」と表示するようにしました (Prime Cache Pro 1.9.6と組み合わせて動作します)。
1.10.46
- 変更: セットアップの通知にある「ドロップインモードを有効にする方法」の手順ガイドを、通知をコンパクトに保つため初期状態で折りたたむようにしました。概要をクリックすると展開されます (展開して表示していた1.10.44の変更を調整したものです)。
- 変更: 自動プリセットの環境の概要から「プロトコル」の行を削除しました。リバースプロキシや CDN の背後では、サーバー側から見える HTTP プロトコルは当てにならず (訪問者が HTTP/2を使っていても PHP は HTTP/1.1と報告することがあります)、表示すると誤解を招くためです。このプロトコルに依存する設定はありません。
1.10.45
- 改善: 実環境でのチューニング結果に基づき、Core Web Vitals のスコア向上に向けて最適化プリセット (「アグレッシブ」と「自動」) を全面的に見直しました。LCP を守るために最初の数枚の画像を遅延させず、レイアウトシフト (CLS) を減らすために不足している画像の幅と高さを追加し、DOM ベースの HTML 最適化を有効にし、Delay JS のフォールバック時間を長くしました。Pro アドオンを使用している場合は、ファイルの結合 (HTTP/2では効果がありません) の代わりに「未使用 CSS の削除」とクリティカル CSS を優先し、YouTube の埋め込みをクリックで読み込むサムネイルに置き換えます。新しい調整を反映するには、「ツール」タブからプリセットを再適用してください。
1.10.44
- 改善: 「最大 Delay」の警告に「了解」ボタンを追加しました。最大 Delay を有効にしたまま保存するたびに警告が再表示されるのではなく、一度確認するまでプラグインの画面に表示され、その後は表示されなくなります。最大 Delay をいったんオフにして再びオンにすると、警告がもう一度表示されます。
- 改善: 任意の「ドロップインモードの有効化」(WP_CACHE) の手順を、初心者にもわかりやすくしました。手順ガイドを展開した状態で表示し、そのままコピーできるコード行と、wp-config.php の変更前後の例を示すので、誰でも安心して1行の変更を行えます。
1.10.43
- 追加: 1回だけの控えめなレビュー依頼。Prime Cache を1週間使うと、プラグイン独自の画面に1回だけ、WordPress.org へのレビューを案内するバナーを表示します (閉じることができます)。管理画面のほかの場所には表示せず、レビューを投稿するかバナーを閉じると、二度と表示しません。
1.10.42
- 追加: 任意のアドオンが「ドロップインモードを有効にする」(WP_CACHE) の通知をワンクリック操作に置き換えられるよう、拡張ポイントを追加しました。無料版プラグイン自体が wp-config.php を編集することは引き続きありません。手動の手順を表示するだけで、アドオンが代わりに行う場合はきれいに役割を譲ります。アドオンを導入していないサイトには変更はありません。
1.10.41
- 修正: JavaScript 実行の遅延が有効な場合、どのタブで設定を保存しても、無効にしたはずの「モバイルキャッシュ」と「モバイル別キャッシュ」が再び有効になっていました。Delay JS はモバイルキャッシュを強制的に有効にしなくなり (動的に生成されるモバイルページにも適用されます)、「モバイル別キャッシュ」を必須とするのはモバイルキャッシュ自体が有効な場合だけになりました (モバイル向けに変換した HTML をデスクトップのキャッシュに入れないためです)。プリセットの適用時に起きていた同様の過剰な連動も修正しました。
1.10.40
- 追加: 5分の動画チュートリアルをプラグインページに埋め込み、ドキュメントからリンクしました。
- 改善: 管理画面の「Pro 機能」ページで「AI スピード診断・相談 (BYOK)」を紹介するようにしました。環境を計測し、わかりやすい所見を得て、検証済みの対策をワンクリックで適用でき、追加の質問はチャットで行えます。
1.10.39
- 改善: ダッシュボード統計で、プリロードクローラーが生成したキャッシュファイルを MISS に含めず「プリロード」として別に集計するようにしました。ウォーム済みページへのプリロード取得はまったくカウントされません。これによりヒット率が実訪問者のトラフィックのみを反映するようになりました。既存のカウンターには影響しません。最初から計測し直すには「リセット」をご利用ください。
1.10.38
- 追加: 最大 Delay モード — Delay JS の対象を jQuery 本体とインラインスクリプトまで拡大します。ユーザー操作後もスクリプトはドキュメント順に実行され、DOMContentLoaded / load イベントが再送出されるため、依存関係はそのまま動作します。PageSpeed のラボ計測中はほぼすべての JavaScript が実行されず、TBT がほぼゼロになります。同意管理スクリプト、JSON-LD、除外リストは遅延されません。
- 追加: 「デスクトップにも Delay JS を適用」オプション — これまで Delay JS はモバイル専用でした。オプトインでデスクトップ応答にも拡大し、デスクトップの PageSpeed スコアも改善できます。
- 追加: Nginx 直接配信スニペット — キャッシュ設定に表示されるコピー & ペースト用の server ブロック設定です。PHP を起動せずに Nginx がキャッシュ済みページをディスクから直接配信し、.htaccess 高速パスの条件を1対1で再現します。事前圧縮ファイル用の gzip_static にも対応しています。
- 改善: 小さい CSS のインライン化のしきい値を Pro アドオンの結合スタイルシートにも適用しました。結合結果がしきい値以内ならインライン化され、非同期 CSS の再スタイル揺れなしでレンダーブロック CSS リクエストをゼロにできます。
1.10.37
- 修正: ログイン中のユーザーには、ログインユーザー向けキャッシュが有効な場合を除き、HTML 最適化パイプライン (圧縮、defer / delay JS、アドオンの CSS 最適化) を適用しないようにしました。ログインユーザーのページはページキャッシュを通らないため、最適化はリクエストごとのオーバーヘッドになるだけでした。さらに、未使用 CSS の削除の出力など URL 単位のキャッシュ済み成果物は非ログイン表示から生成されるため、管理バーや Cocoon のフロント側管理メニューなど、ログインユーザー専用の要素がスタイルなしや非表示になることがありました。
1.10.36
- 変更: Lazy Load モジュールが最初の画像に付与する fetchpriority=”high” を、prime_cache_lazyload_first_image_priority フィルターで無効化できるようにしました。Pro アドオンの LCP 最適化はこのフィルターを利用し、LCP 候補と判定した画像だけに high を付与します (high の画像が2つあると効果が薄まるため)。
1.10.35
- 修正 (Cocoon テーマ): ブラウザーのバック / フォワードキャッシュでページに戻った際に、モバイルのドロワーメニュー (ハンバーガー、検索、シェア、サイドバー) が開いたままになる問題を修正しました。Cocoon のチェックボックス式メニューは pageshow イベントを処理しておらず、本プラグインの Delay JS と非同期 CSS によって、従来ページを bfcache 対象外にしていた進行中のリクエストがなくなったことで顕在化していました。互換シムが bfcache 復元時にドロワーを閉じます。
1.10.34
- 修正: Lazy Load の「スキップする先頭画像数」設定が、WordPress コアやテーマがスキップ対象の画像にすでに付与している loading=”lazy” 属性も削除するようにしました。従来は新たに lazy 属性を付けないだけだったため、ファーストビュー (LCP) の画像が遅延読み込みのままになり、描画が数秒遅れることがありました。
- 改善: 設定の保存時にページキャッシュを自動削除するようにしました。キャッシュ済みページは生成時点の設定で描画されるため、デフォルトの7日間の有効期間では、Lazy Load、圧縮、Defer / Delay JavaScript、画像配信など HTML に影響する設定を変更しても、古い HTML が長期間配信され続けることがありました。設定は次のページ表示から反映されます。
1.10.33
- 修正: Google Site Kit を、JavaScript の結合、実行の遅延、遅延読み込みの対象から常に除外するようにしました。Site Kit は複数のチャンクで構成される webpack アプリとして提供されており、ランタイム、ベンダー、モジュールの各バンドルが1つのレジストリを共有し、元の順序で読み込まれる必要があります。いずれかのチャンクを最適化するとレジストリの同期が崩れ、”googlesitekit is not defined” が発生していました (Site Kit のダッシュボードやスニペットが読み込めなくなります)。jQuery や Divi と同様に扱うため、手動で除外する必要はありません。
1.10.32
- 修正: JavaScript の遅延読み込みと実行の遅延の除外リストが大文字と小文字を区別して照合していたため、”jQuery” のような自然な指定が実際のスクリプト URL “jquery.min.js” に一致せず、jQuery が遅延読み込みされたままになり、インラインスクリプトが “jQuery is not a function” で壊れていました。除外リストは大文字と小文字を区別せずに照合するようにしました。
- 修正: jQuery と jquery-migrate を「JavaScript の遅延読み込み」から常に除外するようにしました (JavaScript 実行の遅延からはすでに除外されていました)。これにより、インラインで jQuery を呼び出すテーマやプラグインが遅延読み込みで壊れることはなくなりました。
1.10.31
- 修正: 「デフォルトにリセット」を実行すると、すべてのキャッシュもクリアするようにしました。以前はリセットで設定を戻すだけだったため、古い最適化設定 (「未使用 CSS の削除」、Delay JS など) で作られたキャッシュ済みページが、それを生んだ設定がなくなったあとも配信され続け、マークアップが崩れていることもありました。
1.10.30
- 修正: Gzip 圧縮をオフにした後、残っていた .gz のキャッシュが、再生成された HTML より古い内容をクリーンアップまで配信し続けることがある問題を修正しました。ドロップインは、現在の設定で Gzip が有効で、かつ .gz ファイルが対応する HTML と同じかそれより新しい場合にのみ、.gz を配信します。
- 修正: キャッシュの統計と毎時のクリーンアップで、スキャンの途中でキャッシュのサブディレクトリが読み取れなくなった場合に致命的なエラーが発生するおそれを解消しました。スキャンは例外で保護されます (統計は取得できた分を表示し、クリーンアップは次回の実行で再試行します)。
- 修正: アンインストール時に prime_cache_config_schema オプションも削除するようにしました。
- 明確化: 「404ページのキャッシュ」設定の説明に、ランダムな URL へのスキャンを受けるサイトではディスク使用量とのトレードオフがある旨を追記しました。
- 改善: 標準モードの通知に、wp-config.php を編集するための手順 (ファイルの場所、バックアップ、変更または追加する正確な行、確認方法) を、折りたたみ形式で表示するようにしました。
- 掲載情報: WordPress.org プラグインディレクトリ向けに、説明、インストール手順、スクリーンショットを刷新しました。
1.10.29
- 設定不要のキャッシュ: wp-config.php を変更しなくても、有効化した直後からページキャッシュが動作するようになりました。任意のドロップイン定数
WP_CACHEがない場合は、プラグイン自身が新しい標準モードでキャッシュ済みのページを配信します (WordPress コアは読み込まれますが、テーマ、クエリー、レンダリングはスキップされます)。define( 'WP_CACHE', true );を手動で追加すると、配信がより高速なドロップインモードに切り替わります。 - wp-config.php には一切書き込みません: wp-config.php を編集していたコードは、1.10.28で追加したワンクリックの同意ボタンを含め、すべて削除しました。設定画面では、手動で追加する任意の行を表示します。無効化時とアンインストール時にも、このファイルには触れません。これは WordPress.org のレビューでの指摘に対応したものです。
- オブジェクトキャッシュのドロップインの設置を、任意のアドオンに移しました。無料版プラグインは wp-content/object-cache.php を生成も書き込みもしません。削除するのは、自身が署名したドロップインのみです。バックエンド (APCu / Redis / Memcached) の導入は、アドオンに委ねます。
1.10.28
- プライバシーと同意: Prime Cache が wp-config.php を自動的に編集することはなくなりました。ページキャッシュを有効化するには、標準のドロップイン定数
define( 'WP_CACHE', true );が必要ですが、プラグインはまずサイト運営者の明示的な許可を求めるようになりました。有効化後、管理画面の通知からワンクリックでこの行を追加できます (自分で追加できるよう、記述するコードも表示します)。自動修復の処理も、その承認が記録された後にのみこの行を書き込みます。無効化時に削除するのは、引き続き Prime Cache 自身が付けた行のみです。これは WordPress.org のレビューでの指摘に対応したものです。
1.10.27
- 強化: advanced-cache.php を、文字列から実行可能な PHP を組み立てるのではなく、同梱のドロップインのテンプレート (
dropins/advanced-cache.tpl.php) をコピーし、このインストールで解決したパスを差し込んで生成するようにしました。コピーしたファイルは、アップグレード時に一度だけ書き換えられます。WordPress はプラグインの場所を示す定数が定義される前にドロップインを読み込むため、ローダーのパスは引き続きコピー時に埋め込まれます。 - 強化: 画像最適化の「パスを指定してファイルを変換する」処理のガードを、すべてが ABSPATH 配下にあると仮定せず、それぞれの API (WP_CONTENT_DIR、プラグインディレクトリ、get_theme_root()、wp_get_upload_dir()) で解決した WordPress の管理下の場所と、設定された任意の追加ディレクトリに限定するようにしました。これにより、テーマ、プラグイン、アップロードを WordPress のルート外に移設した環境でも、このチェックが正しく機能します。
1.10.26
- 強化: ドロップインの JSON 設定の保存先を、
wp-content/prime-cache-config/ではなくwp-content/cache/prime-cache-config/(ページキャッシュやファイル最適化のディレクトリと並ぶ、想定どおりのキャッシュの場所) に変更しました。キャッシュのパージでドロップインの設定が消えないよう、ページキャッシュのディレクトリとは分けています。アップグレード時には、新しいパスで設定を再生成し、advanced-cache.php をそこを参照するよう書き換えたうえで、古いディレクトリを完全に掃除します。このインストールがそこに書き込んだ過去のすべての形式 (インストール単位のキー付き、AUTH_SALT のキー付き、素のもの、最初期のホスト名付きのファイル) を削除し、同居する他のインストールの設定が残っていなければディレクトリ自体も削除します。設定は引き続き Settings API で正式に保存されます。
1.10.25
- 強化: WordPress 読み込み前のページキャッシュのドロップインが、生成された PHP ファイルではなく、実行不可能な JSON のデータファイル (
site-config-*.json) から設定を読み込むようにしました。設定は引き続き Settings API で正式に保存されます。JSON ファイルは、WordPress (と options API) が使えるようになる前にドロップインが必要とする一部の設定を写しているだけです。既存の PHP 設定ファイルはアップグレード時に再生成され、削除されます。多層防御として、設定ディレクトリにはすべてを拒否する.htaccessとindex.htmlを追加します (データに秘密情報は含まれません)。 - 強化: URL からパス、パスから URL への変換を、すべてが ABSPATH の直下にあると仮定せず、wp_get_upload_dir()、content_url()、plugins_url()、home_url() を基にした、移設に対応した共通のマッパー経由で行うようにしました。これにより、wp-content や uploads を移設した環境でも、WebP 変換、CSS のインライン化と圧縮、メディア最適化が引き続き動作します。また、外部ホストとパストラバーサルは拒否します。
- 強化: advanced-cache.php を生成する処理で、代替となるドロップインのパスを、ハードコードした wp-content/plugins のパスではなく plugin_dir_path() (プラグイン自身の場所) から求めるようにしました。
- ドキュメント: 「Local jQuery」のヘルプテキストとコードのコメントを、特定の CDN ホスト名を挙げない表現に書き換えました。無料版プラグインがリモートホストからファイルを読み込むことはありません。Local jQuery 機能は、既存のハンドルを WordPress コアに向け直すだけです。
1.10.24
- 強化: 画像変換の AJAX アクション3つ (
pc_img_scan/pc_img_batch/pc_img_statsをprime_cache_img_*に変更)、一括変換の nonce (pc_img_nonce->prime_cache_img_nonce)、画像サイズの transient キー (pc_imgdim_->prime_cache_imgdim_) を、プラグインの完全なprime_cache_名前空間に統一しました。アンインストール時のクリーンアップでは、新旧どちらの transient キーも削除します。 - 強化: ページキャッシュのドロップイン内のすべての変数名を、短い
$_pc_というプレフィックスから、一意な$prime_cache_pc_に改名しました。これにより、キャッシュミス時にドロップインが WordPress へ制御を戻した後、汎用的な名前でグローバルスコープに変数が残ることがなくなります。動作に変更はありません。
1.10.23
- 強化: 管理画面の設定にあるインラインのスクリプトブロック5つを、フッターに登録したスタブハンドル (
prime-cache-admin-ui) に対して wp_add_inline_script() で追加するようにしました。これにより、Plugin Check がスクリプトの直接出力として指摘しなくなります。 - 強化: ページキャッシュのドロップインが、
$_SERVER['HTTP_HOST']、HTTP_REFERER、HTTP_USER_AGENT、HTTP_IF_MODIFIED_SINCEを使用する前に stripslashes を行い、必要に応じて長さを制限するようにしました。また、SERVER_PROTOCOLは304ステータス行に反映する前に許可リストで検証します。 - 強化: オブジェクトキャッシュのドロップインの署名用定数を、
PRIME_OBJECT_CACHEからPRIME_CACHE_OBJECT_CACHE_DROPINに改名し、プラグインのPRIME_CACHE_というプレフィックスの規則を全体で統一しました。 - ドキュメント: readme.txt に「外部サービス」の節を追加し、無料版プラグインが外部への通信を行わないことを明記しました。第三者のホスト名 (Google Analytics、GTM、Facebook ピクセル、Intercom、Tawk) は Delay JS の検出パターンとしてのみ登場し、
cdnjs.cloudflare.comはコードのコメントとヘルプテキストにのみ登場します。 - ドキュメント: 「ページキャッシュのドロップインが出力バッファーを開いたままにする理由」の節を追加し、WP Super Cache / W3 Total Cache / WP Rocket と共通する、意図的な ob_start() のライフサイクルについて説明しました。
- ドキュメント: includes/class-file-optimizer.php にある HTML パイプラインの
<style>/<script>の書き換え処理2か所に、phpcs:ignore の理由を説明するコメントを付けました。enqueue ではなく既存のタグをその場で置き換える必要がある理由を記載しています。
1.10.22
- 修正: システム情報とテーマ判定のブロックにある wp_is_block_theme() の呼び出しを、function_exists() のガードを付けた call_user_func() 経由に変更しました。これにより、phpcs:ignore を考慮しない Plugin Check の静的解析が wp_function_not_compatible_with_requires_wp エラーを報告しなくなります。WP 5.8と5.9以降のいずれでも動作は変わりません。
- 修正: load_plugin_textdomain() の呼び出しに付けた phpcs:ignore のルールコードを修正し、Plugin Check が非推奨関数の警告を報告しないようにしました。呼び出し自体は意図的に残しています (1.10.21の変更履歴を参照)。
1.10.21
- 修正: 同梱の翻訳の読み込みを元に戻しました。1.10.20で load_plugin_textdomain() を削除したことにより、WordPress.org の言語パックに依存するようになっていましたが、言語パックは translate.wordpress.org が配布するまで利用できず、手動でアップロードしたインストールでは利用できません。そうした環境では管理画面がすべて英語で表示されていました。呼び出しを復活させ、init フックで実行するようにし、Domain Path ヘッダーを追加して、同梱の languages/*.mo ファイルが確実に読み込まれるようにしました。
1.10.20
- 変更: 明示的な load_plugin_textdomain() の呼び出しを削除しました。WordPress 4.6以降では、WordPress.org でホストされているプラグインの翻訳が Text Domain ヘッダーによって自動的に読み込まれるため、明示的な読み込みは不要であり、現在は Plugin Check で非推奨と指摘されます。
- 変更: Plugin Check がこのプラグインに対して報告する、静的解析による2件の誤検知について、理由をコードとともに残せるよう記載しました。(1) 公式の advanced-cache.php と object-cache.php のドロップインを設置する file_put_contents() / rename() の組は、プラグインディレクトリではなく WP_CONTENT_DIR (プラグインフォルダーの親にあたる階層) 配下に書き込みます。(2) wp_is_block_theme() の呼び出しは、同じ式の中で function_exists() によってガードされているため、サポート対象である WP 5.8でも安全に短絡評価されます。動作に変更はありません。
以前のバージョン
- 1.10.19以前のバージョンの変更履歴については、プラグインのページをご覧ください: https://raplsworks.com/plugins/prime-cache/
