Features

Multisite

Caching Out works on a WordPress Multisite network. Every site in the network keeps its own settings, its own cached pages, its own licence and its own switch-on state; a few things are shared by nature because WordPress itself shares them. This article says which is which, what the Network Admin screen shows, and what to check when one site in a network behaves differently from the others.

  • Covers Caching Out 1.25.0
  • Last reviewed 2026-10-30

What is per site, what is shared

Per site (each site has its own)Shared by the whole network
Settings (every tab)The advanced-cache.php drop-in
Cached pages (wp-content/cache/cachingout/site-<id>/; the main site uses the root)The WP_CACHE constant in wp-config.php
Runtime settings snapshot (runtime-config-<id>.php, see below)The Browser Caching rules in .htaccess (one file per install)
Licence and switch-on stateThe kill-switch constants (CACHINGOUT_DISABLE_CACHE and the others)
Activity (change record)
Setup Wizard, Insights, Page Audit

Nothing is applied network-wide by default. Changing a setting on one site changes that site only.

The runtime settings snapshot, per site

The drop-in serves cached pages before WordPress loads, so it cannot read the database. Instead it reads a small snapshot file that the plugin writes on activation and on every settings save.

On a network each site writes its own snapshot, wp-content/cache/cachingout/runtime-config-<blog id>.php. The shared runtime-config.php follows the main site and carries the list of sites the drop-in uses to work out which site a request belongs to. A request for a subsite is served with that subsite's cache lifespan, cookie exclusions and query-string allow-list, not with whichever site saved its settings last.

A site that has never saved its settings has no snapshot of its own and is served with the shared one until it does. The Network Admin screen says so next to the site, and the site's own Filesystem Check reports it under "Runtime settings snapshot". Saving any settings page on that site once fixes it.

Purging a site's cache leaves the snapshots in place, and a purge on one site never clears another: since 0.1.20 every purge the plugin triggers on a site (theme switch, menu or widget change, term edit, plugin activation, settings save, the admin-bar Purge, wp cachingout purge) clears that site only. The whole network is cleared only by Purge every site in Network Admin.

Where the network screens are

Network administrators (the manage_network_options capability) get a Caching Out entry in the Network Admin menu (My Sites > Network Admin > Caching Out, or /wp-admin/network/admin.php?page=cachingout-network). It is not a tab inside a site's own Caching Out settings, because those settings belong to one site; the network screens sit where WordPress puts everything that spans sites (Sites, Themes, Plugins at network level). The screens use the same look as the plugin's own settings pages and have two tabs: Sites and Apply settings to sites.

Network Admin > Caching Out > Sites

The Sites tab lists every site in the network, 200 per page, with:

ColumnMeaning
SiteThe site's address; "(main site)" for the network's main site; a note when the site has no snapshot of its own yet
Switched onWhether Caching Out Pro has been switched on by a licence on that site (see Licensing); "Locked" means Pro is installed there but no licence has validated yet. The free plugin's page cache does not wait for this
Page cacheThe site's Page Caching toggle
LicenceThe site's licence status
Last purgeWhen the site's cache was last purged, from its own Activity record
InsightsThe site's latest Insights performance score, when an audit has run
ActionsPurge clears that one site's cached pages and records a purge row with source network on that site's Activity page. Open goes to the site's Caching Out settings. Activity goes to the site's change record, where anything applied from Network Admin can be reverted.

Above the table, Purge every site clears every site's cached pages at once. It is the only action anywhere in the plugin that clears the whole network: a purge triggered on one site (a theme switch, a menu change, a settings save, the admin-bar Purge) clears that site only.

What each button does, and how to undo it

ButtonWhat it doesWhat it does not doUndo
Purge (one row)Deletes that site's cached pages under wp-content/cache/cachingout/site-<id>/ (the main site's live in the cache root) and recreates the guard files. Records a purge row with source network on that site's Activity page.Touches no other site, no settings, no snapshot, no server file.Nothing to undo: pages are rebuilt on the next visit, or by Preload if that site has it on.
Purge every siteThe same, for each site in turn, one row per site.Same as above.Same as above.
OpenOpens that site's own Caching Out settings, exactly as its administrator sees them.Changes nothing.–
ActivityOpens that site's change record.Changes nothing.Revert lives here.

Network Admin > Caching Out > Apply settings to sites

Apply settings to sites copies one settings section to the sites you choose, in three steps. The first two write nothing.

Step 1: choose

Pick three things:

  1. Copy from: a site in the network, or Plugin defaults (the values a fresh site starts with).
  2. Section: one of Cache, Browser Caching, Media, File Optimization (including every Unused CSS/JS rule), or Preload. One section at a time, so the preview stays readable; everything outside the section stays exactly as each site has it. The screen lists what each section contains.
  3. Apply to: tick the target sites. Nothing is ticked by default and nothing is ever applied network-wide on its own. Ticking the source site itself is harmless; it shows as "no change".

