WordPress 高速化のいちばんコスパ良い一手が OPcache.本記事ではレンタルサーバーで効くチューニングを整理する.

この記事では,個人開発者・WordPress運用者・スモールチームの方を主な読み手として書いています.10分で読み終わって,明日から動ける具体的な行動が1つ見つかる状態を目指しています.

なぜ OPcache が効くのか

PHPは毎リクエストソースをパース→バイトコード変換→実行.OPcacheは2段目のバイトコードをメモリにキャッシュするため,2回目以降のリクエストでパース処理が丸ごと消える.

WordPressはコアだけで数百のPHPファイル.OPcacheなしだと毎回全部パース.有効化するだけで処理速度が2-3倍になることも珍しくない.

戦略1:OPcache の有効化を確認する

<?php phpinfo(); ?>を一時ファイルで設置.OPcache セクションが Up and RunningになっていればOK.

レンタルサーバーは多くがデフォルト有効.無効ならコンパネで切替.PHP 7.0以降ならほぼ標準搭載.

戦略2:メモリ割当を増やす

opcache.memory_consumption(デフォルト128MB)を256MB〜512MBへ.プラグインが多いWordPressほど効く.

不足するとキャッシュが頻繁に飛ぶopcache_get_status()でキャッシュヒット率を見て調整.90%以上が目安.

ムームードメインPR / ムームードメイン

戦略3:max_accelerated_files を最適化

WordPressは10,000ファイル以上のPHPを抱えていることがある.デフォルトの4000では足りない.opcache.max_accelerated_files=20000に.

find /path/to/wp -name "*.php" | wc -lでファイル数を確認.余裕を持って2倍にしておくのが安全.

戦略4:validate_timestamps の判断

opcache.validate_timestampsはファイル変更を検出する設定.1(有効)が安全だが,I/Oが多くなる.本番安定環境では0(無効)にして手動flush.

無効にするとデプロイ後にキャッシュをflushしないと反映されないopcache_reset()を実行するエンドポイントを用意しておく.

ロリポップ!レンタルサーバーPR / ロリポップ!レンタルサーバー

戦略5:他のキャッシュ層と組み合わせる

OPcache はバイトコード層のキャッシュ.これに加えて オブジェクトキャッシュ(Redis/Memcached)ページキャッシュ(WP Super Cache等)を組む.

3層揃うとTTFB が劇的に改善.動的ページでも100ms以下を狙える.まずはOPcache,余裕があれば次の層へ.

ムームードメインPR / ムームードメイン

補論:高速化は「ドメイン資産」の体験を守る

サイト速度は第一印象.3秒待たされたユーザーの過半数が離脱する.独自ドメインで積み上げたコンテンツも,遅いと体験を毀損する.

これからドメインを取るなら,取り扱い400種類以上のドメイン取得サービス─ムームードメイン─ で取得 → 高速サーバーに紐付けるのが定石.ドメインとサーバーは別々に選んで最適化できる.

ムームードメインPR / ムームードメイン

OPcache を含むPHP高速化の設定が標準で最適化されているのがロリポップ!LiteSpeedOPcacheが初期から効いており,個人開発者が触らず速い.

ロリポップ!レンタルサーバーPR / ロリポップ!レンタルサーバー

よくある質問

Q1:レンタルサーバーで OPcache を細かく設定できる?

多くは不可.デフォルト値で運用.VPSやマネージドWordPressなら自由に調整可.

Q2:OPcache が壊れる事故はある?

稀にある.不可解な不具合はまずopcache_reset()か php-fpm 再起動を試す.

Q3:プラグインで全部対応できない?

無理.OPcacheはPHPランタイム側の機能.プラグインは触れない.サーバー設定で行う.

まとめ ― OPcache は「30分の投資で2倍速」

大事なのは,「正解を完璧に押さえる」ことではなく「動き始める」ことです.今日,自分のサーバーのphpinfo()で OPcache の状態を確認しましょう.

ムームードメインPR / ムームードメイン
ロリポップ!レンタルサーバーPR / ロリポップ!レンタルサーバー

※ 本記事中の「ムームードメイン」「ロリポップ!」へのリンク/バナーはアフィリエイトプログラムによる広告を含みます.