The values on this page are the ones the panel writes into the nginx configuration. They change only with new measurements.
Which sites have the cache
| Type | Page cache |
|---|---|
| WordPress, WooCommerce, PHP, Laravel | yes, on at creation; switched off with the Page cache switch |
| Static | no: files are served from disk |
| Reverse proxy | no |
Profiles
The site's Performance profile sets the lifetimes.
| Profile | Fresh | Served expired for up to | Disk space |
|---|---|---|---|
| Balanced (default, except WooCommerce) | 600 s | 7200 s | 1024 MB |
| Commerce (default for WooCommerce) | 300 s | 3600 s | 1024 MB |
| Maximum | 86400 s | 259200 s | 4096 MB |
- Lifetime (TTL) on the Cache tab replaces the profile's "fresh" lifetime;
0uses the profile's. It does not change the window in which an expired page is still served. 200and301responses stay cached for the lifetime;404responses for 60 seconds.- Only
GETandHEADare cached. - An expired page is served while it is refreshed, and also when PHP answers with an error, a
timeout or a
500/503. - Simultaneous requests for the same missing page wait for a single regeneration, up to 5 s.
Bypass per site type
A request skips the cache when it is a POST, has a query string that is not only tracking, has an
Authorization header, carries one of the cookies, or its path starts with one of the prefixes
below.
| Type | Cookies (the name starts with) | Paths |
|---|---|---|
| WordPress | wordpress_logged_in_, wp-postpass_, comment_author_, woocommerce_cart_hash, woocommerce_items_in_cart, wp_woocommerce_session_ | /wp-admin, /wp-login.php, /wp-cron.php, /xmlrpc.php, /wp-json/, /feed |
| WooCommerce | WordPress's | WordPress's and the commerce paths |
| PHP | WordPress's and PHPSESSID | WordPress's |
| Laravel | any *_session, XSRF-TOKEN, remember_web_ | /login, /logout, /register, /password/, /forgot-password, /reset-password, /email/verify, /admin, /nova, /horizon, /telescope, /sanctum/, /livewire/, /broadcasting/ |
The commerce paths are /cart, /checkout, /my-account, /addons, /wc-api and /?wc-ajax=.
Every WooCommerce site has them, and so does a WordPress or PHP site on the Commerce profile. A
Laravel site never does.
A prefix holds up to the end of a path segment: /feed excludes /feed/ but not /feedback.
A response that sets a cookie (Set-Cookie), or carries Cache-Control: no-store or private, is
never stored, whatever the type.
Tracking parameters
A query string made only of these parameters uses the cached entry of the page without them:
utm_*, fbclid, gclid, gbraid, wbraid, msclkid, dclid, mc_cid, mc_eid, _ga, _gl,
igshid, yclid, twclid, ttclid.
Response header
X-CloudGround-Cache appears on PHP responses of sites with the cache on.
| Value | Meaning |
|---|---|
HIT | served from the cache |
MISS | not there: generated by PHP |
BYPASS | a bypass rule sent it to PHP |
EXPIRED | it had expired: regenerated by PHP |
STALE | expired, served as it was |
UPDATING | expired, served as it was while another request regenerates it |
REVALIDATED | expired and confirmed still valid |
Key and files
| What | Value |
|---|---|
| Folder | /var/cache/cloudground/<domain> |
| Key | scheme, method, host (lower case, no port) and the request's address |
| File of an entry | the key's MD5, in two levels of folders |
| An entry nobody reads is dropped after | a week, or the lifetime plus the stale window when longer |
Automatic purges
On WordPress and WooCommerce the panel's connector purges the right pages by itself:
| What changes | What is purged |
|---|---|
| A post or page published, edited or deleted | its address, the home page, the archives it appears in and the feeds |
| A post's categories or tags | the post and the archives of the terms added or removed |
| An approved comment | the post and its comment feeds |
| A product's price, stock status or image | the product and the archives it appears in |
| Theme, plugins, menus, widgets, customisations, site options, updates | the whole site |
The panel also purges the whole site after a WordPress update run from the panel, a release, a restore and a publish from staging.
Next step
To purge the cache by hand, follow purge the cache.