Changelog#
Versions and their contents are taken from the version markers in the code comments and from the project's notes. Dates are given by month.
Unreleased#
- Responsive images on sites behind a TLS proxy. The uploads-URL test in
BB_Cache_Boost::attachment_id()compared URLs including their scheme. WhereWP_HOMEishttp://but attachment URLs print ashttps://(a proxy in front,is_ssl()true), no image matched, so pages kept full-size originals with nosrcset. Both sides are now compared without the scheme. - Lookup misses are no longer cached for a day. The
bb_cache_att_maptransient keeps hits only; a miss is remembered for the current request and retried on the next render, and a0stored by an earlier version is looked up again.
0.3.0 (2026-11)#
Cloudflare integration.
- Purge mirror. New
inc/class-cloudflare.php. Every page-cache purge is repeated at the Cloudflare zone: the purged URLs (30 per API call) or one purge-everything, queued during the request and sent at shutdown. Settingscf_purge,cf_zone,cf_token,cf_purge_mode. - Credentials from constants.
BB_CACHE_CF_ZONEandBB_CACHE_CF_TOKENinwp-config.phptake precedence over the settings, so the token need not be stored in the database. - Edge headers. New setting
cf_edge_ttl. Responses the page cache serves or stores carryCache-Control: public, max-age=0, s-maxage=<ttl>; every other front-end HTML response is markedprivate. The value is mirrored intoconfig.phpfor the drop-in and into the.htaccessblock. - Cloudflare tab. Status line, Verify token, Check the edge, Purge everything at Cloudflare, the purge log (last
20 calls, option
bb_cache_cf_log), warnings for the mobile and WebP variants, and the Cache Rule to create on the zone. - WP-CLI. New
wp bb-cache cloudflare <verify|purge|check|log>.wp bb-cache purgereports the outcome of the edge purges it caused. - Purge event for uncached URLs.
bb_cache_purgednow fires for a URL even when nothing was stored for it, so Varnish and Cloudflare are purged for URLs that had already expired or been purged locally. - Uninstall also deletes the
bb_cache_cf_logoption.
Fixes in the same release:
- Varnish. A post save no longer ends with a full regex purge: the
postsummary event is ignored and only the per-URLPURGErequests are sent. wp bb-cache purge --minifiedalso purges the cached pages, which reference the files it deletes.- Missing-fragment marker. The
<meta name="bb-critical">tag is followed by a real line break instead of the characters\n. - Drop-in. Two debug query flags of the originating theme were removed from
inc/serve.php; any parameter that is not on the allow list already bypasses the cache.
0.2.1 (2026-11)#
Security hardening before the first production install, plus fixes to the critical CSS composer.
- Host allow-list. The drop-in serves and stores only for the site's own host name, with and without
www.(hostsinconfig.php, filterbb_cache_hosts). A strayHostheader getsMISS (host)and creates no cache folder. The list is derived only in trusted contexts, never on a front-end request. - Purge path guard. Purging a URL resolves the target with
realpathand refuses anything outside the page cache folder. - CSS and JS only. Combining and inlining are limited to stylesheet and script files. In the 0.3.0 code the
.cssextension is enforced for stylesheets; scripts are selected by tag and type without an extension check. </styleescape. An inlined stylesheet has any</styletext escaped so it cannot end the element..htaccesstoken filter. Only plain cookie-name tokens fromreject_cookiesare written into the rewrite block.- Config self-heal. A
config.phpwritten by another plugin version is rewritten on the next request, keeping its host list, so new config keys are live after an update without a settings save. - Critical CSS composer. Layout names are read from markup only, never from the selectors of an inlined
stylesheet; a name stops at a
--modifier; a layout without a fragment counts as covered when the same section also carries a layout that has one; the missing-fragment marker is a<meta name="bb-critical">tag, because HTML minify removes comments.
0.2.0 (2026-11)#
Render-path work for mobile performance.
- Per-page composed critical CSS. The inline CSS is composed from
base.css, onesection-<layout>.cssfragment per section layout found in the page's HTML,masthead.cssand an optionalpost-<ID>.css, with duplicate rules removed. A layout without a fragment leaves the page's stylesheets render-blocking. The earlier per-template files are still honoured while the folder has nobase.css. - Page sheets inlined whole. New setting
critical_inline: page-scoped stylesheets are inlined (up to 24 KB each) instead of loaded asynchronously. - LCP preload with
srcsetand a phone candidate. The preload for the first large image carries itssrcsetandsizes. A hero's inline background image is preloaded, with a--bg-mphone-sized candidate under its media query and the full size under the complement. A first-screen<video poster>is preloaded. An image that follows a raster hero background no longer getsfetchpriority="high", and images the theme already preloads are not preloaded twice.
0.1.x (2026-10)#
Initial versions.
- Page cache:
advanced-cache.phpdrop-in,WP_CACHEsetup, variants for HTTPS, mobile and allow-listed query strings, purge on content changes, hourly lifespan sweep, optional Apache rewrite block, VarnishPURGE. - File optimisation: conservative CSS and JS minify, combining of consecutive same-origin files, Google Fonts request combining.
- JavaScript: defer, and delayed execution until the first interaction with a timeout fallback, in third-party-only or everything mode.
- Media: native lazy loading for images and iframes, YouTube click-to-play preview, optional image dimensions.
- Preload:
dns-prefetch,preconnectand font preload tags, hover prefetch, sitemap-driven cache warming. - Heartbeat control per context and emoji script removal.
- Critical CSS in its first form: one
<key>.cssfile per template, withpost-<ID>.cssoverriding it. - The other Boost features, which carry no later version marker in the code: locally hosted Google Fonts, WebP
swap, LCP image preload in its first form, preconnect hints, HTML minify, responsive images, lazy videos and
content-visibility. - Settings screen, admin-bar purge menu, health notices, conflict detection and the
wp bb-cachecommands.