-
Notifications
You must be signed in to change notification settings - Fork 0
Troubleshooting
Work down this list; each step rules out the one above.
-
wp gt-performance doctor— is the drop-inownedandWP_CACHEenabled? If the drop-in ismissing, install it. If it isconflict, another caching plugin ownsadvanced-cache.php; disable that plugin first. -
Are you logged in?
wordpress_logged_in_is a bypass cookie. Test in a private window. -
wp gt-performance cache explain --page-url=…— it will name the deciding rule. - Check for an unknown query parameter. Any parameter not on the ignored list bypasses by design. Add legitimate ones to ignored query parameters.
-
Check the response. A page that sets any cookie, returns anything but 200, or is not
text/htmlis never stored.X-GT-Cache: DYNAMICwith Debug on tells you which.
Expected. Logged-in requests bypass. If visitors see stale content, purge and check Age.
- Purge the origin:
wp gt-performance cache purge --page-url=… - Purge the edge:
wp gt-performance cloudflare purge --page-url=… - Re-check with a cache-busting query parameter, not the bare URL — the bare URL may be answered by an edge copy.
If a served copy survives repeated purges with a growing Age, the copy is held by a layer your token does not address — typically a host-managed Cloudflare. Purge from the host's dashboard, or wait for s-maxage to expire.
If the site was on 1.0.0 or earlier, its old generated drop-in loads a runtime file list that no longer matches the plugin. Fix it at the filesystem level — the site cannot run WP-CLI in this state, because WP-CLI boots WordPress and hits the same failure:
rm wp-content/advanced-cache.phpThe site returns immediately (no drop-in simply means no page cache). Then sign in to wp-admin once and GT Performance republishes a correct drop-in.
The standalone repair script does this and the rest of the migration: https://gist.github.com/wpgaurav/03d61d313df00b4127db92393ed74681
See Upgrading.
Fixed in 1.0.2 and 1.0.3. If you are on 1.0.1, update.
Stop and bypass the affected pages immediately under Exceptions, then run wp gt-performance safety. Report it — this is the failure class the whole design exists to prevent.
- Set rollout to 0 to stop serving optimized CSS while you investigate.
- Reproduce with
?gtperf_css_preview=<nonce>as an administrator — it renders through the pipeline without caching anything. - Add the missing selector to the safelist, or exclude the whole stylesheet.
- If the missing styles only appear after JavaScript runs, use Training Mode.
Delay is the highest-risk switch. Turn it off first, confirm recovery, then re-enable with the offending script excluded. Do not debug delay and defer at the same time.
wp gt-performance doctor reports the Redis drop-in state. Installation runs a connection test first and refuses rather than installing a drop-in that cannot connect. Check host, port, credentials and TLS under Integrations, then Test and install Redis.
If another plugin owns object-cache.php, GT Performance will not overwrite it.
They must use the GTPERF_ prefix. Sites installed before 1.0.1 used GTP_, which is no longer read. See Constants Reference.
wp-content/cache/gt-performance must be writable by the web server user. doctor reports this. On a read-only filesystem the plugin degrades to no caching rather than erroring.
GT Performance · GPL-2.0-or-later · Issues and pull requests welcome
Getting started
Caching
Optimization
Delivery
Operations
Reference