Skip to main content
Caching is AccelerateWP’s headline feature. When enabled, the first visitor to a page generates a static HTML copy; every visitor after that gets the static copy until the cache is invalidated. The result: WordPress only does its full PHP/MySQL render once, not on every hit. This page covers everything under the Cache group of toggles.

Full-page caching

Toggle: Cache enabled. When on, AccelerateWP caches every public-facing page response. WordPress’s own cache plugin hooks (e.g., wp_cache_*) are bypassed in favor of the file cache. Cached pages are invalidated automatically when:
  • A post or page is created, updated, or deleted.
  • A comment is approved (which would change the page).
  • A WordPress option that affects display is changed.
  • The cache lifetime expires (default: 24 hours).
Manual cache purge: from your WordPress admin, click Purge Cache in the top admin bar (the Must-Use plugin adds it). Or from cPanel, click Clear Cache on the AccelerateWP page.
After installing or updating a plugin that changes front-end output, purge the cache. AccelerateWP catches most cases automatically, but plugins that modify content via filters might not trigger the invalidation.

Mobile cache

Toggle: Separate cache for mobile devices. When on, AccelerateWP keeps two cached copies of every page: one for desktop, one for mobile. Useful when:
  • Your theme renders different markup based on wp_is_mobile() or similar.
  • A plugin adds mobile-only widgets.
  • You serve different ads or banners on mobile.
When off, both desktop and mobile visitors share the same cached response, which is fine for fully responsive sites that render identical HTML.

User cache

Toggle: Separate cache for logged-in users. When on, logged-in WordPress users see a per-user cached version (so their dashboard widget, cart count, or “Welcome, Alex” banner doesn’t leak across users). Anonymous visitors share one common cached response. When off, logged-in users skip the cache entirely and get a live render every time. Sites with a small number of admins usually leave this off; sites with many subscribers (membership sites, learning platforms) should turn it on.

Preload

The Preload section warms the cache so the first visitor to a page also gets a fast response.
ToggleWhat it does
Preload CacheAfter publishing or updating a post, AccelerateWP visits the page itself to warm the cache.
Preload LinksAdds Instant.page-style hover preloading. When a visitor hovers a link, the next page’s HTML is fetched in the background.
Prefetch DNS RequestsAdds <link rel="dns-prefetch"> tags for external domains (Google Fonts, YouTube, your CDN). Browser starts the DNS lookup early.
Preload FontsAdds <link rel="preload"> tags for above-the-fold fonts so they don’t block first paint.
Preload Cache is the most useful toggle. The others are micro-optimizations that help on bandwidth-constrained connections.

Advanced rules

The escape hatch when caching breaks something. All of these are textareas that take one URL/cookie/user-agent per line.

Never Cache URLs

URLs (or path patterns) that should always render live, never from cache. Common entries:
/cart
/checkout
/my-account/(.*)
/wp-admin/(.*)
/wp-login.php
WooCommerce ships with sensible defaults. Add custom URLs for any flow that depends on session state.

Never Cache Cookies

If a cookie is present in the request, skip the cache for that request.
wordpress_logged_in
wp-postpass
woocommerce_cart_hash
WordPress’s standard logged-in cookie is already in the default exclusion list. Add custom membership cookies, paywall cookies, or A/B-test cookies here.

Never Cache User Agents

Skip the cache for specific user agents. Common entries:
mobile
android
iPhone
Most sites should leave this empty. Use only when a specific bot or testing tool needs to bypass the cache.

Always Purge URLs

URLs that should be flushed whenever any post is updated. Useful for category archives or custom indexes that don’t auto-purge.
/blog/
/news/
/category/(.*)

Cache Query Strings

By default AccelerateWP strips query strings from cache keys (so /post?utm_source=foo and /post?utm_source=bar share one cache entry). List query string parameters here that should be part of the cache key.
filter
sort
page
Set these for sites where filters change content (faceted search, paged listings).

Common issues

User cache is off, and your theme is rendering cart content directly into the cached HTML. Either turn on Separate cache for logged-in users, or add /cart and /checkout to Never Cache URLs.
Either Preload Cache is off (in which case the cache eventually expires by TTL but isn’t refreshed immediately), or your post is being published via a non-standard path (REST API, an automation plugin) that doesn’t fire the WordPress hooks AccelerateWP listens to. Add the affected URLs to Always Purge URLs.
The WordPress logged-in cookie isn’t being set in a way AccelerateWP recognizes (custom auth plugin, headless setup). Add your custom auth cookie name to Never Cache Cookies.
Either AccelerateWP’s cache is serving the old HTML with the old asset URLs, or the browser cache is serving old assets. Hit Clear Cache in cPanel and hard-refresh (Cmd-Shift-R / Ctrl-F5). For a permanent fix, add a version query string to your asset URLs in the theme.

Need a hand?