Skip to main content

The Cache screen: every function explained

This page describes every switch, button and status line on the Cache tab of Spark Speed 0.73.2, in screen order. It is meant for WordPress administrators who want to know what a setting does before touching it. Each function says whether it is basic or advanced, what the default is and how to undo it.
In short
  • The page cache is on by default and the optimizer switches it on when it is off. Most sites need to change little on this tab.
  • Cached pages with a filled cart and an own cache for logged-in customers are off; you switch them on deliberately, the cart only after a successful test.
  • On Apache, Spark serves cached pages without PHP. Those responses have no x-spark-speed headers; the proof is at the bottom of the page source.
  • Rebuild cache and Start safe build clear the whole page cache; the site is slower for a while until the warmer is done.

Page cache

Here you decide what Spark stores as ready-made HTML and how it reaches the visitor. This card has the biggest influence on loading speed.
Page cache card on the Cache tab with the status Active + Apache static-serve, six switches, the seconds field and the Save settings button
The Page cache card on a test site running Apache. Show the old page while rebuilding is still off here.

Status and approach

Basic · Status, not adjustable

What it does
The coloured line at the top (for example Active + Apache static-serve) shows whether visitors are really served from the cache. The Approach line says how, for example disk: Spark stores ready-made HTML on the server disk and serves it before PHP and WordPress start. Other possible messages include Off, a conflict with another caching plugin or a missing component.
How to check the effect
Green means the cache is ready, not that every page is already cached. How much is ready is shown under Cache build. The server side (which server, which drop-in file) is on Diagnostics.
Watch out
If the line reports a conflict, another caching plugin manages the page cache. Deactivate that plugin; two page caches side by side do not work.

Page cache

Basic · Default: on · Manual, the optimizer switches it on when it is off

What it does
The main switch. On: Spark stores the HTML of normal visits by anonymous visitors and serves that stored copy on the next visit, without WordPress having to build the page again. That lowers the time to first byte (TTFB, the time before the server starts answering).
When to switch it on or off
Keep it on. Only switch it off temporarily to test whether a problem is caused by the cache.
Requirements
No other caching plugin managing the page cache. WordPress must be able to set the cache setting in wp-config.php.
How to check the effect
Open a page twice in a private window. On Apache with Apache static-serve, the page source ends with a comment that starts with Spark Speed | cached. When the cache runs through PHP, the response header x-spark-speed-cache reads HIT.
Example
After saving, Spark builds the cache in the background. After a few minutes coverage under Cache build goes up.
Watch out
Switching it off empties the warmer queue. Logged-in visitors and visitors with a filled cart do not get a shared copy by default.
How to undo
Switch it off and click Save settings.
Technical name
cache_enabled

Separate mobile cache

Basic · Default: on · Manual, the optimizer switches it on when it is off

What it does
Keeps a separate copy of every page for phones. A phone then gets the HTML with the mobile optimizations (for example a smaller main image) and a computer gets the desktop version.
When to switch it on or off
Keep it on, especially when your builder uses separate mobile layouts or backgrounds. Off is only fine when the page has exactly the same HTML on phone and desktop.
How to check the effect
In the stored copy, the comment at the bottom of the page source says mobile instead of desktop when you open the page on a phone.
Example
Your homepage has a different hero image on mobile. With this switch on, a phone visitor gets the right one.
Watch out
Roughly twice as many stored files, and the warmer needs more time to build both variants.
How to undo
Switch it off and save.
Technical name
cache_mobile

Instant navigation

Basic · Default: on · Manual, the optimizer switches it on when it is off

What it does
Lets the browser prepare an internal page as soon as a visitor moves the mouse toward the link. After the click the page appears almost at once. Cart, checkout, login and links with a security code (nonce) are always skipped.
When to switch it on or off
Usually on. Switch it off if your server has little capacity or if your statistics count page requests that were never really visited.
Requirements
Works in browsers that support Speculation Rules (such as Chrome and Edge). Other browsers ignore it without errors.
How to check the effect
In Chrome: DevTools, Application tab, Speculative loads section. The page source contains a <script type="speculationrules"> block.
Example
A visitor hovers over a product link in your menu; after the click the product opens without visible loading time.
Watch out
Prepared pages the visitor never opens still cost server work and can add extra hits in statistics.
How to undo
Switch it off and save.
Technical name
speculation_rules

Apache static-serve

Basic · Default: on · Manual, the optimizer switches it on when it is off

