1 Check what OPcache is actually doing right now
Before you touch any settings, you need to see the current state. The free opcache.php script from Rasmus Lerdorf drops into your web root via FTP and shows you hit rate, memory usage, and whether OPcache is even on. I dropped it in a subdirectory, loaded it in a browser, and immediately saw my hit rate was 43 percent — it should be above 90. That one number told me everything was misconfigured, not broken.
2 Enable and configure OPcache in php.ini
On most shared hosts and VPS setups, OPcache is installed but not enabled, or it is enabled with defaults so conservative they barely help. You need four lines in your php.ini: opcache.enable=1, opcache.memory_consumption=128, opcache.max_accelerated_files=10000, and opcache.revalidate_freq=60. The revalidate_freq setting tells OPcache how many seconds to wait before checking if a file changed — set it to 0 during development, 60 in production. After saving, reload PHP-FPM or restart Apache and check your status script again.
3 Install a WordPress cache plugin that actually respects OPcache
OPcache handles PHP compilation; a page cache handles the HTML output. You need both. W3 Total Cache is the one plugin that has a dedicated OPcache tab and will show you hit stats inside WordPress without a separate script. Set the OPcache module to enabled, set page cache to disk enhanced, and turn off database cache — that one always causes stale data issues on WooCommerce sites. After this, your Time to First Byte should drop by half.
4 Add a Redis object cache to hold what OPcache cannot
OPcache stores compiled PHP. Redis stores database query results. Together they eliminate nearly all redundant work on every page load. If your host offers Redis, turn it on and install the Redis Object Cache plugin by Till Krüss — it is free, well-maintained, and has a status panel that mirrors what the OPcache script showed you. On a WooCommerce store with 200 products, this combination cut my server response time from 800ms to under 200ms. That is the difference between ranking on page one and page three.
5 Monitor OPcache after every WordPress update
Every time a plugin or theme updates its PHP files, OPcache may keep serving the old compiled version until its revalidate window expires. I missed this once and spent an hour debugging a plugin conflict that was not actually there — it was just stale bytecode. The fix is one line in your deployment script or a cron job: opcache_reset() via WP-CLI. Run 'wp eval opcache_reset();' after every update and you will never chase a ghost bug again. Set a monthly calendar reminder if you update manually.
6 Upgrade to a managed host that pre-tunes OPcache for you
If you have followed every step above and your hit rate is still below 85 percent, the problem is your host's PHP-FPM pool configuration — something you cannot change on shared hosting. Cloudways on DigitalOcean lets you set OPcache memory, file limits, and revalidate frequency from a slider panel with no SSH required. The $14 per month DigitalOcean 1GB droplet with Cloudways management handles a typical North Port small business site at full FPL-outage-recovery speed without breaking a sweat.
OPcache is not the problem — it is the solution you forgot to turn on.
isnotbadforyou.com/opcache-status · A North Port neighbor's honest take
This page may contain affiliate links. If you buy something through them, we earn a small commission at no extra cost to you. We only recommend things we'd use ourselves.