WordPressのキャッシュ作成プラグイン「WP Super Cache」から「ZenCache」へ変更した際、うまくキャッシュファイルが作成されない場合はこうしよう

WordPressで作ったWebサイトの「ページの表示速度の高速化」を図るため、キャッシュ作成プラグインを利用している方もいらっしゃると思います。

Webサイトの作り方によって、キャッシュ作成ルールを考える

私は、管理しているいくつかWebサイトではキャッシュ作成プラグイン「WP Super Cache」を利用していたのですが・・・

WordPressに限らず、ユーザーエージェントで条件分岐して、表示する内容を出し分けているようなWebサイトの作り方をしていると、キャッシュファイルの作成ルールも見直さないといけない場合もあります。

一例ですが、「WP Super Cache」へフックを追加して「スマートフォンやタブレットなど、モバイルからのアクセスの場合は、モバイル専用のキャッシュファイルを別に作成する」みたいな処理がいるな~と考えました。

他の方法も検討することにしました

「WP Super Cache」に処理を加えるのもいいけど、「ZenCache(CometCacheにプラグイン名が変更されました)」を使うと「ユーザーエージェントによってキャッシュファイルを別に作成する」ことができることがわかりました。(Pro版:有償だと可能)

さっそく検証してみよう。

検証用のサイトで試しました。が・・・

まずは「WP Super Cache」を停止。次に「ZenCache」をインストール&有効化を行い、必要な設定を行いましたが「キャッシュファイルが作成されない」状態になっていました。

キャッシュファイルが作成されているかどうかの確認は、主に2つの方法があります。

1.ソースを見よう

使用しているブラウザのソースを開いて最後らへんを見ます。すると「ZenCache」関連の情報が追加されています。

キャッシュファイルが作成されていれば、上の画像のようにキャッシュファイルまでのパスなどメッセージが表示され、キャッシュファイルが作成されない場合は、下のようなメッセージが表示されます。(他にもメッセージの種類はあります)

<!-- ZenCache is NOT caching this page, because `[current IP address]` === `$_SERVER['SERVER_ADDR']`; i.e. a self-serve request. DEVELOPER TIP: if you are testing ...以下省略

このメッセージは「ZenCache」の設定画面で表示・非表示が切り替えられ、デフォルトでは表示されている状態です。

ですが、検証用サイトではメッセージを表示する設定をしていましたが、何も表示されませんでした。

2.サーバーの中にキャッシュファイルがあるかどうかを見よう

もう一つの確認方法は、SFTPやSCPなどでサーバーに接続し、キャッシュファイルの保存場所を確認します。

キャッシュファイルの保存場所は、特に設定を変更していなければ「WordPressをインストールしたフォルダ/wp-content/cache/zencache」フォルダ配下に作成されます。

下の画像は、「ZenCache」設定画面にある「Directory/Expiration Time」の項目です。ここでキャッシュファイルの保存場所までのパスが確認できます。

キャッシュファイルの保存場所に「.htaccess」「zc-advanced-cache」ファイルしか見つからなかった場合は、キャッシュファイルが作成されていない可能性があります。(私の場合はこの状態でした)

「ZenCache」がうまく動かない理由を探しました

「ZenCache」の公式サイトに「プラグインを有効にしたけど動かない場合」について、いくつか書かれています。その中の1つには、「他のキャッシュ作成プラグインを使用していた時」ついて書かれていました。(英文です)

内容を意訳すると、「WP Super Cache」や「W3TC」などキャッシュ作成プラグインは、プラグインを有効化した際に「.htaccess」ファイルに設定が書き込まれ、プラグインを停止、削除を行った後でも書き込まれた設定は残ったままとなっていることがあるそうです。

その残ったままの設定が「ZenCache」に何らかの影響を与え、うまく動作しないことを理解しました。

キャッシュファイルが作成されない場合は、この手順で作業しよう

というわけで、以下の手順で作業をすると「キャッシュファイルが作成されない」状態は解消されました。作業はすべてWordPressの管理画面上から行います。

  1. キャッシュ作成プラグイン「WP Super Cache」や「W3TC」の利用を「停止」して、プラグインを「削除」する
  2. 「ZenCache」プラグインの利用を「停止」して、プラグインを「削除」する
  3. 再度「ZenCache」プラグインをインストールする(WordPressの管理画面から「プラグイン」→「新規追加」、入力フォームに「ZenCache」と入力し、検索後インストール&有効化)

以上の手順でやっていることをまとめると、今まで使っていたキャッシュ作成プラグインを削除して、「ZenCache」を再インストールしよう、ということですね。

ちょっとしたことですけど、もし「ZenCacheでキャッシュファイルが作成されない!」という場合は、「他のキャッシュ作成プラグインの使用はあるのか、ないのか」をまずは確認して、上記の手順で対応すると解決するかもしれません。

以下のページではZenCacheを使ってキャッシュファイルを作成してみましたので、あわせてご参考ください。

著者:bouya Imamura