What it does
Apache servers only: Spark writes its own block into the .htaccess file so Apache sends the stored HTML directly, without starting PHP. The block also enables browser caching and compression for files such as CSS, JavaScript, images and fonts.
When to switch it on or off
On for Apache. On other servers (for example nginx or LiteSpeed) this switch does not change how pages are served.
Requirements
Apache with mod_rewrite and a writable .htaccess file.
How to check the effect
A page served this way has no x-spark-speed headers, because PHP does not run. The proof is the Spark Speed | cached comment at the bottom of the source and the # BEGIN Spark Speed block in .htaccess.
Example
On the test site (Apache) the status reads Active + Apache static-serve and cached pages come back without Spark headers.
Watch out
If .htaccess is not writable, Spark says so and falls back to serving through PHP. This setting belongs to the server and is not carried over when you export or import settings.
How to undo
Switch it off and save; Spark removes its block from .htaccess again.
Technical name
htaccess_optimize

Show the old page while rebuilding

Basic · Default: off · Manual

What it does
After a normal content change, the next visitor briefly gets the previous version while Spark builds the new one. Nobody waits for a slow first build. Price, stock and unpublish changes and a manual purge (clearing the cache) stay immediate.
When to switch it on or off
On if you often edit content on a busy site. Off if visitors must never see the previous version after a change.
Requirements
Page cache on. The maximum duration is set in the field below.
How to check the effect
Right after saving a post, the page served through PHP carries the header x-spark-speed-cache: STALE, then HIT with the new content.
Example
You fix a typo in a blog post. The first visitor afterwards briefly still sees the old text; the next one gets the corrected version.
Watch out
A visitor can see outdated content for at most the set time. On a Kinsta server the switch has no effect.
How to undo
Switch it off and save.
Technical name
serve_stale

How long the old page may be served (seconds)

Basic · Default: 300 · Manual

What it does
The maximum number of seconds the previous version may still be shown. After that a visitor simply gets a fresh render.
When to switch it on or off
Only change it when Show the old page while rebuilding is on. Shorter means less chance of outdated content.
Requirements
A value from 30 to 3600. An empty value or 0 becomes 300.
Example
600 means at most ten minutes of the previous version.
How to undo
Set the value back to 300 and save.
Technical name
stale_ttl

Save settings

Basic · Button

What it does
Saves the switches and the field on this card. Spark then restarts building the cache; the existing cache is not cleared first.
How to check the effect
A confirmation appears at the top and the card status line updates.

Cart and logged-in customers

Without these two features your buyers get the slowest site: anyone with something in the cart or logged in gets a fully built page on every click. Both are off by default and you switch them on deliberately.
Cart and logged-in customers card with both features off, the text Not tested yet and the Run test and Switch on buttons
Both features are off by default. The cart part only appears when WooCommerce is active.

Cached pages with a filled cart

Basic · Default: off · Manual, only after a successful test

What it does
Normally a visitor with something in the cart gets a fully built page on every click, so the site is slowest for buyers. With this feature on, that visitor gets the shared cached page and a small script puts their own cart into it. A page built with a filled cart never ends up in the shared cache. Cart, checkout and account always stay uncached.
When to switch it on or off
On for a WooCommerce shop, but only after Run test has shown that the pages stay the same apart from the cart. The status next to the title shows off or on.
Requirements
WooCommerce active and a successful test no more than 30 days old.
How to check the effect
In a private window, add a product to the cart and open a category page: the cart count is correct and the page served through PHP comes back as HIT instead of BYPASS.
Watch out
Switching it on clears the whole page cache, which is then rebuilt. Cart texts that WooCommerce does not refresh (for example a custom counter or "20 euros to free shipping") can stay outdated; the test warns about that.
How to undo
Once the feature is on, this card shows a button to switch it off.
Technical name
woo_cart_cache

Run test

Basic · Button

What it does
Spark puts a simple product in a test cart, builds a number of your site's pages with and without the cart and compares them. The test cart is removed again afterwards. The result appears where it says Not tested yet.
When to switch it on or off
Before switching on the cart feature, and again after big changes to your theme or mini cart.
Requirements
WooCommerce with at least one simple product that is in stock and can be added to the cart. The test runs in the background through WP-Cron.
How to check the effect
Reload the tab after a few minutes and read the line with the latest test. Pages you want included in the test go under Test pages in Advanced rules.
Watch out
The test builds every test page several times, so it briefly loads the site. Preferably run it outside peak hours.

Own cache for logged-in customers

Basic · Default: off · Manual

