About
Changelog
Release notes for both editions, one entry per version, newest first. The free edition's entries are the same text as its changelog on WordPress.org; the Pro add-on's entries are what its update screen shows. Caching Out Pro requires the free plugin and the two are released as a pair, so a version that changes only one of them still appears for both.
Performance results vary depending on hosting, theme, plugins and traffic.
1.25.0 – 2026-10-30
Free
- 1.24.0 was not published on WordPress.org: its fixes (page purges on an address with a port number, and on multisite subsites) reach WordPress.org sites with this version.
- Changed: in the Page Audit, a finding the plugin can act on is listed with the fixes rather than under "Outside the plugin".
- Changed: with Caching Out Pro 1.25.0, the "Hero image weighs …" finding carries "Compress this image", which adds the image to Pro's Image compression tab to review before and after. When Pro cannot compress that image (a theme file, an animated WebP), the finding says why.
- Fixed: the readme's third-party section described Bootstrap, which the settings screens stopped using in 1.22.0.
Pro
- New: WebP images can be compressed. A WebP image is made smaller in place, at the same address, so every browser gets the smaller file (animated and lossless WebP are left as they are, and say why).
- New: see before and after. Each image shows its current and its compressed version side by side; click either for a full-size view with a before / after slider (mouse, touch or arrow keys). Then choose Compress, Keep the original, or Try a gentler result. Compress writes exactly the file you saw.
- New: Image compression is a tab of Caching Out (Optimization group). On the Page Audit, "Compress this image" adds a heavy image to its list, so you can pick several while reading the audit and review them one at a time on the tab. Links to the old screen still work.
- New: the Media Library list view has an Image compression column (the saving, the files done, the copies, or why an image cannot be compressed) and a "Compressed by Caching Out" filter.
- New: the Media tab points at Image compression, and the Pro tab of the free plugin lists it.
- The image screen says, before you compress, how many smaller sizes WordPress made of the same image: Compress does them too, at the same quality, so phones get a smaller file. After a Restore the before / after is measured again on the original.
- "Re-run the audit for this page" now runs the Page Audit when it opens Insights, so the result shows the compressed image straight away.
- Fixed: the image screen no longer shows a Restore button for an image that was never compressed.
- Fixed: on the AI Assistant tab without a licence, the "AI Diagnostic Chat" card was squeezed into narrow columns, and ran off the screen on a phone. It is a centred card again.
- Image compression needs Caching Out 1.24.0 or later; with Caching Out 1.25.0 the Page Audit lists the finding with the fixes.
1.24.0 – 2026-10-28
Free
- Fixed: on a site whose address includes a port number (for example example.com:8080), editing or purging a page now clears its cached copy. Before, the purge reported success but left the cached page in place until the whole cache was emptied.
- Fixed: on a multisite network, editing or purging a page on a subsite now clears its cached copy. Before, the purge looked in the main site's cache folder and left the subsite's page in place until it expired.
- New: in the Page Audit, the "Hero image weighs …" finding has a "Compress this image" button with Caching Out Pro 1.24.0, which opens that image in Pro's image compression screen. Without Pro, the finding says that Pro can compress the image on your own server.
- New for developers: the cachingout_page_audit_findings filter lets another plugin add to or adjust the Page Audit findings (the hero image finding carries the image's URL as its subject), and a finding's action can be a link to an admin screen.
- If you use Caching Out Pro, update it to 1.24.0 as well to get image compression. Pro 1.23.0 keeps working with this version.
Pro
- New: image compression. Pick an image, from the Page Audit's "Hero image weighs …" finding or from Compress in the Media Library, and Caching Out makes it smaller on your own server: an optimised original at the same address for every browser, Safari and iPhones included, plus WebP and AVIF copies for browsers that accept them (AVIF where your server can write it). One image at a time, chosen by you. JPEG and PNG only; images are never resized. A Preview shows the result before anything is written.
- New: every compressed image can be restored to its exact original with one click, on the Image compression screen or in the Media Library; Restore all does every image. Restore works with or without a licence.
- Compressing and restoring are recorded in Activity. Afterwards the page you came from is cleared from the page cache (the whole page cache when WebP or AVIF copies changed), and the image's files are cleared from a connected CDN or edge cache.
- Uninstalling Pro keeps the backups of any image you have not restored, in wp-content/cachingout-images/backup/. Use Restore all first if you want every original back.
- Caching Out never sends your images, or anything about them, to any service.
- Works with Caching Out 1.22.0 or later. Image compression needs Caching Out 1.24.0: with an older free plugin the Image compression screen says so (Restore keeps working), and the rest of Pro keeps its 1.23.0 behaviour.
1.23.0 – 2026-10-26
Free
- Fixed: the cached copy of a page no longer depends on which browser visited it first. Before, a page first visited by Chrome, Edge or Firefox was cached as that browser's image variant, so with Caching Out Pro most WebP-capable visitors received no WebP images. A page is now always written as the plain copy first, and image variants are made from it.
- Changed: without Caching Out Pro serving WebP or AVIF, pages are no longer cached twice by browser type (once for browsers that accept WebP and once for the rest). Each page has one cached copy, and the response carries no "Vary: Accept" header. The cache is emptied once on update.
- New (for Caching Out Pro 1.23.0): an AVIF variant beside the WebP one. With CACHINGOUT_DEBUG on, the X-CachingOut-Image-Variant header names the variant a response was served from.
- New: "Removing Caching Out completely" in the getting-started guide. Deleting the plugin from the Plugins screen removes everything it added; there is no separate clean-up step.
- If you use Caching Out Pro, update it to 1.23.0 as well to get AVIF and the new WebP behaviour. Pro 1.22.0 keeps working with this version.
Pro
- New: AVIF delivery. Browsers that announce AVIF get a cached page whose images point at the .avif copies already on your server, or at the .webp copy where an image has no AVIF one. Off by default: switch on "Serve AVIF copies" on the Media tab. Pro converts nothing.
- Improved: WebP and AVIF copies made by most conversion plugins are found: photo.jpg.webp, photo.webp, or a separate uploads-webpc folder. A copy larger or older than its original is never used.
- Improved: images on the site's CDN hostname, and images that other plugins lazy-load through data-src, data-srcset or data-lazy-src, are rewritten too.
- Fixed: with the free plugin 1.23.0, a page first visited by Chrome, Edge or Firefox now gets its WebP variant. Before, most WebP-capable visitors received the original images.
- Caching Out never sends your images, or anything about them, to any service.
- Works with Caching Out 1.22.0 or later. With free 1.22.0 it keeps the 1.22.0 WebP behaviour and serves no AVIF; update both for the full change.
1.22.0 – 2026-10-24
Free
- Changed: the plugin's settings screens have a new look, built in-house on the Caching Out brand colours. Bootstrap, Bootstrap Icons and the Bootstrap JavaScript bundle are no longer shipped or loaded in wp-admin (about 440 KB less on every plugin screen; nothing loads from a third-party host). Icons are inline SVG. Every setting, tab and button is where it was; no setting changes value on update.
- New: the Cache tab opens with a status strip: whether page caching is on, how many pages are cached right now, whether the advanced-cache.php drop-in is ours and in place, and the cache lifespan.
- Changed: the settings screens meet WCAG 2.1 AA (contrast, visible focus rings, 44 px touch targets on icon-only controls) and respect prefers-reduced-motion. Phone widths down to 320 px scroll in one direction only.
- Changed: the activation report notice and the setup wizard use the same look; the "Save Changes" buttons are the plugin's own.
- New: saving a tab now shows a "Settings saved." confirmation at the top of the tab (before, the page simply reloaded).
- If you use Caching Out Pro, update it to 1.22.0 as well: Pro 1.22.0 draws its screens with this version's stylesheet and needs Caching Out 1.22.0 or later (it shows one notice and loads nothing until the free plugin is updated).
Pro
- Changed: every Pro screen (CSS and JS delivery, Unused CSS/JS, Activity, Insights, preloading, CDN, the licence screen, the wizard steps and Network Admin) has the new Caching Out look, drawn with the free plugin's 1.22.0 stylesheet and inline SVG icons. No Bootstrap class names remain; the three Pro stylesheets use the same brand tokens.
- Changed: Pro 1.22.0 requires Caching Out 1.22.0 or later (before: 1.21.10). With an older free plugin active, Pro shows one admin notice and loads nothing until the free plugin is updated. Update the pair together.
- Changed: the "Pro is not switched on" notice uses the plugin's own buttons.
1.21.17 – 2026-10-21
Free
- Fixed: visitors arriving from Facebook, Instagram, Google Ads, TikTok or a campaign link were never served from the page cache, because the URL carried a tracking parameter (fbclid, igsh, gclid, utm_…) and the "Ignored query parameters" list was empty by default. The list now ships prefilled with the parameters the browser-side pixels read and the server never does: fbclid, igshid, igsh, gclid, gbraid, wbraid, dclid, ttclid, msclkid, twclid, yclid, li_fat_id, mc_cid, mc_eid, _ga, _gl, _hsenc, hsmi, utm*. A request whose parameters are all on the list is served the plain page's cached copy and writes no file of its own; the browser URL is untouched. One parameter off the list still bypasses the whole request. On update, a site whose list was empty gets the defaults; a site that had filled the list keeps it.
- New: a trailing * in the list matches a name prefix (utm_*); utm without the star matches only utm. The Cache tab shows the list, editable, with a "Restore default parameters" link that adds back removed defaults and keeps your own names.
- New: the cachingout_ignored_query_strings filter lets another plugin add the parameter names it puts on its own links. The names reach the advanced-cache.php drop-in through the runtime snapshot, which is now also refreshed when any plugin is activated or deactivated.
- If you use Caching Out Pro, update it to 1.21.17 as well.
Pro
- No changes to the add-on; the version moves with the free plugin's 1.21.17 (tracking query parameters such as fbclid, gclid and utm_* no longer bypass the page cache) so the two are released as a pair. Requires Caching Out 1.21.10 or later.
1.21.16 – 2026-10-19
Free
- New: custom exclusions are part of the free plugin. Keep any URL, cookie or user agent out of the cache from the Cache tab (Never Cache). The built-in safety exclusions are unchanged and still apply first.
- Changed: one front-end output buffer instead of three. Lazy loading and hero-image priority run inside the optimisation pipeline's buffer, which the plugin closes itself; on WordPress 6.9 and later it uses WordPress's own template output buffer. The advanced-cache.php drop-in closes its buffer the same way (the drop-in is refreshed on update).
- Changed: wp-config.php and .htaccess are updated by replacing the file in one step. No backup copy of either file is written to disk any more; if a write fails the file is left as it was and the notice says what to add or remove by hand.
- Changed: the drop-in finds the plugin from the directory recorded at activation, so a renamed plugin folder or a custom plugins directory works. The companion style for injected image dimensions is enqueued rather than written into the page.
- Changed: Bootstrap 5.3.8 and Bootstrap Icons 1.13.2 on the admin screens.
- Changed: the partner-code disclosure sentence on the Pro tab can be changed through the
cachingout_partner_code_disclosurefilter and is translatable. The drop-in locates the plugin only from the directory recorded at activation (or WP_PLUGIN_DIR when wp-config.php defines it); it no longer guesses wp-content/plugins/cachingout. - New for developers: the DONOTCACHEPAGE constant is honoured, and two filters let another plugin keep pages out of the cache (cachingout_derived_never_cache_prefixes and cachingout_response_is_cacheable).
- If you use Caching Out Pro, update it to 1.21.16 as well.
Pro
- Changed: custom exclusion rules (URL, cookie, user agent) are part of the free plugin from 1.21.16; Pro no longer renders or saves them (it still does so when running with a free plugin older than 1.21.16). The telemetry opt-in handler moved into Pro. Requires free 1.21.10 or later; update the pair together.
- Changed: the Updates screen shows the Caching Out icon next to a Pro update, and reports the WordPress version the release was tested with (a matching major.minor counts, as on WordPress.org).
1.21.15 – 2026-10-15
Free
- No changes to the free plugin; the version moves with Caching Out Pro 1.21.15 so the two are released as a pair. (The 1.21.14 package submitted to WordPress.org carried one header correction, the plugin's own page as its Plugin URI; it is in this version too.)
Pro
- Improved: consent banners are left alone by every optimisation that could hide one. Delay JS never delays the scripts of CookieYes (hosted or the self-hosted cookie-law-info plugin), Cookiebot, Complianz, FAZ Cookie Manager, Borlabs Cookie, iubenda, Real Cookie Banner, Cookie Notice, Termly, Osano, Usercentrics and cookie-script (before: four generic entries); Optimize CSS Delivery keeps their stylesheets render-blocking, and Combine CSS keeps them in the protected bundle, so a banner is never an empty box waiting for a deferred stylesheet; Unused CSS/JS refuses a rule that would unload them. Complianz stays a manual rule behind the confirmation, as before.
- Fixed: the License tab names the Multi plan's own size ("Multi – 100 sites") instead of listing the three sizes, and never says "unlimited". The plugin now stores the site count the license server reports; a site validated before this version shows the three sizes until its next daily check.
- Works with Caching Out 1.21.10 or later. No change to caching.
1.21.14 – 2026-10-06
Free
- No changes to the free plugin; the version moves with Caching Out Pro 1.21.14 so the two are released as a pair.
Pro
- Changed: after a full refund the license server revokes the license, and the plugin now switches Pro off again at its next check: the site returns to the "installed but not switched on" state it had before the key, and the free plugin underneath is untouched. An expired license still changes nothing: the plugin keeps working and only updates, support and the assistant stop.
- Removed: the development-site shortcut (the CACHINGOUT_DEV_LICENSE constant) that accepted a developer key without asking the license server. Every key is now checked by the server; developer keys are unaffected on sites that reach it. If you defined the constant, remove the line.
- Works with Caching Out 1.21.10 or later. No change to caching or optimization.
1.21.13 – 2026-10-03
Free
- Changed: the code was brought in line with the WordPress.org plugin guidelines. The database cleanup queries use WordPress's standard prepared form, temporary and backup files are removed with WordPress's own functions, and the two small scripts the admin screens printed inline are loaded through the script API.
- Changed: table optimisation and orphaned-metadata cleanup, which belong to Caching Out Pro, are no longer part of this plugin's code; the add-on carries them. The seven cleanup operations of this plugin are unchanged.
- Changed: the bundled third-party libraries are listed in assets/THIRD-PARTY-LICENSES.txt.
- No setting changes, and no change to what is cached or when. If you use Caching Out Pro, update it to 1.21.13 as well.
Pro
- Changed: table optimisation and orphaned-metadata cleanup now live in this add-on. Their code used to sit in the free plugin, switched off until Pro was active; the free plugin no longer carries it. Nothing changes in how they work or how they are scheduled.
- Works with Caching Out 1.21.10 or later. Update the free plugin to 1.21.13 together with this one. No change to caching or optimization.
1.21.12 – 2026-10-02
Free
- No change to this plugin. Released together with Caching Out Pro 1.21.12, which works with this version and with 1.21.10 or later.
Pro
- Fixed: on a site where Caching Out Pro is installed and not yet switched on by a license, the Insights tab showed the "Help Us Improve" box, and "Enable Insights" answered "Failed to save opt-in preference". The PageSpeed panel is now shown once Pro is switched on. The Page Audit on the same tab is unaffected and works in both states.
- Works with Caching Out 1.21.10 or later. No change to caching or optimization.
1.21.11 – 2026-10-01
Free
- No change to this plugin. Released together with Caching Out Pro 1.21.11, which works with this version and with 1.21.10.
Pro
- Improved: the AI Assistant's answers are shown formatted – paragraphs, lists, bold text and code – instead of as one block of text with the formatting marks visible.
- Improved: the sources under an answer name the documentation page they come from and link to it, once per page.
- Changed: the note under the assistant lists everything the plugin sends with a question, including the page-audit findings and, when that setting is on, the short list of recent setting changes. What is sent has not changed; the note had not kept up.
- Works with Caching Out 1.21.10 or later. No change to caching or optimization.
1.21.10 – 2026-09-19
Free
- Fixed: the "See Pro on cachingout.com" link on the Pro tab, and the details link in this readme, pointed at a page that does not exist. They go to https://cachingout.com/pricing/.
- No change to caching or optimization. Caching Out Pro 1.21.10 requires this version.
Pro
- Fixed: the dashboard notice "your license expires in N days, please renew" was shown to every subscriber for the last thirty days of each year, even though their subscription renews by itself. The license server now tells the plugin whether a license renews; when it does, there is no notice. A customer who has cancelled is told when the license ends, that the plugin keeps working, and how to renew. On the License tab a cancelled subscription reads "Ends on" instead of "Renews on".
- Changed: the Enterprise section on the License tab says what Enterprise is – one license for more than 500 sites – and gives an email address. It no longer lists support arrangements that are not part of any published plan.
- Fixed: the plugin's "Visit plugin site" link, and the purchase address in this readme, pointed at a page that does not exist. They go to https://cachingout.com/pricing/. Support is support@cachingout.com.
- Caching Out Pro 1.21.10 requires free 1.21.10.
1.21.9 – 2026-09-19
Free
- Fixed: with WooCommerce active, saving a product whose stock changed – and an order reducing stock – stopped with a PHP error ("purge_post(): Argument #1 must be of type int"), which could leave a half-saved product. The plugin listened to two WooCommerce stock events that pass the product itself, not its ID.
- Fixed: Minify CSS, Minify JS and Defer JS (and every Caching Out Pro file optimization) no longer run on the WooCommerce cart, checkout and account pages, or on any page holding the cart or checkout block. The page cache already left those pages alone; file optimization did not, and the block checkout could fail to load. With debugging on, those pages answer "X-CachingOut-Optimization: skipped; woocommerce-checkout" (or -cart, -account).
- New for developers: the
cachingout_skip_optimizationfilter. Return a short reason to keep file optimization off a request; return an empty string to leave it on. - Caching Out Pro 1.21.9 requires this version.
Pro
- Fixed: Delay JavaScript could delay the WordPress core libraries (wp-polyfill, wp-hooks, wp-i18n, dom-ready, url, api-fetch) and jQuery when Minify JS was also on, because the minified copy no longer carries the original file path. They are now recognised by their script id. The visible symptom was a form plugin such as Contact Form 7 falling back to a full-page submit. If you listed those handles under "Delay JS exclusions" to work around it, you can remove them.
- Fixed: Delay JS, Combine, Optimize CSS delivery, font optimization, Defer jQuery and Load jQuery in the footer no longer run on the WooCommerce cart, checkout and account pages (see the free plugin's 1.21.9 notes).
- Fixed: when the license server answers that a license has expired, been revoked or been suspended, the License tab says so at once. Until now the answer was counted as a connection failure and the tab could read "active" for up to thirty days. A renewed license switches back by itself on the next daily check. Nothing is switched off when a license lapses: updates, support and the assistant stop, the plugin keeps working.
- Changed: with a lapsed license the assistant tab explains that the assistant is paused and links to renewal, instead of taking a question the server refuses.
- Changed: a license stays active for three days past its renewal date, so the hour between the anniversary and the renewal payment no longer shows as a lapse.
- Fixed: four links on the License tab and in the expiry notice pointed at a
placeholder address. Every purchase and renewal link now goes to
https://cachingout.com/pricing/ (filter:
cachingout_pricing_url). - Caching Out Pro 1.21.9 requires free 1.21.9.
1.21.8 – 2026-09-16
Free
- Changed: on the Database tab, each row's Run button is locked until that row has been previewed and shows how many rows it will remove, and locks again after a run until the next preview. "Run All Previewed" now runs only the rows you have previewed. Nothing is deleted without the count being shown first, which was always the intent.
- Fixed: the orphaned-metadata cleanup (a Caching Out Pro operation that lives in this plugin's cleanup engine) now also removes term metadata whose term no longer exists.
- Changed: the settings reference and the knowledge base now state that Minify CSS and Minify JS do not consult SCRIPT_DEBUG – the switch alone decides. No behaviour change.
- Changed: the compatibility matrix in the documentation is rewritten for 1.21.8 and WordPress 7.1.
- Tests: the deactivation tests now exercise the real deactivator and its real contract (the drop-in and our cron events are removed; WP_CACHE and the .htaccess block are left for uninstall).
- Caching Out Pro 1.21.8 requires this version.
Pro
- New: "Schedule automatic audits" on the Insights tab now does what it says. The setting existed since the first releases but nothing ran it; it now re-runs the PageSpeed audit (when a key is set) and the Page Audit for every tracked page daily, weekly or monthly, one interval after you save, so the score history keeps filling in. It is a visible switch next to the API key, off by default.
- Fixed: saving the PageSpeed API key silently switched the scheduled-audit setting on. The save now reads the checkbox value.
- Fixed: Smart Config's cached site fingerprint is refreshed when a plugin is activated or deactivated, the theme changes or an update completes, instead of up to twelve hours later.
- Fixed: Optimize CSS delivery's stylesheet parser no longer treats a brace inside a quoted string (content: "}") or inside an unquoted url() as the end or start of a block; such a sheet could lose the rest of its rules from the inline critical block. Cached parses are rebuilt (parser version 4).
- Fixed: the orphaned-metadata cleanup also removes term metadata whose term no longer exists.
- Changed: the licence server (not part of this package) now revokes a licence on a full Stripe refund, suspends it on a dispute, alerts the operator on both, raises a security incident on repeated failed licence validations from one address, and reads its assistant fair-use limits from its configuration.
- Caching Out Pro 1.21.8 requires free 1.21.8.
1.21.7 – 2026-09-11
Free
- Fixed: automatic image dimensions could resize an image the theme sizes with CSS, most visibly a logo scaled down to fit a header bar. The plugin now pairs every width/height it adds with a "height: auto" rule in a CSS cascade layer, which cannot override your theme but does stop an added height from becoming the image's real height. Reserved space, and so the protection against layout shift, is unchanged.
- Fixed: excluding an image from LazyLoad (the no-lazy or skip-lazy class, data-no-lazy, or the Media exclusion list) now also stops width and height being added to it. Previously the exclusion was applied after the attributes had already been injected.
- Changed: dimensions are read from the media library record for the exact file in the tag, falling back to measuring the file only for images WordPress does not know. An image outside the media library that offers several files through srcset is left alone rather than guessed at.
- New: every image the plugin measures is marked data-cachingout-dim="1" in the page source, so you can see what was changed.
- Fixed: changing an image now clears the page cache. Optimisation plugins such as Imagify, ShortPixel, Smush and EWWW re-encode files without saving a post, so cached pages kept describing the previous file. A bulk run clears the cache once per batch, not once per image.
- Caching Out Pro 1.21.7 requires this version.
Pro
- Changed: the version moves with the free plugin's 1.21.7 so the two are released as a pair. The add-on's behaviour is unchanged. The free plugin fixes automatic image dimensions resizing CSS-sized images such as header logos, makes the LazyLoad exclusions cover dimension injection, and clears the page cache when an image is re-encoded or resized by an optimisation plugin. Caching Out Pro 1.21.7 requires free 1.21.7.
1.21.6 – 2026-09-10
Free
- Changed: the Caching Out mark replaces the rocket icon in the plugin header, the admin menu and the admin bar.
- New: a Documentation button in the header and a "Documentation:
" link at the top of every settings tab, pointing at the online guides. - Fixed: two "Constant already defined" PHP warnings were logged on every page load when the page-cache drop-in had already defined them.
- Fixed: Defer JavaScript exclusions now also match a script's id, so a script Minify JS has renamed can still be excluded by name.
- Caching Out Pro 1.21.6 requires this version.
Pro
- Changed: the plugin knows the address of the licence server, so a new install validates, updates and reaches the assistant with no configuration. Developer keys are accepted only on a site that declares itself a development site (CACHINGOUT_DEV_LICENSE); everywhere else every key is checked by the server.
- Fixed: Delayed JS exclusions now also match a script's id, so a script Minify JS has renamed can still be excluded from delay by name; a blank line in the list no longer excludes every script.
- Fixed: WordPress's own wp-i18n, wp-hooks and wp-polyfill are never delayed. Delaying them left "wp is not defined" on pages with a translated script, such as Contact Form 7.
- Fixed: with Delay JavaScript on, a script listed in Delayed JS exclusions is no longer folded into a Combine JS bundle, where the exclusion could not reach it.
- Changed: the Preload tab and the wizard's Preloading step use a new icon; a Documentation link sits at the top of every Pro tab.
- Requires Caching Out 1.21.6.
1.21.5 – 2026-09-10
Free
- Changed: the version moves with the Pro add-on's 1.21.5 so the two are released as a pair. The free plugin's behaviour is unchanged; it carries the small hooks the add-on's new features hang on (two gating-table rows, one pipeline position, a Page Audit registration filter), and the debug timing header is now formatted the same way in every server locale. Caching Out Pro 1.21.5 requires this version.
Pro
- New: "Load jQuery in the footer" (File Optimization > JavaScript loading, off by default) asks WordPress to print jQuery and jQuery Migrate at the end of the page so they stop blocking the first paint. WordPress keeps them in the head when a script printed in the head needs them; the Filesystem Check then names that script.
- New: "Defer jQuery (I have checked my inline scripts)" (off by default) lets Defer JavaScript defer jQuery itself. The Filesystem Check lists the inline scripts on your front page that still reference jQuery, so you can check before switching it on, and what to do about each one.
- Changed: Combine CSS now builds separate files for your theme's stylesheets and for plugin stylesheets, in the order the page loads them, so Optimize CSS delivery can defer the plugin CSS instead of keeping one large bundle render-blocking because a theme stylesheet was inside it. Files are combined in page order; before, they were combined in alphabetical order of their URLs.
- Fixed: Optimize CSS delivery no longer drops a rule whose selector holds a comma inside :is(), :where(), :not() or an attribute value.
- Changed: self-hosted Google Fonts keep only the character subsets your site's languages use (WordPress language plus Polylang or WPML languages); the others are neither inlined nor downloaded.
- Changed: the assistant tab says up front when the diagnostic service is not available, and a failed question says why (timed out, unreachable, licence rejected, question limit reached, service error).
- New: two Page Audit findings – Combine CSS or JS switched on while the server speaks HTTP/2 or HTTP/3, and the share of a page's render-blocking CSS that comes from plugins nothing on the page uses.
- Fixed: the scheduled-cleanup selects on the Database tab now save.
- Requires Caching Out 1.21.6 or newer.
1.21.4 – 2026-09-08
Free
- No change to the free plugin's behaviour; the version moves with the Pro add-on's 1.21.4 (a fix in Optimize CSS delivery there) so the two are released as a pair.
Pro
- Fixed: Optimize CSS delivery no longer inlines mobile-only styles as if
they applied to every screen. Its stylesheet parser dropped the viewport
condition of every
@media (...)block except for the block's first rule, so a theme's mobile menu and hidden-on-phone elements could be styled that way on desktop too: a header rendering as a vertical list of links, a missing button. Every inlined rule now keeps its media query and its@supportscondition, and the coverage check sees those rules as well. Sites that switched the feature off because of this can switch it back on after updating and purging; measure before keeping it on.
1.21.3 – 2026-09-08
Free
- Fixed: with Minify CSS on, Optimize CSS delivery (a Pro feature) no longer loses track of which stylesheet is the theme's, a slider's, or one on your Excluded CSS list. Minified copies carry a hashed name; the plugin now remembers where each copy came from, so those stylesheets stay render-blocking as intended. Before, switching both features on could leave the header or menu unstyled until the deferred stylesheet arrived.
- Fixed: the Unused CSS/JS suggestions and the Page Audit no longer treat a WooCommerce selector inside an inline style block, or the bare word "woocommerce", as a sign that a page uses WooCommerce. Sites where a theme styled shop elements from the customizer saw "Nothing to suggest" on every page. WooCommerce's front-end scripts and the Testimonial Slider and Showcase plugin are now catalogued too.
Pro
- Fixed: Unused CSS/JS suggestions read a page's markup only, never its inline style blocks, when deciding whether WooCommerce is in use; the suggestion engine also knows WooCommerce's front-end scripts and the Testimonial Slider and Showcase plugin. Optimize CSS delivery keeps the theme, slider and excluded stylesheets render-blocking with Minify CSS on (the fix itself is in the free plugin). Pro still works with the free plugin at 1.21.0 or newer; this fix needs the free plugin at 1.21.3.
1.21.2 – 2026-09-08
Free
- Fixed: on a multilingual site whose languages live at different URLs (a Polylang directory, subdomain or domain setup; a WPML directory or domain setup), the language cookie those plugins set no longer stops pages being served from cache. Before, any visitor who had once received the cookie was never served from cache again. Sites that serve every language at the same URL are unchanged: the cookie still bypasses the cache there, because the cached copy could be the wrong language.
- Changed: switching the language URL mode in Polylang or WPML now refreshes the plugin's runtime settings and clears the page cache.
Pro
- Changed: the two bundled auto-configuration rules that added the Polylang and WPML language cookies to the "never cache when these cookies are present" list are removed. The free plugin handles those cookies itself, and from 1.21.2 it ignores them where the URL already carries the language; the rules would have undone that. Sites where the rules were applied earlier keep the cookie names in their list until they remove them on the Cache tab. Pro still works with the free plugin at 1.21.0 or newer.
1.21.1 – 2026-09-07
Free
- Fixed: deactivating the plugin no longer forgets the drop-in's ownership record when advanced-cache.php could not be deleted (for example a read-only wp-content directory). The next activation and the uninstaller still recognise the file as this plugin's; before, they would have treated it as another plugin's drop-in and left it in place for good.
Pro
- No changes to the add-on. The version moves with the free edition's 1.21.1 (a deactivation fix there) so the two are released as a pair. Pro still works with the free plugin at 1.21.0 or newer.
1.21.0 – 2026-09-07
Free
- Changed: Caching Out is now two plugins. This one is the free edition on WordPress.org: page caching before WordPress loads, purging on content change, browser caching with GZIP and Brotli, lazy loading with dimensions and hero-image priority, minify and defer with their per-file controls, the manual database cleanup, the full Page Audit, the full Filesystem Check, and the complete safety layer. It needs no licence and never contacts our servers.
- Changed: Optimize CSS delivery, combine CSS and JS, delay JS, Google Fonts, WebP serving, YouTube click-to-load, Unused CSS/JS, the Activity record, Performance Insights, cache preloading, custom exclusion rules, scheduled database cleanup, CDN rewriting, the Cloudflare, Varnish and Sucuri purge add-ons, WP-CLI, settings export and import and Multisite Network Admin are now in Caching Out Pro, a separate add-on installed alongside this plugin.
- Changed: every setting keeps its value across the upgrade, including the settings of features that moved. Nothing is switched on or off by the upgrade. If you have a licence, install Caching Out Pro alongside this plugin and your settings apply again the moment it is switched on; removing Pro later leaves this plugin running with no data loss.
- Changed: the safety layer is identical in both editions and is never gated.
= Earlier versions =
- Versions before 1.21.0 were private pre-release builds and were never published.
Pro
- First release of Caching Out Pro as a separate add-on. Caching Out is now two plugins: the free edition on WordPress.org, and this add-on installed alongside it.
- Pro adds Optimize CSS delivery, combine CSS and JS, delay JS, Google Fonts (combine and self-host), WebP serving, YouTube click-to-load, Unused CSS/JS, the Activity record with revert, the assistant, Performance Insights, cache preloading, custom exclusion rules by URL, cookie and user agent, scheduled database cleanup with orphaned metadata and table optimisation, CDN rewriting, the Cloudflare, Varnish and Sucuri purge add-ons, WP-CLI, settings export and import, and Multisite Network Admin.
- Changed: if you upgraded from a single-plugin version, every setting keeps its value. Nothing is switched on or off by the upgrade, and an install that predates the split is treated as already switched on.
- Changed: Pro is installed but not switched on until your licence switches it on. In that state it scans and audits and changes nothing for visitors; a lapsed licence never switches anything off.
- Changed: deactivating Pro leaves the site on the free plugin with no fatal and no data loss.