Skip to content

Caching

Caching is built in and tuned on every plan — there’s no add-on to buy and no plugin to install and configure. Two layers do the work: a full-page cache in front of the FrankenPHP runtime that serves rendered pages without touching PHP, and a persistent object cache behind it that backs WordPress queries and transients. This page covers how each behaves, what gets cached or bypassed, and how to purge.

Layer Sits Caches Skipped for
Full-page cache In front of the runtime Rendered HTML responses for anonymous visitors Logged-in users, POST requests, and non-cacheable routes
Object cache Behind the runtime Query results, transients, and other WordPress cache groups Nothing — it’s a persistent backing store

The full-page cache holds the rendered HTML for a URL and serves it directly to anonymous visitors. A cache hit never invokes WordPress, which is why it pairs so well with FrankenPHP’s worker mode: the warm PHP process is reserved for the requests that genuinely need it — misses, logged-in traffic, and dynamic endpoints.

Cached: GET responses for anonymous visitors on cacheable routes.

Bypassed: requests from logged-in users (the platform respects WordPress login and common auth cookies), POST/PUT/DELETE requests, wp-admin, and the typical non-cacheable surfaces (login, cart/checkout-style routes, the REST API, and anything your code marks no-cache via headers).

The object cache is a persistent store for WordPress’s internal caching — the results of expensive queries, transients, and cache groups that a page render touches. Without it, WordPress recomputes those on every miss; with it, a cache miss still runs PHP but is backed by a shared store instead of hitting the database for everything. It’s enabled and managed for you — there’s no object-cache.php drop-in to install.

You can clear cached content by site/environment, by type (page or object), or by tag, from the dashboard, over SSH, or through the API.

The Cache panel for an environment in the app.managed.dev dashboard, showing a “Purge cache” control with options to clear the full-page cache, the object cache, or both, plus a field to purge a specific cache tag.
  1. Open the environment in the dashboard and go to its Cache panel.
  2. Choose what to purge — the full-page cache, the object cache, or both.
  3. Optionally narrow to a tag to purge just the related entries instead of everything.
  4. Confirm. The purge takes effect immediately for new requests.

The cache ships with sane defaults, so most sites need no tuning. Where you do want to override behavior — adjust page-cache TTLs or mark additional routes as bypass — you set it in your environment’s managed.dev config, which inherits down from the site to each environment. See config & secrets for where config lives and how inheritance works.