What it does
A logged-in customer gets their own stored copy from their second visit to a page. It sits in a folder that can only be found with their own login cookie, so a customer never sees someone else's page. Customer roles only, never administrators, and never cart, checkout or account.
When to switch it on or off
On for shops or membership sites where many customers browse while logged in.
Requirements
Page cache on, unique security keys in wp-config.php, and no other caching plugin managing the page cache. If it cannot be used, the card shows the reason instead of the button.
How to check the effect
Log in with a test account that has the customer role and open the same page twice: the second time the header x-spark-speed-source: klant comes with HIT. The card shows the number of sessions with their own copies.
Watch out
Every change by the customer (cart, form, order), logging out and every purge clears all of their copies. A copy is at most 8 hours old, so content that changes on its own can be outdated for that long.
How to undo
Once the feature is on, this card shows a button to switch it off; all customer copies are then removed.
Technical name
klant_cache

Switch on

Basic · Button

What it does
Switches on Own cache for logged-in customers. If that fails, Spark reverts the setting and tells you why.
How to check the effect
The label next to the title changes from off to on.

Cache build

The warmer fills and maintains the cache on its own in the background. This card shows how far it has got, lets you rebuild everything and, in the Build mode block, lets you choose between a safe and a fast round.
Cache build card with the figures ready, queued, total, coverage, last build and last purge, the Rebuild cache button and the expanded Build mode block
The Cache build card with the Build mode block expanded.

Figures: ready, queued, total, coverage, last build, last purge

Basic · Status, not adjustable

What it does
The warmer is the background process that fills and maintains the cache. ready is the number of pages with a stored copy (desktop and mobile count as one page), queued what still has to be built, total the number of pages Spark wants to cache and coverage the share of ready out of total. last build and last purge show when the warmer last built something and when the whole cache was last cleared.
How to check the effect
The figures update when you reload the tab. If a measurement is missing, Spark shows "not measured yet" instead of a made-up 0.
Example
On the test site: 29 ready, 0 queued, 32 total, 91 % coverage.
Watch out
The warmer must be able to reach your site itself. If it cannot, this card shows a line saying the warmer is blocked or paused, with a button to resume it.

Rebuild cache

Basic · Button

What it does
Clears the full page cache and then queues all public pages again, most important first (home, product categories, products, pages, posts).
When to switch it on or off
After big changes, such as a new menu, an edited builder template or different theme settings.
How to check the effect
A notice shows how many pages are being rebuilt; last purge changes and queued goes up.
Watch out
Until the warmer is done, visitors get fully built pages; on a large site that is noticeable. The object cache is not cleared by this.
How to undo
Cannot be undone; the warmer rebuilds the cache by itself.
The Build mode block with the choice Safe build (slow) or Fast build, the What the check remembered summary and the Clear check memory button
Here Fast build is active and 13 pages have been checked.

Build mode

Advanced · Default: safe build, until you choose · Manual; after a completed safe round Spark switches to fast by itself

What it does
A collapsible block where you choose how Spark fills the cache. Safe build (slow): after caching, every page is fetched once more without optimizations and compared; a page that does not build correctly is removed from the cache at once and remembered. Fast build: caching only, without a per-page check; pages the previous safe round rejected get no optimizations, so those breakages do not come back. The active choice is labelled active.
When to switch it on or off
A safe round after first installation or after big optimization changes; after that the fast one is enough.
Watch out
A safe round takes roughly twice as long. Errors that only appear when a delayed script runs in the browser are not caught by this comparison.
Technical name
warm_mode

Start safe build

Advanced · Button

What it does
Selects the safe mode, wipes the old verdict, clears the whole page cache and queues all pages to be built and checked one by one.
How to check the effect
A notice gives the number of pages; after that What the check remembered fills up.
Watch out
The cache is temporarily empty, so the site is slower for a while.
How to undo
Click Start fast build to switch to the fast mode.

Start fast build

Advanced · Button

What it does
Selects the fast mode and queues all pages without clearing the cache first. The verdict of the previous safe round stays in force.
How to check the effect
A notice gives the number of pages and how many known breakages are served without optimizations.
How to undo
Click Start safe build.

What the check remembered

Advanced · Status, not adjustable

What it does
A summary of the last safe round, for example 13 pages checked: 13 built correctly, 0 did not. If pages were rejected, it lists which ones and why. If you changed optimization settings after the check, Spark says the verdict is no longer up to date.
When to switch it on or off
If you see the notice that your settings changed, run a new safe build for an up-to-date verdict.