Not offered, on purpose: Licence (per site, see below), Insights consent (each site opts in for itself) and Database cleanup (it has its own per-site preview before anything is deleted).

Clicking Preview changes reads the source once. Its own settings are never changed by this flow.

Step 2: preview

Every target site is listed as a card with each setting that would change, its current value ("Now") and the new one ("After"). Three states:

  • N settings change: this site will be saved when you confirm.
  • No change: this site already has these values. It is greyed out and will not be saved, purged or written to, and nothing appears on its Activity page.
  • Refused: the site could not be read (for example it no longer exists). It is left out; the others are unaffected.

A site that is not switched on yet (no licence validated there) is marked with a lock: the values are saved and take effect the moment a licence switches it on; nothing is written to the server before then.

Back returns to step 1 with nothing written. Cancel returns to the Sites tab with nothing written.

Step 3: apply

Clicking Apply to N sites writes exactly the values shown in the preview, even if someone edits the source site in the meantime. For each site that was marked as changing, and only those, the plugin:

  1. saves the chosen section on that site through the same checks as a save on the site itself (the same sanitizer, so an out-of-range value is clamped the same way);
  2. rewrites that site's settings snapshot for the cache drop-in (runtime-config-<id>.php);
  3. rewrites the shared .htaccess Browser Caching rules if the site is switched on and the section touches them;
  4. purges that site's cached pages if a setting that shapes page output changed (no other site is purged);
  5. records one row per changed setting on that site's Activity page, with source network.<user id> (the network administrator's user id) and the value before and after.

The Sites tab then shows a notice: how many sites changed, how many already matched (left untouched) and how many were refused.

Undoing an apply

  • One site: open that site's Activity page (the Activity button on the Sites tab), find the rows with source network.<id>, click Revert on each. Each revert restores the "Now" value the preview showed for that one setting, and is itself recorded.
  • Several sites at once: run Apply settings again from a source that still has the old values (a site you did not change, or the plugin defaults), tick the sites, preview, confirm.
  • A site that was not switched on keeps the applied values until reverted; revert works there too.

An Unused CSS/JS rule that names a file a site never loads does nothing on that site: a rule only unloads what the site actually enqueues.

Asking the assistant

The AI Assistant on any site can answer questions about these screens from this article: where they are, what each step writes, what a "network" row on the Activity page means and how to revert it. It cannot run an apply or a purge for you; those stay behind the confirm buttons.

Activating on a network

Activate the plugin per site, or network-activate it. Network activation runs the activation steps on every site in turn, so each site starts with its own settings, its own runtime snapshot and its own Pro switch-on state; the free page cache is on for every site at once, while a site that has never had Caching Out Pro starts with Pro locked until a licence is validated on it (see Licensing); a site that already had Pro stays switched on. Each site's Filesystem Check shows that site's activation report.

The drop-in, WP_CACHE and the Browser Caching rules are written once for the whole install by whichever site activates first, because WordPress has one wp-content and one wp-config.php.

Licensing on a network

Today the licence server counts each site's address separately, so every subsite that validates a licence counts as one site against the licence's site limit. Enter the licence on each site you want switched on. A network-level licence entered once in Network Admin is planned.

Troubleshooting

SymptomCauseFix
A subsite serves pages with the main site's lifespan or exclusionsThe subsite has no snapshot of its own (it never saved its settings), so the shared snapshot is usedOpen the subsite's Caching Out settings and click Save Changes once; the Filesystem Check on that site confirms runtime-config-<id>.php
Every subsite on a subdirectory network was cached into the main site's directory (versions before 0.1.20)The drop-in matched the first site whose address was a prefix of the request, and the main site's address is a prefix of every subsite'sFixed in 0.1.20: the longest matching site wins. Purge once after updating
Purge on the Network Admin screen says it could not purge a siteThat site's cache directory is not writableCheck permissions on wp-content/cache/cachingout/site-<id>/
A site's Filesystem Check says the runtime snapshot is missingThe site has not saved its settings since the snapshot was removedSave any settings page on that site once
Network Admin shows "Locked (no licence yet)" for a sitePro is installed on that site but no licence has validated there; the free page cache is already runningValidate a licence on that site (Caching Out > License)
Apply settings reports a site as refusedThe site no longer exists, or its save failed (a database or file error on that site)Open that site's Caching Out settings and save once; its Filesystem Check names the failing write
A setting changed on a site and its Activity page shows source network.<id>A network administrator (user id <id>) applied it from Network AdminRevert it from that site's Activity page like any other change

Free edition · WordPress.org

Get Caching Out for free

Good call. Page caching is the biggest single speed win, and it is on the moment you activate. Two ways to install the free edition:

Option 2

Upload the zip

Download the plugin zip, then go to Plugins → Add New Plugin → Upload Plugin and choose the file.

Download free plugin (.zip)

After you activate, caching is already running. Open Caching Out → Setup Wizard to see what is on and why.

Want every feature from day one? Pro from $59/yr