Vibebun Cache

Description

Vibebun Cache speeds up WordPress by serving pages from a static disk cache and trimming what the browser has to download. Cached pages are served by an advanced-cache.php drop-in before WordPress fully loads, so repeat visits are answered in milliseconds.

Every optimization is optional and can be excluded per URL or per handle, and logged-in users bypass the cache by default so editors always see the live site.

Page caching

  • Disk-based full-page cache served through a version-stamped advanced-cache.php drop-in.
  • Separate cache variants for desktop and mobile.
  • Marketing and analytics query parameters (for example utm_*, gclid, fbclid, mc_cid) are ignored when building the cache key, so campaign links reuse the same cached page instead of forcing a fresh render.
  • Configurable cache lifetime and URL/cookie exclusion lists.
  • ?vbcache debug bypass for troubleshooting a single request.

Asset optimization

  • Defer, delay, minify, and combine CSS and JavaScript, with per-handle exclusions.
  • Remove Unused CSS (RUCSS) generation.
  • Self-host Google Fonts and optimize font loading.
  • Media helpers including LCP image preloading and optional emoji script removal.

Site health and delivery

  • One-click database cleanup with a schedulable maintenance task.
  • Browser-cache (Cache-Control/Expires) rules via .htaccess.
  • Optional persistent object cache drop-in.
  • Preload Cache that crawls your sitemap or homepage links to warm the cache.
  • Optional Cloudflare integration and CDN URL rewriting (see External Services).

External Services

This plugin can connect to the following third-party services. Each is optional and is only contacted when the related feature is enabled or configured. No data is sent to any external service by default.

Cloudflare API (api.cloudflare.com)
Used only if you enter Cloudflare credentials and enable the Cloudflare integration. When you purge the cache or the plugin lists your zones, it sends your Cloudflare API token and zone identifier to the Cloudflare API to perform the requested cache/zone operation. No page content or visitor data is sent.
Terms: https://www.cloudflare.com/website-terms/ — Privacy: https://www.cloudflare.com/privacypolicy/

Google Fonts (fonts.googleapis.com and fonts.gstatic.com)
Used only if you enable “self-host Google Fonts.” Your server (not the visitor’s browser) downloads the requested font stylesheets and font files once so they can be served locally afterwards. This request includes your server’s IP address and the requested font names. After download, visitors are served the fonts from your own site.
Terms: https://policies.google.com/terms — Privacy: https://policies.google.com/privacy — Google Fonts privacy: https://developers.google.com/fonts/faq/privacy

All other network requests the plugin makes (Preload Cache, Remove Unused CSS generation, and browser-cache diagnostics) are loopback requests to your own site’s URL and do not contact any third party.

Screenshots

Installation

  1. Upload the plugin to /wp-content/plugins/vibebun-cache, or install the ZIP from Plugins > Add New > Upload Plugin.
  2. Activate the plugin through the Plugins screen in WordPress.
  3. If WP_CACHE is not already enabled, follow the admin notice to enable page caching.
  4. Open the Vibebun Cache settings page and enable the optimizations you want. Start with Page Cache and Browser Cache, then test your site.

The admin interface is a small React app compiled from src-js/ to assets/admin/. The source is included in this package; to rebuild it run npm install and npm run build (see the build script in package.json). No build step is required to use the plugin.

FAQ

Does it cache pages for logged-in users?

No. Logged-in frontend requests bypass the cache by default so administrators and editors always see the live site. This can be changed in the settings.

A page is not being cached. Why?

Add ?vbcache to the URL to bypass and inspect the response headers. Cached responses send X-Vibebun-Cache: HIT; bypassed responses send X-Vibebun-Cache: BYPASS. Reserved paths (admin, REST, feeds, sitemaps, login) and URLs matching your exclusion list are never cached.

Will it break my checkout or cart?

Cart, checkout, account, and similar dynamic pages are excluded automatically, and requests carrying commerce/session cookies bypass the cache.

Does the plugin send my data anywhere?

Not on its own. It only contacts external services for optional features you enable or configure. See the External Services section below.

Reviews

There are no reviews for this plugin.

Contributors & Developers

“Vibebun Cache” is open source software. The following people have contributed to this plugin.

Contributors

Translate “Vibebun Cache” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.

Changelog

0.2.8

  • Fixed Shrink Inline CSS dropping the space before a pseudo-class or pseudo-element, which changed what the selector matched — .wp-block-post-featured-image :where(img) became .wp-block-post-featured-image:where(img). Also affected :hover, :is(), :not(), ::before, and generated Used CSS.
  • Fixed Shrink Inline CSS altering text inside quoted strings, such as content: "a , b" and attribute selector values.

0.2.7

  • CSS/JS combining now happens at enqueue time through wp_enqueue_style() and wp_enqueue_script() instead of rewriting rendered HTML. Handles with inline code, localized data, translations, a loading strategy, or a conditional comment are never merged.
  • Generated Used CSS is now added with wp_add_inline_style() on a registered handle instead of being injected into <head>.
  • Fixed local asset paths on sub-directory installs and on sites with a moved uploads, plugins, or themes directory. Paths are now resolved with wp_get_upload_dir(), plugins_url(), get_theme_root_uri(), and content_url(), and the site_url() install path is stripped before falling back to the core directory.
  • The ?vbcache debug bypass now also skips Remove Unused CSS.

0.2.6

  • Security: page caching no longer reads, hashes, or stores the WordPress logged-in authentication cookie value. Logged-in requests are detected by cookie name only and are never cached; the advanced “cache logged-in users” option has been removed.
  • Fixed local asset path resolution to map wp-content assets through WP_CONTENT_DIR (via content_url()), so custom or symlinked content directories resolve correctly for CSS/JS combine and Remove Unused CSS.

0.2.5

  • Fixed the object cache drop-in template being omitted from the distributable package, which prevented object caching from installing on packaged sites.
  • Fixed cache and drop-in files being written non-atomically; they are now written to a temp file and atomically renamed so readers never see a half-written file.
  • Fixed the scheduled database cleanup being lost after deactivating and reactivating the plugin.
  • Fixed a PHP 8.4 implicitly-nullable parameter deprecation notice in the debug bypass detector.
  • Included the admin UI source (src-js/) and documented the build for source availability.

0.2.4

  • Unified the page-cache key logic used by the advanced-cache.php drop-in and the in-WordPress writer into one shared module so read and write paths can never disagree.
  • Fixed subtle read/write cache-key mismatches (host trimming, encoded paths, logged-in cookie fingerprinting) that could turn a cached page into a permanent cache miss.

0.2.3

  • Fixed pages being served uncached when visited with marketing/analytics query parameters such as mc_cid, gclid, gad_source, fbclid, msclkid, and similar.
  • Page caching now always ignores a built-in list of tracking parameters when building the cache key; configured parameters are merged with it rather than replacing it.

0.2.2

  • Fixed a race condition where concurrent frontend requests could corrupt the root .htaccess file and drop WordPress rewrite rules, breaking pretty permalinks.
  • Added exclusive file locking to all plugin file writes to prevent concurrent write corruption.
  • Fixed uninstall leaving the Vibebun Cache browser-cache block in .htaccess after plugin deletion.

0.2.1

  • Fixed Plugin Check findings by tightening admin input sanitization, centralizing diagnostic writable checks, documenting intentional maintenance exceptions, and excluding development-only files from production packages.

0.2

  • Improved cache safety, preload visibility, admin troubleshooting, and frontend optimization compatibility.

0.1.0

  • Initial scaffold with bootstrap, lifecycle hooks, support services, and drop-in template.