Clear check memory

Advanced · Button

What it does
Removes all remembered per-page verdicts. The next safe round starts with a clean slate.
When to switch it on or off
After you fixed the cause of a rejected page, for example a plugin conflict.
Watch out
Without a verdict, a previously rejected page gets optimizations again in fast mode and the same error can come back.
How to undo
Run a safe build to fill the memory again.

Object cache

The object cache speeds up everything that is not served from the page cache, such as the admin, the checkout and logged-in visitors.
Object cache card with the status Active SQLITE connected, the Object cache switch, the Save settings button, the Backend, Connected, Default TTL and Breaker rows and the Empty object cache button
On the test site Spark chose SQLite as storage, because there was no Redis or Memcached.

Object cache

Basic · Default: off · Manual, the optimizer switches it on when it is off

What it does
WordPress fetches a lot of data from the database every time it builds a page. A persistent object cache keeps that data between requests, so everything not served from the page cache gets faster: admin, cart and checkout, logged-in visitors and rebuilding the cache. Spark uses Redis, Memcached, SQLite or APCu, depending on what the server offers.
When to switch it on or off
On if the status shows connected after saving. Off if your hosting already provides its own object cache.
Requirements
Reachable storage on the server and no object cache file from another plugin. Management requires a valid licence (or the 14-day grace period).
How to check the effect
The line under the title (for example Active · SQLITE connected) and the Backend and Connected rows. If Spark finds no storage, a yellow notice appears after saving.
Example
During the first Optimize my site run on the test site, the optimizer switched on the object cache with SQLite and then verified the connection.
Watch out
The description next to the switch only names Redis, Memcached and APCu, but SQLite is used too. This setting belongs to the server and is not carried over on export or import.
How to undo
Switch it off and save; Spark removes its object cache file again.
Technical name
object_cache

Save settings

Basic · Button

What it does
Saves the state of the Object cache switch. Spark then places or removes the matching file.

Backend, Connected, Default TTL, Breaker

Advanced · Status, not adjustable

What it does
Backend: which storage is in use (redis, memcached, sqlite or apcu). Connected: whether that storage really answers right now. Default TTL: how long data without its own expiry is kept (86,400 s is one day). Breaker: a safeguard that temporarily skips the storage when it repeatedly answers too slowly; closed is the normal state.
How to check the effect
If Connected says no or the Breaker is open, check Diagnostics for the cause.

Empty object cache

Basic · Button

What it does
Empties the object cache. Needed after a change made directly in the database that the object cache does not notice by itself.
Requirements
Only visible when a persistent object cache is active.
How to check the effect
A notice confirms the object cache was emptied.
Watch out
The site then fetches everything from the database again, so it is slower for a while. The page cache stays; conversely, clearing the page cache does not empty the object cache either.

Cached pages

A list of the pages Spark keeps a copy of, with a button per page to rebuild only that page.
Cached pages table with the columns Page, Status, Cached and Actions and a button per row to re-cache the page
The number in brackets is the number of stored pages found.

Cached pages list

Basic · Status, not adjustable

What it does
Shows the pages that are really stored on disk, newest first: the path, the status, how long ago the copy was made, and an action button.
How to check the effect
Compare the number in brackets with ready under Cache build.
Watch out
The Status column always shows HIT: it is a fixed marker that a copy exists, not a live measurement. If your server uses its own LiteSpeed cache, what LiteSpeed stores is not in this list.

Re-cache this page

Basic · Button

What it does
The arrow icon in the Actions column. Removes only the copies of this one page (including follow-up pages) and has it rebuilt right away.
When to switch it on or off
When a page still looks outdated after a change, without clearing the whole cache.
How to check the effect
A notice confirms the page was re-cached with its path, and the time in the Cached column starts again.
Watch out
The object cache is not emptied by this.

Advanced rules

Exactly what is or is not stored and how many variants an address may have. For most sites nothing needs to change here.
Advanced rules card expanded with the fields Never cache URLs, Bypass cookies, Ignored query parameters, Query parameters that create a variant, Test pages and Maximum variants per URL
The block is collapsed by default. In this screenshot the WordPress admin bar covers the label of the first field.

Show advanced cache rules

Advanced · Default: collapsed

What it does
Expands the fields that decide exactly what is and is not stored and how many variants an address may have. All lists take one item per line.
When to switch it on or off
Only needed when you have a specific exception. The default lists cover a normal WooCommerce shop.

Never cache URLs

