NimbleCache changelog
Every version, newest first, with the date it was released. Updates install from your Plugins screen.
1.7.0
- New Pages can open before the click. Settings → Open Pages Before the Click chooses when a visitor's browser starts loading the page behind a link: as the pointer rests on it, as it is pressed (WordPress's own default), or only once it is clicked. The cart, the checkout, account pages, your exclusions, search results and addresses with a query are never fetched early, and signed-in visitors and shoppers with something in their cart get none of it. Your site keeps what it did until you choose, and the Dashboard offers the faster choice once. On WordPress before 6.8 NimbleCache adds the same rules itself, and with the Speculative Loading plugin active that plugin stays in charge.
- Fixed Also clear these pages no longer keeps another site's page. On a site installed in a folder, an address on the same domain outside that folder, and on a network of sites in folders, a page of another site, were saved as a page of this site and cleared nothing here. They are now left out as not on this site, and the screen says why.
1.6.0
- New Move your settings to another site. Settings → Import / Export saves them in a small file another site can read. Whether caching is on and the pages chosen by name stay as each site has them, and importing empties the cache, as saving the Rules screen does.
- New Clear chosen pages whenever anything is published or changed. Settings → Clearing → Also clear these pages takes addresses such as a news page built with a Query Loop. They are cleared, with their later and sorted pages and the cache in front, when a post, page or product is published, edited or taken down, or a category changes.
- Improved Lighter admin screens. NimbleCache's screens no longer load WordPress's Media Library and colour picker, which none of them uses: no media scripts, no 55 KB of templates in each page and no query listing the months that have uploads.
- Improved Faster pages on sites in Spanish or French. The translations now also ship as PHP files, which WordPress 6.5 and later reads from PHP's code cache instead of reading the translation file again on every page. Measured on a French site with all fifteen of our plugins: 6.3 ms and 0.8 MB of memory less on every request. Older WordPress reads the translations as before.
- Improved Opening the plugin's screens asks less of your server. To make switching tabs instant, the plugin loads its other screens in the background while you read the first one. It now loads at most four, the plugin's own tabs first, and none while the browser tab is in the background; a tab past the fourth loads as your pointer reaches it.
- Fixed Signed-in visitors are never cached, whatever the settings say. A hidden setting no screen showed could be switched on from WP-CLI or code, and then a page built for a signed-in person, with their name and toolbar, was stored for everybody. It is gone, and a site that had it on has its cache emptied once after the update.
- Fixed Saving the Rules screen no longer changes settings it does not show. Each save switched that hidden setting off and rewrote the line endings of its lists. Saving any screen as it stands now leaves every setting as it was.
- Fixed Notes that should be hidden stay hidden. A hint or note a screen had hidden could still show, because the style that lays hints out outranked the browser's own rule for hidden things. Hidden things on the plugin's screens now always stay hidden.
1.5.2
- Fixed Clear the whole cache asks LiteSpeed Cache to empty its pages only. It pressed LiteSpeed's Purge All, which also deletes its combined CSS and JS files, empties the object cache and PHP's code cache, clears Cloudflare where LiteSpeed is set to, and leaves "Purged all caches successfully." on your next screen. LiteSpeed's own Purge All button still empties all of those.
- Fixed A Diagnostics check run under 1.5.0 is now read the way a new check reads it. On a site behind CloudFront, the Integrations screen said to clear that cache in your host's control panel, or, with a plugin that clears your host's cache active, the Dashboard gave no warning at all, until Diagnostics was run again. Both now name CloudFront and say to create an invalidation in your AWS account, without a new check.
Earlier versions
September 2026 31 versions
1.5.1
- Fixed An address in another alphabet under Excluded URLs now leaves out that page, and nothing else. Pasted from the browser, an address such as /контакты/ was saved as //, which stopped your front page being cached instead, and a section such as /блог/ as //, which stopped every page being cached. Addresses are now kept as pasted and match however the browser writes their letters. A line saved before keeps doing what it did: if Excluded URLs holds /, // or //* that you did not mean, delete it and paste the address again.
- Changed A cache in front of your site that does not say whose it is no longer counts as cleared just because Cloudflare's plugin, Kinsta or LiteSpeed Cache is active, since none of those can reach it. Diagnostics then says NimbleCache cannot clear it, Integrations says what to do, and the Dashboard warns. CloudFront and QUIC.cloud are now named from their own headers.
- Fixed With LiteSpeed Cache 4.4.2 or later, saving a post no longer leaves a "Purge url" notice for every page.
- Fixed What NimbleCache says about the cache in front appears only where it belongs: per site on a network, and not repeated after that cache's plugin was switched off. Editors and shop managers are now shown the note when it could not be reached after their change.
- Fixed Diagnostics reads WP Engine's cache correctly.
1.5.0
- Improved Clearing a page also asks the cache in front of your site to clear it. Where Cloudflare's plugin, Nginx Helper, Proxy Cache Purge, SiteGround Speed Optimizer, Breeze's Varnish, LiteSpeed Cache, Kinsta or WP Engine is active, every page NimbleCache clears is passed on to that cache too. A post save and a checkout do not wait for it, the Clearing Log says which caches were asked, and Diagnostics quotes the header a cache in front of the site sent, naming that cache where the header says whose it is. Also clear the cache in front, on the Integrations screen, switches this off.
- Changed Clear the whole cache also clears the whole cache in front of your site. Pressing Clear the whole cache in the toolbar or on the Dashboard, or running wp nimblecache purge, now also empties that cache; behind Cloudflare that includes the images, scripts and styles it holds. The Dashboard's button is now called Clear the whole cache and names the caches it will also clear. A whole clear NimbleCache makes by itself never empties the other cache.
- Fixed A page you save again while the preloader is warming it goes back to the front of the list, and a copy stored during your save is cleared and warmed again on the next run.
1.4.3
- Fixed A page you edit is usually warmed first even when the preloader is busy. A preload batch running when you saved a post, or emptied the whole cache, wrote back its own copy of the pages to warm and threw away the pages your save had put first. The batch now reads the list again just before it writes it back. A page saved a second time while the batch was warming it could still lose its place until 1.5.0.
- Fixed Older Clearing Log entries no longer name an administrator for a background job's clear. An entry from versions 1.4.0 to 1.4.2 whose reasons are all ones a job can give is now listed with nobody. That also removes the name from such an entry that really was a person's, since those versions did not record the difference; an entry for something only a person does, such as Clear the cache, keeps its name.
1.4.2
- Fixed Clears made by background jobs are no longer put down to an administrator. From this version on, a whole-cache clear made by an Action Scheduler job, the queue WooCommerce and many other plugins use, is listed with nobody, even when an administrator's visit to wp-admin set the job running. Countdown Timer's clear when a WooCommerce sale starts is one example. Entries already in the log kept the name they were written with until 1.4.3.
1.4.1
- Fixed The Clearing Log names only people who work on the site. A clear made while a customer or subscriber is signed in, or by one of WordPress's own scheduled tasks, is listed with nobody (a background queue job from 1.4.2), and older entries no longer show a customer's name.
1.4.0
- New See what emptied the cache. The Dashboard lists the last 30 times the whole cache was cleared from your site, why, and who was signed in, so a plugin that keeps clearing it is easy to spot.
1.3.1
- Fixed French counts zero in the singular. French writes "0 message", not "0 messages", and the plugin's French now counts the way WordPress's own French does.
1.3.0
- New The Dashboard says why pages were built but not cached. A new Pages Not Stored panel lists what stopped pages being kept in the cache over the last seven days, busiest first, and names the cookie behind it, including PHPSESSID when a plugin starts a PHP session. Each line shows up to three addresses where it happened and a Check an example button that opens Diagnostics on one of them, and once you have fixed the cause, Clear these samples empties the panel so you can see whether the fix worked. The figures are samples, at most one page a minute, and keep an address without its query string and a cookie's name, never the cookie's value or anything about the visitor;
wp nimblecache statusprints the same lines. - Improved Diagnostics names the cookie that kept a page out of the cache. Where it used to say only that the page set a cookie or asked not to be stored, it now says which cookie and tells you to find the plugin that sets it, and for PHPSESSID it adds that PHP sets this cookie when a plugin starts a session. The
X-NimbleCacheresponse header names it too, for exampleBYPASS no-store (PHPSESSID).
1.2.11
- Fixed
wp nimblecache repairsays when it cannot write the settings file. The settings file sits in the cache folder and the drop-in inwp-content, so after a move to a new server one can be written while the other is refused. The command still said both were rewritten, and a settings file left over from the old server kept its old paths. It now stops with an error that names the file it could not write. - Fixed Licensing and updates run on the newest licence code on your site. With several of our plugins on one site, all of them now use the newest licence code any of them carries, whatever order WordPress loads them in. One exception: while the first of our plugins that WordPress loads (usually the alphabetically first) is on a version from before this update, its older code still serves them all until that plugin is updated too. An older plugin of ours can also no longer stop this plugin's admin screens loading.
1.2.10
- Fixed
wp nimblecache preloadcarries on from where the last run stopped. Every run threw the queue away and rebuilt it from the front page down, so repeating the command warmed the same first few pages over and over and never reached the rest of the site, and it discarded whatever the scheduled preload had already worked through. It now continues with what is left. Add--allto start from the top again, which is what you want straight after a purge. - Fixed
wp nimblecache preloadsays when there is nothing to warm. With caching or preloading switched off on the Settings screen, the command rewrote the queue, warmed nothing and still reported a number of pages as though it had. It now stops and says which of the two switches is off. - Fixed Test an Address on the Diagnostics screen now runs. Typing an address and pressing Test address did nothing at all: no report appeared and the box came back empty. The report now appears, and the address you tested stays in the browser's address bar, so a result can be bookmarked or sent to somebody.
- Fixed A licence check that cannot reach us no longer clears your key. One timeout, or one error page from something between your site and us, deleted the licence key you had entered together with the list of sites using it, leaving a screen that asked you to go and find the key again. What is stored is now cleared only when the licence server has actually passed judgement on the key.
- Fixed A key the licence server does not recognise can be typed over. If a key had been reissued or deleted, the notice on every admin page said to enter it again while the licence screen kept the box locked and offered only Deactivate this site. The box now stays open with Activate licence beside it, and the old key's activation count and site list are no longer printed next to a key the server has never heard of.
- New Check again, on the licence screen. Renew a licence, or have support put one right, and one press picks it up instead of waiting for the next automatic check. If the check cannot be made, the screen says why and changes nothing.
- Fixed Deactivate this site, Free and Check again work with the key box empty. None of the three reads that box, but all three were answered with "Enter your licence key first." and no request was made.
- Fixed A page search box left behind no longer drags the screen to the top. Under Specific pages or Excluded pages on the Rules screen, opening the suggestion list and then moving to another screen of the plugin, or pressing the browser's Back button, left the old box still working: every attempt to scroll pulled the page back to the top. A screen you have moved away from now lets go of its search boxes and of its tick lists.
- Improved Repeating a search under Specific pages or Excluded pages no longer goes back to the server. On a site with more pages and products than the plugin holds in the browser, every search was a fresh request, including one typed a moment earlier on the same screen. Answers are now remembered for as long as you stay on that screen. On smaller sites the whole list is already in the browser, so nothing changes there.
1.2.9
- Fixed A page that asks not to be cached is believed in every way it can ask. The cache already stood aside for Cache-Control: no-store and private, but not for no-cache, which is what WordPress itself sends up to version 6.7 and what most plugins send with it. So a members page, a booking page or a page of live figures that refused caching the ordinary way was stored and handed to the next visitor for the rest of its lifetime. An Expires date that has already passed is now read as the same refusal, and when a page refuses in more than one way Diagnostics names the stronger rule rather than whichever header the server happened to send first.
- Fixed A language or currency switch could show the page you had just switched away from. The cache keeps a separate copy of an address for each language and each currency, and a returning browser asks whether its copy is still current in two ways at once: the tag that copy came with, and its date. The date was being answered even when the tag had already said no, so a browser holding the English or euro copy was told it was current and drew that copy again. The tag now decides on its own whenever the browser sends one, as the HTTP standard requires.
- Fixed Behind a CDN, a returning visitor was sent the whole page again instead of the short "nothing has changed". A browser asks whether its copy is still current by handing back the tag that copy came with, and Cloudflare and nginx's compression both mark that tag as approximate when they re-compress the page. The tag was compared letter for letter, so the answer was always "no, here is the page again", and the biggest saving the cache makes was lost on exactly the sites that put a CDN in front of it. The comparison now follows the HTTP standard, and a browser that offers several copies at once, or asks for whatever is current, is understood as well.
- Fixed Front page lifetime now works on a site installed in a sub-directory. On a site at example.com/blog/, and on every site of a network in sub-directories, the setting was saved and shown back on the screen but never applied: the front page was compared against "/" without taking the install's own folder off first, so it kept the ordinary lifetime instead of the shorter one you chose.
- Fixed A page that sends a stale Expires date beside a lifetime of its own is cached again. The HTTP standard says the lifetime wins and the leftover date beside it means nothing, so a page asking to be kept for ten minutes is kept for ten minutes rather than refused on the date above it.
- Fixed A stored page cleared in the middle of a request is sent in full, rather than as an empty reply. If the copy disappeared between the moment it was found and the moment it was sent, a returning browser could be told its own copy was still current when there was nothing left to compare it with.
- Improved A long list of pages named in your caching rules costs one database query instead of one each. On sites running WPML, every page named under Specific pages or Excluded pages was read from the database on its own, on every view of a post or page. They are read together now, and a site without WPML is unaffected.
- Fixed Pressing "Check again" on the Updates screen looks for a new version straight away, even just after the site had trouble reaching us. One minute of blocked outbound traffic used to shut the button for every one of our plugins for a quarter of an hour.
1.2.8
- Fixed Switching the plugin off for a whole network, or deleting it, stops its background jobs on every site of the network.
- Fixed Deleting the plugin cleans up a cache folder moved in wp-config.php. The cached pages and the settings file there are now removed too. Files in that folder that belong to something else are left alone.
1.2.7
- Improved Fewer database queries on every admin page. Each of our plugins checks its licence on every admin screen, to know whether to show the licence notice, and read its saved licence and its "Remind me later" flag with a query each. With the whole range installed that was thirty separate lookups on every admin page, most of them for rows that do not exist yet. They are now read together in one query (on WordPress 6.4 or later). Measured on a test site with all fifteen plugins: the WordPress Dashboard went from 41 queries of ours to 12.
1.2.6
- Fixed Every cron run wrote a PHP warning into the error log. WordPress's cron runner finishes its answer before loading anything, and the cache's early file then tried to add a header to an answer that had already gone: "Cannot modify header information", once per run, on any site that logs warnings. The early file now stands aside for any request that has already been answered.
- Fixed An update never brought the new early file with it. The cache's file in wp-content (advanced-cache.php) was written when the plugin was first switched on and never again, so a site kept its first copy through every update, and the dashboard asked you to press Install to get the current one. The first admin page after an update, or the hourly cleanup, now replaces our own out-of-date copy. A file that belongs to another caching plugin is still never touched.
1.2.5
- Improved One update check for all of our plugins on a site, instead of one each. Every plugin of ours used to ask our server about updates separately — fifteen requests in a row on a site with the whole range, twice a day and every time you press "Check again". The first plugin asked now asks for all of them at once, and the rest read the answer. Measured on a site with all fifteen: fifteen requests became one, and the whole check took a third of a second. If our server refuses or cannot be reached, every plugin waits the same fifteen minutes before trying again, rather than each trying in turn.
1.2.4
- Fixed A wp-admin that would not load when our licence server could not be reached. Each of our plugins checked for its own updates, and if the server was unreachable each one waited out its own fifteen-second timeout — so a site with several of them could spend minutes on a single admin page, twice a day, for something entirely outside its control. The first one to find the server unreachable now says so for the whole site, and the others stand down until it is worth trying again. Measured on a site with fifteen installed: fifteen waits became one.
1.2.3
- Fixed A setting that is waiting on another one is readable again. A field held back until you switch something else on is dimmed, so it does not look identical to one you simply have not used — but it was dimmed so far that its label and explanation fell below the contrast a person with ordinary eyesight needs. Measured on the rendered screen at 2.55:1 against the 4.5:1 minimum, and now 4.75:1 and 5.02:1. The greying, the sunken background and the blocked cursor carry the rest of the signal.
1.2.2
- Fixed A link could put words of its own into an admin notice. The bar that appears at the top of a screen after an action took its wording from the address, so a link crafted by somebody else could show an administrator a sentence this plugin never wrote. Only the sentences the plugin itself registers are shown now.
- Improved The help text under each setting can be read at a glance. A settings screen is scanned, not read, and several notes here had grown into paragraphs. They say the same thing in a line or two, in Spanish and French as well as English.
1.2.1
- Fixed The Audience panel heading had no icon. It asked for a mark the plugin did not carry, so it drew nothing and sat unmarked beside the panels that were.
1.2.0
- New The Licence screen now shows which sites are using your key. "You have used all your activations" used to leave you to work out which sites those were, in your account, on another tab. Every site on the licence is listed now — the date it was added, when it last checked in, and a Free button beside it — so you can let go of a site you no longer run and put this one on without leaving the page. "Last seen" is the column that decides it: a copy that stopped checking in months ago is the one to free. The list appears on a refused activation too, directly under the key you just typed, with the same buttons. Local and staging copies are listed as well, marked free, so the count adds up.
- Improved Updates follow the activation, not just the key. Freeing a site now really does free it: that site is still told when a new version exists, but it is not handed the download, and its own Licence screen says plainly that it is no longer on the licence and offers to activate again.
- Fixed Two things on the Licence screen were never translated — the screen's own heading, and the "2 of 3" activation count. Both read in your language now.
1.1.31
- Improved Plainer words on every screen, after somebody who runs a shop and has never written code read the whole plugin and said what they could not follow.
- Fixed "Install the fast path" was the button that makes the plugin work, and nothing said what it was. The screens now say that the fast path is what lets a stored page be sent before WordPress starts up, that it needs one file and one line, and that the plugin writes both where it can.
- Fixed Being told to edit wp-config.php yourself, with no idea how. The notice names the file, shows the line, says where it goes, and adds: if you have not edited that file before, send the line to your host and ask them to add it.
- Fixed A search address was reported as "never cached", when search caching is a switch you own. It now names the setting.
- Fixed The disk limit said the least recently used pages go first. They go oldest-written first, which the documentation had said correctly three lines further down.
1.1.30
- Fixed Tabbing onto a "Remove" or "Undo" link showed the wrong ring, or none. Those quiet link-shaped buttons in a table row are WordPress's own kind, and WordPress rings them in its blue with a rule stronger than the one this plugin writes — strong enough that it also cancelled the ring the plugin draws. Somebody working down a screen with the keyboard either saw a colour that belongs to no part of this plugin, or lost sight of where they were altogether. They now wear the same ring as every other control here.
1.1.29
- Fixed Changes made in the Site Editor now clear the cache. On a block theme such as Twenty Twenty-Five, editing the header or footer, a navigation menu, the site's colours or fonts, or a synced pattern cleared nothing, so signed-out visitors saw the old header and colours for up to the whole page lifetime. Saving any of them now empties the cache, and so does editing the text of a widget that is already in place.
- Fixed Page two of the shop, and the shop sorted by price, are now cleared along with the shop. A price cut or a product going out of stock cleared the product and the first page of its shop and categories, while
/shop/page/2/,?orderby=copies and filtered copies went on showing the old price and stock. Every later, sorted or filtered page of a list is now cleared with it, on blogs too. - Fixed WPML and Polylang sites with a domain per language no longer show one language on every domain.
example.comandexample.frshared their cached pages, so whichever language was built first was served to every new visitor and to search engines on both. Each language domain or subdomain now keeps its own pages, and a request for a domain the site does not use is never cached. - Fixed Excluded URLs on the Rules screen now exclude exactly the page you list. The screen says a line is a path, with
for anything, but the fast path treated it as part of an address, so excluding/blog/stopped every post under it being cached./blog/now means the blog page only; to exclude everything under a path, end it with/, as in/members/*. - Fixed When caching cannot start, the Plugins screen and the WordPress Dashboard now say so and why. A read-only wp-config.php, a wp-content folder the server cannot write to, or another caching plugin holding the file used to leave caching off with no word outside NimbleCache's own dashboard. The notice names the reason and offers Install the fast path where that can help.
- Fixed Deactivating another caching plugin now lets NimbleCache take over, as the dashboard promised. The fast path is put back on the next admin page once the other plugin has let go of it, and WP_CACHE is added back if that plugin removed it.
- Fixed The fast path checklist on the Dashboard now says what is true, such as "WP_CACHE is not switched on in wp-config.php", instead of the same sentence with a different icon. A missing requirement is marked with a clear warning cross, and screen readers are told which lines need attention.
- Fixed Purge this page in the toolbar now tells you what it did, on the page you pressed it on, including when there was no cached copy to clear. Pressing it twice no longer clears the wrong address.
- Fixed The toolbar's Cache item now shows whether caching is on, in words as well as with its dot, and it no longer disappears on a phone.
- Fixed With Easy Digital Downloads, a completed or refunded order now clears the pages of the downloads in it. It used to clear an unrelated post that happened to share the order's number.
- Improved Visits from Google Shopping and Google Ads now use the cached page. Click IDs such as
srsltid,gad_source,gbraidandwbraid, and those from HubSpot, Klaviyo, Marketo, LinkedIn, Yandex and X, are now ignored, so each click is no longer a full page build and a cached copy nobody asks for again. A list you have already saved gets the new ones once, and anything you removed stays removed. - Improved The cache is emptied after an update to an active plugin, the theme or WordPress, and when Elementor or Autoptimize regenerate their CSS and JavaScript files, so cached pages no longer link to files that have been deleted.
- Improved With preloading on, a page the cache clears is warmed again about half a minute later, instead of when the preloader next gets round to it. The Settings screen now says how long a full pass over your pages takes.
- Improved On a site where Polylang puts the language in the address, its language cookie no longer stores every page twice.
- Improved Diagnostics gives its address field a name that screen readers announce.
- Improved Admin screens are easier to read: faint help text and switched-off toggles now meet WCAG AA contrast.
- Improved Checkboxes show a clear focus ring when you reach them with the keyboard, and the tick in a ticked box draws correctly on phones.
- Improved A page rule that names a particular page or category now also applies to its translations under WPML or Polylang, and each group of ticks in the page rules is announced by name to screen readers.
1.1.28
- Fixed Deactivating NimbleCache on one site of a multisite network no longer switches caching off for the other sites. The plugin judged whether any site still used it from its own list of sites, which can be incomplete for a while after an update or for a site copied from another. One site leaving could then remove the fast path for every site until a network administrator reinstalled it. It now asks WordPress which sites have the plugin active: the site that leaves loses only its own cached pages, and the fast path is removed only when the last site using it deactivates it, or when it is deactivated for the whole network. It also no longer stays behind when that last site leaves, which it could when another site had lost the plugin some other way, leaving pages served that nothing was clearing.
1.1.27
- Fixed Your wp-config.php is no longer copied to a file anyone could download. Switching the cache on used to save a backup beside wp-config.php as wp-config.php.nimblecache-backup, a name most web servers hand out as plain text: the database password and secret keys, at the same address on every site. The file is now changed in one step with no copy kept, and a copy left by an earlier version is deleted automatically — on the first admin visit after this update, and by the hourly cleanup whether or not anyone signs in.
- Fixed On a multisite network, each site now has a cache of its own. Every site used to share one set of cache settings, taken from whichever site saved last, so on a network of subdomains one site's home page could be served at another site's address, and clearing a page on one site missed it. Each site now has its own settings in the fast path and its own folder of cached pages, clearing one site's cache leaves the others alone, and installing the fast path — which edits the wp-config.php every site shares — is left to network administrators. Deactivating the plugin on one site no longer switches caching off for every other site, while activating or deactivating another plugin for the whole network still clears every site's cache. Pages cached before the update are cleared once, in the background.
- Fixed A multi-currency or multilingual shop no longer shows one visitor's currency to everybody after a fresh install. The currency and language cookies were only picked up when a settings screen was saved, so a new install, or a currency plugin activated later, kept one copy of each page for everyone. They are now picked up on the next admin page, or by the hourly cleanup on a site whose admin nobody opens.
- Fixed Currency and language copies of a page are now cleared along with it. A product going out of stock cleared only the default copy, and the euro, pound or French copies went on showing the old stock and price until they expired.
- Fixed Moving a post back to draft or to the Trash, or changing its slug, now clears the address it was published at. Before, the old page went on being served from the cache for up to its whole page lifetime.
- Fixed WooCommerce price changes made outside the product screen — through the REST API, an import or a stock-sync plugin — and scheduled sales starting or ending now clear the product page. A stock change on one variation now clears its product's page.
- Fixed Cached feeds and XML sitemaps are sent back as feeds and sitemaps rather than as web pages, so feed readers and sitemap styling work on a cached copy.
- Fixed Purge this page in the toolbar now works on a site installed in a folder and on an address carrying a tracking parameter, and says so when there was no cached copy to clear.
- Fixed Diagnostics no longer calls a page cacheable when a rule checked while the page is built refuses it: the cart, the checkout, a choice on the Rules screen or another plugin. It names that rule instead, read from the new X-NimbleCache response header.
- Fixed Emptying the cache no longer deletes every file while you wait. The pages are set aside at once and removed in the background, so saving a menu or a widget on a large shop can no longer time out.
- Fixed Unticking "Clear when a post is published or edited" now stops edits clearing the cache, and "Clear when a comment is approved" now covers edited comments too. Taking a post down still clears it either way.
- Fixed With TRNC_CACHE_DIR set in wp-config.php, the fast path's settings are now written to that folder, where the fast path reads them.
- Fixed Page rules: an excluded URL such as
/contact/now matches on a site installed in a subfolder or on a subdirectory multisite site; "Shop and product pages" now also covers brand and attribute archives; and a rule about the shop, cart or checkout is no longer turned into "Everywhere" while WooCommerce is switched off. - Improved When the fast path is missing, the dashboard now says caching is not running yet, instead of claiming pages were being cached, and its button says what it does: Install the fast path.
- Improved The help pages now use the labels the screens show, and describe the confirmation message and the post-type choice as they actually behave.
- New Preload now on the Settings screen starts warming the cache straight away once preloading is on.
- New Clear cache under each published post, page and product in its admin list clears that page and the pages listing it, without opening it.
- Fixed Activating the plugin from an older WP-CLI or a site-management tool could stop with a fatal error.
1.1.26
- Improved When more than one Traslatability plugin is waiting for its licence key, the admin shows one notice naming them all, each name linking to its own licence screen, instead of a separate notice per plugin at the top of every admin page. "Remind me later" quietens all of them for a week. An expired or revoked licence still gets a notice of its own.
- Fixed "Delete all data on uninstall" now also removes the licence key and the update records, which were left behind in the database.
- Fixed In the search-as-you-type picker, screen readers now hear "1 result" rather than "1 results".
1.1.25
- Improved "Also clear the feeds" is greyed unless feeds are cached — there is nothing to clear from a feed that was never stored.
- Improved A setting can now depend on another field simply being filled in — a date typed, a picture chosen — rather than only on it holding one particular value. Several screens in the range needed exactly that and had no way to say it.
1.1.24
- Improved Values arriving from the browser are now unslashed before use, the way WordPress expects. WordPress adds a backslash in front of every quote and apostrophe in a submitted value, and it is up to each plugin to take them off again. In most places here that changed nothing you could see, because the value was being cleaned in a way that discarded them anyway — but it is what WordPress's own plugin checker looks for, and it removes a whole class of quoting bug before it has a chance to appear. The early cache file is deliberately left out of this: it runs before WordPress has loaded, where the function that removes those backslashes does not exist yet.
1.1.23
- Fixed A user-role rule went on filtering after the screen stopped showing it. The role ticks on Display Rules appear only once "Signed in" is ticked, and whatever had been chosen before that carried on being applied from a panel nobody could see. A site that had once picked a role and then switched to "Signed out only" ended up with two rules cancelling each other out, one of them invisible, and nothing on the screen to explain why nobody was seeing anything. The rule now applies exactly when it is on show.
1.1.22
- Fixed A display rule about something the site no longer has was quietly destroyed. Post types, taxonomies and roles arrive with other plugins and leave with them, and the display rules were checked against whatever happened to be registered at that moment — on every save of every screen. Switch WooCommerce off, change a colour on an unrelated screen, save, and the rule about products was gone. Turning WooCommerce back on did not bring it back, and nothing had said a word. Such a rule is now kept, and shown on the Display Rules screen marked "(not available)" so it can be seen and unticked rather than sitting in the database where nobody can reach it.
1.1.21
- Fixed An image chosen for a setting and then deleted from the Media Library left its number sitting in the field. The picker correctly said "No image selected" while saving the screen wrote the dead number straight back, so the setting could never be cleared by saving.
- Improved Settings that depend on two answers at once now stay greyed out until both are met. Where one greyed group sits inside another, the inner one used to switch its own fields back on whenever its own condition was satisfied, whatever the group around it had decided. No screen in this plugin is arranged that way today; the safeguard is in place before one is.
August 2026 22 versions
1.1.20
- Improved "Basket" is now "Cart" throughout, matching WooCommerce. The Integrations and Diagnostics screens say "The cart, the checkout and the account pages are never cached".
1.1.19
- Improved Every screen has been reworded to WordPress conventions. The rules screen reads "Cache on", "Exclude", "Query parameters" and "Cookie names", the expiry toggles read "Clear when a post is published or edited", and "cleared" replaces "thrown away" throughout. Nothing about what is cached has changed.
- Improved Spanish and French translations updated to match.
1.1.18
- Fixed In the section bar's two-row layout, the first section now lines up with the plugin icon above it, and the sections fill the height of their row instead of sitting against the top edge.
1.1.17
- Fixed The section bar no longer breaks onto a second line when a plugin has several sections. It is two tiers by default — the plugin name and the Documentation button on top, the sections on a full-width row beneath — and collapses to one row where everything fits.
1.1.16
- Improved Field labels are shorter and every save button reads "Save changes", matching WordPress itself.
1.1.15
- Improved Every screen has been reworded to WordPress conventions. Section names, field labels and help text are shorter and say plainly what they do, and a save now answers "Settings saved." rather than describing what was saved. Nothing about how the plugin works has changed.
1.1.14
- Fixed The changelog inside the plugin listed only a handful of the releases there have been. It is generated from the same source as the one on the website now, so "View details" on the Plugins screen shows every release rather than stopping months ago.
- Improved Every changelog entry says what kind of change it is: new, improved, fixed or removed.
1.1.13
- Fixed "Keep a page for" now saves. Every value was refused, including the one already stored, so the setting could not be changed at all.
- Fixed Unticking the last box in a group of page rules now clears it.
- Improved A page chosen in one list can no longer also be chosen in the other.
1.1.12
- Fixed A stylesheet a screen sends deliberately switched off is no longer switched on when you move between tabs.
1.1.11
- Fixed The floating Save button comes back after changing tabs. It appeared on a freshly opened screen and never again once you moved between tabs.
1.1.10
- Fixed A site that cannot reach the update server now waits a few minutes before asking again, instead of asking on every admin page load. Nothing changes when the server is reachable; pressing "Check again" still asks at once.
1.1.9
- Improved Saving now says what was saved. Every screen answered with the same word — “Saved.” — which tells you the one thing you already knew, that you pressed the button. Each screen names what it kept.
- Improved The confirmation message has no close button and more room at both ends: it leaves on its own after four seconds, and clicking anywhere on it dismisses it.
1.1.8
- Improved Confirmation and error messages are easier to see: rounder, and coloured by what they are saying — green for saved, red for something rejected, amber for something to look at — each with a mark of its own.
- Improved A licence message now looks like one. Activating a key answered in an unmarked grey box, whatever it said; it carries the right colour and a mark like every other message on the screen.
- Improved A licence key that could not be a key is refused on the spot, without a request to the licence server and without reloading the screen. An empty box used to mean a wait, and on an offline site it meant being told the licence server could not be reached.
- Improved A key pasted out of an email in lower case, or with the dashes lost, is put right rather than reported as wrong.
1.1.7
- Fixed Confirmation messages line up properly and sit on rounder corners: they were top-aligned with the text nudged down two pixels to meet the icon, which on a one-line message read as a misalignment because it was one.
1.1.6
- Improved Confirmations are easier to see. The message after a save is bordered in the colour of what it is telling you, sized to the words rather than stretched to a fixed card, and it now says what was saved rather than just "Saved".
- Improved It stays for four seconds instead of three — long enough to read a sentence — and hovering it holds it open.
1.1.5
- Improved Tab changes are instant. The plugin's other screens are fetched quietly in the background while you read the first one, so by the time you click a tab there is nothing left to wait for — tens of milliseconds instead of a second and a half.
- Improved One at a time, never in parallel, started only once the screen you are on is ready and the browser says it is idle, stopped the moment you navigate, and skipped entirely on a metered connection.
1.1.4
- New An admin that never reloads. Every screen arrives without a page load and every save happens where you are standing — and the screen you are heading for is usually already fetched, because moving a pointer to a menu item takes long enough to fetch it.
- New Saved, and told so where you are looking. A save answers in a small message in the top-right corner that clears itself after a few seconds, instead of reloading the page and putting a notice above the header.
- Improved It is an enhancement, not a dependency: if a fetch fails or scripting is off, links navigate and forms submit exactly as they always did, and the server side is unchanged.
1.1.3
- Improved Notices redesigned: a quiet bordered card at 14px with the tone carried by a tinted icon, rather than a block of colour in coloured type.
- Improved The Rules screen back in two columns, split by what the question is: which pages on the left, the technical exceptions on the right.
- Fixed Three custom properties that were misspelt in the stylesheet.
1.1.2
- Fixed The pages-cached figure is live again on any normal site. It is counted on the spot when the cache is small enough for that to cost nothing, and read from the last full measurement when it is not — so emptying the cache and then looking at the dashboard no longer reports nothing cached while pages plainly are.
1.1.1
- Improved Built for a very large site. Every job over the cache — counting it, weighing it, expiring old pages, trimming to a size ceiling — now streams one folder at a time instead of listing every file at once. A million cached pages cost the same memory as a hundred; before, that list alone was more than a shared host's whole memory limit.
- Improved The dashboard no longer walks the cache while you wait. It reads a remembered measurement, refreshed by cron where there is time. Emptying the cache used to count a million files just to tell you how many went.
- Improved A sitemap index is read a few children per run, from where the last run stopped. A shop with five hundred child sitemaps was five hundred requests to its own server inside one cron tick.
- Improved Notes redesigned — a white card with one coloured rule and text you can read, rather than a tinted block in tinted type.
- Improved The Rules screen reorganised: the two halves of the question stacked full width so neither is squeezed, and the technical exceptions grouped in a row of their own.
1.1.0
- New Choose which pages are cached. A new Rules screen answers it from both ends: cache everywhere, the front page only, shop and product pages, or exactly the post types, archives and individual pages you tick. Same control as every other Traslatability plugin.
- New A new Integrations screen naming what it found on your site — WooCommerce, Easy Digital Downloads, WPML, Polylang, TranslatePress — and exactly what it does about each. It reports rather than asks, because a basket page is not cacheable in a way anybody could have an opinion about.
- New Warms pages up from your sitemap. WordPress's own, Yoast's, Rank Math's or a plain
sitemap.xml— the list your site already says matters, withnoindexpages left out. - New Decides its own pace. Reads the memory limit, the execution limit and the load average before any background work, halves its rate on a small host and stands down entirely while the server is busy. Shown on Diagnostics under "What this server can spare".
- New An optional ceiling on disk use, from 250 MB to 10 GB. Over it, the pages nobody has needed for longest are cleared first, a few at a time in the background.
- Fixed Multi-currency shops now cache each currency separately rather than serving the first visitor's currency to everybody.
- Improved One name for one thing: the dashboard and the settings screen both call it warming pages up.
1.0.0
- New First release. Full-page caching that answers before WordPress loads: a cached page costs one file include, one hash and one file read, with no database connection and no plugins loaded.
- New Installs its own fast path —
advanced-cache.phpandWP_CACHE— and says exactly what to do by hand whenwp-config.phpis read-only. - New Purges the page you changed and the pages that list it, not the whole cache.
- New WooCommerce and Easy Digital Downloads handled properly: baskets, checkouts and account pages never cached, stock and price changes purged the moment they happen.
- New Diagnostics that name the rule which stopped a page being cached, then fetch it twice to prove what the server really did.
- New Stampede protection, so a hundred visitors to an expiring page cause one rebuild rather than a hundred.
- New Compressed copies written once, conditional requests answered with 304, and tracking parameters stripped from the cache key.
- New No Redis, no WP-CLI, no SSH and no server modules required. Works on a single site or a multisite network.
- New Spanish and French included.
Pricing
Every plan includes every feature. Choose how many domains, and whether to pay yearly or once.
Pay yearly renews until you cancel
1 domain
One year of updates and support
5 domains
One year of updates and support
Unlimited domains
One year of updates and support
Pay once (lifetime) no renewals
5 domains
Updates and support for as long as we publish it
Unlimited domains
Updates and support for as long as we publish it
- Every plan includes every feature. You choose only the number of domains.
- 30-day refund, no reason needed. Refund policy
- Licence key and download straight after payment, by Stripe.
- A lapsed licence stops updates and support. It never switches a feature off.
- Local, development and staging copies are free and do not count against your domains.
- Yearly plans renew at the then-current price until you cancel. Cancel any time from your account.
- Where tax applies it is calculated at checkout and shown before you pay.