1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

WordPress で WP_CACHE を wp-config.php に書かずにページキャッシュを効かせる

1
Posted at

WordPress のページキャッシュを入れると、wp-config.php に define('WP_CACHE', true); を足すよう案内されることが多いですよね。あの1行、書かなくてもキャッシュは効きます。

手順はこれだけです。

  1. キャッシュプラグインを有効化する
  2. .htaccess 最適化を on にする
  3. 以上。wp-config.php は触らない

速度を最後まで詰めたいときだけ、あとから WP_CACHE を1行足します。

// 標準モード:これは書かなくてよい
// define('WP_CACHE', true);

// ドロップインモード:速度を詰めたいときだけ、任意で足す
define('WP_CACHE', true);

以下、なぜ書かずに効くのかを裏から説明します。

なぜ WP_CACHE を書かなくても効くのか

いちばん速い経路が、そもそも PHP を通らないからです。

生成済みのキャッシュ HTML は、Apache が .htaccess のルールで直接返します。ここでは PHP が起動しません。WordPress も動きません。PHP が動かないなら、WP_CACHE も要らない。

WP_CACHE は「advanced-cache.php というドロップインを読み込むか」を WordPress に伝えるスイッチです。ドロップインは PHP 側の話で、Apache が直接返す経路とは関係がありません。

流れにすると、初回だけ WordPress が普通にページを作ってキャッシュファイルに書き出し、次からは Apache が .htaccess 経由で直接返す。この経路に wp-config の書き換えは要りません。

じゃあ WP_CACHE は何のため?

Apache の直返しで拾えないリクエストのためです。

代表がクエリ文字列付きの URL。.htaccess のファストパスはクエリが空のときだけ効きます。?utm_source=... が付くと Apache は素通しできず、処理を PHP に渡します。

その PHP 経路を、WordPress 本体を読み込む前の早い段階で捕まえるのが advanced-cache.php で、これを読ませるために WP_CACHE が要ります。つまり WP_CACHE は、クエリ付き URL や Nginx など「Apache の直返しが使えない場面」を速くするための上乗せです。標準では要りません。

標準モード ドロップインモード
wp-config.php 触らない WP_CACHE を1行足す
最速の経路 Apache が .htaccess で直返し(PHP なし) 同じ
クエリ付き URL PHP で処理 ドロップインが早い段階で処理
向いている人 まず安全に入れたい 速度を詰めたい

効いているか確かめる

クエリを付けない URL(https://example.com/)と、付けた URL(https://example.com/?x=1)を両方開いて、応答速度を比べてみてください。前者は Apache の直返し、後者は PHP 経路になるので、体感で差が出ます。プラグイン側のダッシュボードで Hit / Miss を見られるなら、そこでも判別できます。

この挙動は Prime Cache というプラグインで、標準は wp-config 非改変・必要な人だけ WP_CACHE を足す、という形にして WordPress.org に公開しています。 https://wordpress.org/plugins/prime-cache/

自作でキャッシュを組む人も、まず「一番速い経路は PHP を通っていない」を確かめてから WP_CACHE が本当に要るか決めると、wp-config を触らずに済むことが多いはずです。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?