Advanced · Default: a list including /cart, /checkout, /my-account, /wc-api and preview links · Manual; the optimizer adds entries but never removes any

What it does
One piece of text per line. If a request address contains that text (case does not matter), the page is not stored.
When to switch it on or off
Add a line for pages with personal content that are not in the list, for example a different checkout address.
How to check the effect
A page that is not stored carries, when served through PHP, the header x-spark-speed-reason naming the rule that matched.
Example
On the test site the optimizer also added Dutch shop addresses such as /winkelmand and /afrekenen.
Watch out
It is a partial match: a line that is too short also excludes other pages. A copy that was already stored does not disappear by itself; clear the cache for that.
How to undo
Remove the line, save and clear the cache if needed.
Technical name
bypass_urls

Bypass cookies

Advanced · Default: including wordpress_logged_in_, wp-postpass_, comment_author_ and woocommerce_items_in_cart · Manual

What it does
The start of cookie names, one per line. A visitor with such a cookie never gets a shared copy, and their visit is not stored either.
When to switch it on or off
Add a cookie from a plugin that changes the page per visitor, for example a currency switcher.
Watch out
Never put tracking cookies such as _ga or _fbp here: almost nobody would get a cached page any more. The cookies for login, password pages and comments always stay in the list, even if you remove them.
How to undo
Remove the line and save.
Technical name
bypass_cookies

Ignored query parameters

Advanced · Default: including utm_source, utm_medium, utm_campaign, gclid and fbclid · Manual

What it does
Parameters in an address (the part after the question mark) that do not change the page, such as ad and campaign codes. Spark ignores them, so everyone gets the same copy.
When to switch it on or off
Add a parameter when visitors arrive from a new ad platform with its own code.
How to check the effect
An address with ?utm_source=test gets the same copy as the address without it.
Watch out
Never put a parameter here that does change the content (for example a page number or filter); visitors would then see the wrong page.
How to undo
Remove the line and save.
Technical name
ignore_queries

Query parameters that create a variant

Advanced · Default: empty · Manual

What it does
Parameters with a limited set of values that do change the page. Each combination gets its own copy. Otherwise a page with an unknown parameter is not stored.
Example
orderby if your shop has a few fixed sort orders.
Watch out
Do not put filters (facets), search terms or price filters here: every possible value would get its own file and the cache would grow without limit.
How to undo
Remove the line, save and clear the cache for the old variants.
Technical name
cache_queries

Test pages

Advanced · Default: empty · Manual

What it does
Extra pages Spark includes in its tests, such as the cart test. One path per line. Spark already picks the front page, a product category and recent content itself; in total it tests at most 8 pages.
When to switch it on or off
When an important page with a different layout, such as a deals page, should be included.
Example
/deals/
Watch out
Pages on another domain are ignored. More pages make a test take longer.
How to undo
Remove the line and save.
Technical name
proof_urls

Maximum variants per URL

Advanced · Default: 60 · Manual

What it does
The limit on the number of stored variants of one address. Refreshing an existing variant is always allowed; a new variant above the limit is not stored and that visitor simply gets a fresh render. 0 means no limit.
When to switch it on or off
Lower on a small server with little disk space.
Requirements
A number from 0 to 500.
How to check the effect
When the limit is reached, the x-spark-speed-reason header says so.
Watch out
Too low a value leaves variants uncached; 0 removes this safeguard.
How to undo
Set the value back to 60 and save.
Technical name
max_variants_per_url

Save cache rules

Advanced · Button

What it does
Saves all fields in this block at once and then queues all pages again for the warmer.
How to check the effect
A notice at the top confirms the exclusions were saved and the cache is being refreshed.
Watch out
The content of each field fully replaces the old list. Copy a list first if in doubt.
Unsure about a step? Revert, check your site and ask us through the contact page.
No Spark Speed yet? See what it does and what it costs.

Frequently asked questions

On Apache with Apache static-serve the server sends the stored file without starting PHP, so Spark sets no headers. Look at the bottom of the page source for the comment that starts with Spark Speed | cached.

The page cache stores complete pages for anonymous visitors. The object cache stores database data and speeds up everything that still has to be built, such as the admin and the checkout. Clearing one does not clear the other.

Check whether the warmer can reach your site itself. If it cannot, the Cache build card shows that the warmer is blocked or paused; fix the cause on the server and resume the warmer with the button on that card.

As long as you make no choice, Spark uses the safe round. After a completed safe round Spark switches to fast by itself, and that uses the verdict of the safe round.