📚 Plugin Documentation

Quickfire Cache & Speed Booster

Complete documentation for the Free and Pro versions — page caching, minification, lazy loading, script optimization, and more.

← Back to all documentation

Requirements

WordPress6.2 or higher
PHP7.4 or higher
ServerApache with mod_deflate and mod_expires for GZIP and browser caching. NGINX works for all features except .htaccess-based rules
License (Free)GPL-2.0-or-later — available on WordPress.org
License (Pro)Perpetual license with updates
External DependenciesNone. No API keys, no third-party services

Installation

Free Version (from WordPress.org)

  1. Go to Plugins → Add New in your WordPress admin
  2. Search for Quickfire Cache and Speed Booster
  3. Click Install Now then Activate

Pro Version

  1. Download the Pro ZIP from your account
  2. Go to Plugins → Add New → Upload Plugin
  3. Upload the ZIP and click Install Now
  4. Activate the plugin and enter your license key
On activation the plugin automatically creates its database table, cache directories, and .htaccess rules. No setup wizard needed.
Important: If you're upgrading from Free to Pro, deactivate the Free version first. Running both at the same time will cause conflicts.

Quick Start

The fastest way to optimize your site:

  1. Go to Quickfire Cache in your WordPress admin sidebar
  2. On the Dashboard tab, click Enable All Free Features
  3. Done — page caching, minification, lazy loading, and all cleanup optimizations are now active

For more control, visit the Caching and Optimization tabs to toggle individual features.

After enabling features, run a Speed Test from the Speed Test tab to see your improvement. Compare before and after results to measure the impact.

Free vs Pro

The free version covers the essentials. Pro unlocks advanced optimizations for maximum performance.

Free Features

✅ Page Caching
✅ GZIP Compression
✅ Browser Caching
✅ Minify HTML
✅ Minify Inline CSS
✅ Minify CSS Files
✅ Minify Inline JS
✅ Minify JS Files
✅ Defer JavaScript
✅ Delay JavaScript
✅ Remove jQuery Migrate
✅ Lazy Load Images/iFrames/Videos
✅ Remove Query Strings
✅ Disable Emojis/Embeds/XML-RPC
✅ Header Cleanup (6 options)
✅ Built-in Speed Tests

Pro-Only Features

⭐ Aggressive HTML Minification
⭐ Aggressive CSS Minification
⭐ Aggressive JS Minification
⭐ Combine CSS Files
⭐ Combine JS Files
⭐ Async CSS Loading
⭐ Critical CSS
⭐ Force No-Cache Headers
⭐ Heartbeat Control
⭐ Preconnect & DNS Prefetch
Pro features are visible in the free version as locked toggles so you can see exactly what you'll unlock before upgrading. Clicking any locked toggle takes you to the upgrade page.

Dashboard & Optimization Score

The Dashboard tab gives you a bird's-eye view of your optimization status.

Optimization Score

A score ring from 0–100 shows how optimized your site is based on which features are enabled. Each feature contributes a weighted point value — page caching is worth the most (20 points), while smaller cleanup items are worth 1–2 points each.

80–100Excellent (green)
60–79Good (teal)
40–59Moderate (yellow)
0–39Needs Work (red)

Below the score, every feature is listed with a checkmark or X showing whether it's active, along with its point value.

Quick Actions

  • Enable All Free Features — Turns on every free feature in one click
  • Disable All Features — Turns everything off
  • Run Speed Test — Jump to the Speed Test tab
  • Clear Cache — Purge all cached pages and minified files

Caching

The Caching tab controls server-level performance optimizations.

Page Cache

When enabled, the plugin saves a full HTML copy of each page to disk. On subsequent visits, the cached file is served instantly without running PHP or database queries.

Enable Page CacheTurn page caching on or off
Cache LifetimeHow many seconds before a cached page expires. Default: 3600 (1 hour). Set higher for low-traffic sites, lower for frequently updated sites

The Caching tab also shows live cache stats: number of cached pages, total cache size, and counts of minified CSS/JS files.

GZIP Compression

Compresses text-based resources (HTML, CSS, JS, XML, JSON, SVG) before sending them to the browser. Typically reduces transfer size by 60–80%. Requires Apache mod_deflate.

Browser Caching

Sets expiration headers so browsers cache static assets (images, CSS, JS, fonts) locally. Return visitors load your site much faster because assets come from their local cache. Requires Apache mod_expires.

Both GZIP and Browser Caching work by writing rules to your .htaccess file. If your .htaccess isn't writable, the plugin will notify you.

Optimization Tab Overview

The Optimization tab contains all frontend optimizations grouped into cards: HTML, CSS, JavaScript, Lazy Loading, Cleanup, Header Cleanup, and more. Each feature is a simple on/off toggle.

Settings are saved per-tab — clicking Save on the Optimization tab only saves optimization settings, not caching settings.

Minification

HTML Minification

Removes HTML comments, excess whitespace, and blank lines from your page output. Reduces page size without affecting how the page looks or works.

CSS Minification

Minify Inline CSSCompresses CSS inside <style> tags in your HTML. Strips comments, collapses whitespace, removes unnecessary semicolons
Minify CSS FilesCompresses external .css stylesheet files. Creates minified copies in /wp-content/cache/ssbc/css/ and serves those instead
Remove Query StringsStrips ?ver= parameters from CSS and JS URLs for better CDN and browser caching

JavaScript Minification

Minify Inline JSCompresses JavaScript inside <script> tags. Strips comments, collapses whitespace. Preserves string literals and JSON blocks
Minify JS FilesCompresses external .js files. Creates minified copies in /wp-content/cache/ssbc/js/. Automatically skips jQuery core to avoid breaking sites
Testing tip: Enable one minification option at a time and check your site after each. If something breaks, disable the last one you turned on.

JavaScript Controls

Defer JavaScript

Adds the defer attribute to script tags. Deferred scripts load in parallel with HTML parsing and execute after the page is parsed, preventing render-blocking. jQuery core is automatically excluded to prevent dependency issues.

Delay JavaScript

Converts script tags into inert <template> elements that only load when the user interacts with the page (mouse move, touch, scroll, keypress, or click). This is the most aggressive JavaScript optimization and delivers the biggest improvement to initial page load metrics.

Delay TimeoutMilliseconds to wait before loading delayed scripts regardless of interaction. Set to 0 to only load on user interaction (with a 5-second safety fallback)
Delay JS ExclusionsOne keyword per line. Any script whose tag or handle contains a listed keyword will not be delayed. Use this for scripts that must run immediately (analytics, consent managers, etc.)
Note: jQuery and jQuery Migrate are always excluded from delay automatically. If a third-party plugin breaks, add a keyword from its script URL to the exclusions list.

Remove jQuery Migrate

Removes the jQuery Migrate compatibility script. Modern plugins don't need it. Saves ~10KB. Only applies on the frontend; the admin area is not affected.

Lazy Loading

Defers loading of media until the user scrolls near it, reducing initial page weight.

Lazy Load ImagesAdds loading="lazy" to <img> tags in post content and thumbnails. Skips images that already have a loading attribute
Lazy Load iFramesAdds loading="lazy" to <iframe> tags. Great for embedded YouTube videos, maps, and third-party widgets
Lazy Load VideosSets preload="none" on <video> tags so the browser doesn't download video data until the user clicks play
Lazy loading uses native browser attributes, not JavaScript. This means zero performance overhead and full compatibility with all modern browsers.

WordPress Cleanup

Resource Removal

Disable EmojisRemoves the emoji detection script and styles that WordPress loads on every page. Saves ~45KB if you don't use WordPress emojis
Disable oEmbedRemoves the oEmbed discovery links and JavaScript. Prevents your content from being auto-embedded on other sites
Disable XML-RPCBlocks the XML-RPC API entirely. Prevents brute-force attacks through xmlrpc.php. Disable this only if you use mobile apps or Jetpack that rely on XML-RPC

Header Cleanup

Remove ShortlinkRemoves the <link rel="shortlink"> tag from your HTML head
Remove RSD LinkRemoves the Really Simple Discovery link (used by older blog editors)
Remove WLW ManifestRemoves the Windows Live Writer manifest link
Remove Feed LinksRemoves RSS feed discovery links from the head
Remove REST API LinkRemoves the REST API discovery link from the head (does not disable the REST API itself)
Remove WP VersionRemoves the WordPress version number from the HTML head and RSS feeds. Prevents attackers from identifying your WordPress version

Speed Test

A built-in speed testing tool that loads your homepage in a hidden iframe and measures real performance metrics.

Metrics Measured

TTFB (Time to First Byte)How long until the server sends the first byte of data
Load TimeTotal time to fully load the page
Page SizeTotal size of the HTML document
RatingExcellent (<1.5s), Great (<2.5s), Good (<3.5s), Moderate (<5s), or Slow (5s+)

Test History

Results are saved to a database table and displayed in a history table so you can track improvements over time. Up to 20 recent tests are shown. Use Clear to wipe test history.

Speed tests measure server-to-browser performance from your current location and connection. External tools like GTmetrix or PageSpeed Insights test from their data centers and may show different results.

Aggressive Minification Modes PRO

Pro unlocks an aggressive mode for each minification type that goes beyond safe compression.

Aggressive HTMLRemoves optional closing tags (like </li>, </p>) that browsers auto-close. Greater size reduction but may break some themes with unusual HTML structures
Aggressive CSSShortens color values (e.g. #ffffff to #fff), removes quotes from URLs, and applies additional safe transformations
Aggressive JSReplaces true/false with !0/!1 and applies additional minification patterns beyond comment/whitespace removal
⭐ Aggressive modes appear as sub-toggles beneath each safe minification option. They require the parent safe mode to be enabled first.

Combine CSS & JS PRO

Merges multiple CSS files into a single file and multiple JS files into a single file, reducing the total number of HTTP requests your site makes.

Combine CSSMerges all enqueued stylesheets into one file. Cached in /wp-content/cache/sbc/css/
Combine JSMerges all enqueued scripts into one file. Cached in /wp-content/cache/sbc/js/
Compatibility note: Combining files can break plugins that rely on specific script load order or conditional loading. Enable one at a time and test thoroughly.

Critical & Async CSS PRO

Critical CSS

Inlines your above-the-fold CSS directly into the HTML <head> so the browser can render visible content immediately without waiting for external stylesheets to download. You provide the critical CSS code in a textarea in the Caching tab.

Async CSS Loading

Loads external stylesheets asynchronously (non-blocking) so they don't delay page rendering. Works best in combination with Critical CSS — the critical styles handle the initial render while the full stylesheets load in the background.

⭐ To generate critical CSS, use a free tool like Critical CSS Generator — paste your URL, copy the output, and paste it into the Critical CSS Code field.

Heartbeat Control PRO

WordPress Heartbeat sends AJAX requests every 15–60 seconds for things like auto-save, login timeout, and real-time notifications. On shared hosting, this can strain server resources.

Disable EverywhereCompletely deregisters the heartbeat script on all pages
Modify FrequencyChange the heartbeat interval (e.g. from 15 seconds to 60 seconds) to reduce server load while keeping functionality
Warning: Disabling heartbeat everywhere prevents auto-save in the post editor and may affect plugins that rely on real-time updates (like WooCommerce admin).

Resource Hints PRO

Tell the browser to start connecting to external domains before they're needed, cutting load times for third-party resources.

PreconnectEstablishes early connections (DNS + TCP + TLS) to specified domains. Enter one URL per line, e.g. https://fonts.googleapis.com
DNS PrefetchResolves DNS for specified domains ahead of time. Lighter than preconnect — only performs the DNS lookup. One URL per line
Preload FontsPreloads font files so they're available immediately when the browser needs them, preventing a flash of invisible/unstyled text
Best practice: Add preconnect for domains you load critical resources from (Google Fonts, CDNs, analytics). Use DNS prefetch for less critical third-party domains.

Force No-Cache PRO

Sends no-cache, no-store, and must-revalidate headers on every response, telling browsers, CDNs, and proxies to never cache anything. Useful during active development or when debugging caching issues.

Do not leave this on in production. It completely disables all caching, including the plugin's own page cache. This is a development/debugging tool only.

How It Works

Page Caching Flow

  1. A visitor requests a page
  2. The plugin checks for a cached HTML file at /wp-content/cache/ssbc/page/{hash}.html
  3. If the file exists and hasn't expired, it's served immediately with an X-SSBC-Cache: HIT header — PHP and database are barely touched
  4. If no cache exists, WordPress renders the page normally, and the plugin saves the output to disk with X-SSBC-Cache: MISS

Minification Flow

  1. For file minification: when WordPress enqueues a CSS/JS file, the plugin intercepts the URL, creates a minified copy in the cache directory, and serves the minified URL instead
  2. For inline minification: the plugin captures the full HTML output using ob_start(), processes all inline <style> and <script> blocks, then outputs the minified result
  3. Pre/textarea/code blocks and JSON script blocks are preserved untouched

Cache Directories

/wp-content/cache/ssbc/page/Full-page HTML cache files
/wp-content/cache/ssbc/css/Minified CSS file copies
/wp-content/cache/ssbc/js/Minified JS file copies
/wp-content/cache/ssbc/critical/Critical CSS files (Pro)

Cache Behavior

What Gets Cached

Only GET requests to the frontend from non-logged-in visitors with no query string parameters.

What Is Never Cached

  • Admin pages and AJAX requests
  • Logged-in users (every logged-in visitor gets fresh content)
  • Pages with query strings (e.g. ?s=search)
  • Search results and 404 pages
  • WooCommerce cart, checkout, and account pages
  • POST requests
  • Cron and WP-CLI requests

Automatic Cache Clearing

The page cache is automatically purged when:

  • A post is saved or updated
  • A new comment is posted
  • The theme is switched
  • Settings are saved in the plugin

Manual Cache Clearing

Clear cache from the Dashboard tab, or use the Clear Cache button in the WordPress admin bar (appears when page caching is active).

.htaccess Rules

When GZIP Compression or Browser Caching is enabled, the plugin writes rules into your .htaccess file wrapped in:

# BEGIN Quickfire Cache Speed Booster ... # END Quickfire Cache Speed Booster

These rules are automatically added on activation/settings save and removed on deactivation. The plugin only modifies content within its own markers and never touches other .htaccess rules.

If .htaccess isn't writable: The plugin will still function for all PHP-based features (page cache, minification, lazy loading, etc.). Only the Apache module features (GZIP and browser caching) require a writable .htaccess.

Troubleshooting

Site layout is broken after enabling minification
  • Disable all minification options, then re-enable them one at a time to find the culprit
  • CSS file minification most commonly causes issues with themes that use @import or relative URL paths
  • Inline JS minification can break JSON-LD or inline configuration objects — the plugin tries to skip application/json blocks but edge cases exist
  • Clear all cache after making changes
Page cache not working (always MISS)
  • Are you logged in? Logged-in users are never served cached pages
  • Does the URL have query strings? Pages with ?anything=here bypass cache
  • Is the cache directory writable? Check that /wp-content/cache/ssbc/page/ exists and is writable by PHP
  • Check the response headers — look for X-SSBC-Cache: HIT or X-SSBC-Cache: MISS
  • Another caching plugin may be interfering. Only run one page caching plugin at a time
GZIP or browser caching not working
  • Check that your server runs Apache with mod_deflate and mod_expires enabled
  • Verify .htaccess is writable (the plugin will warn you if it's not)
  • NGINX does not use .htaccess — you need to add GZIP and caching rules to your NGINX config manually
  • Test with a GZIP checker tool to verify compression is active
JavaScript delay breaks something
  • Add a keyword from the broken script's URL to Delay JS Exclusions (one keyword per line)
  • Common exclusions: analytics, gtag, consent, recaptcha, chatbot scripts
  • jQuery and jQuery Migrate are excluded automatically
  • If delay is too aggressive, use Defer instead — it's gentler
Speed test shows 0s or errors
  • The test loads your homepage in a hidden iframe. If your site blocks iframes (X-Frame-Options or CSP), the test fails
  • Some security plugins block same-origin iframe loading — temporarily disable them to test
  • The test has a 30-second timeout. If your site is extremely slow, it may time out
Conflict with other caching plugins
  • Only use one page caching plugin at a time. Running WP Super Cache, W3 Total Cache, LiteSpeed Cache, or similar alongside this plugin will cause conflicts
  • If switching from another caching plugin, deactivate it first, delete its cache, then activate this plugin
  • Minification and lazy loading features can generally coexist with other caching plugins, but page caching cannot
WooCommerce pages showing stale content
  • Cart, checkout, and account pages are automatically excluded from caching
  • If product pages show stale prices, clear the page cache after making changes
  • For dynamic content (stock levels, logged-in pricing), consider reducing the cache lifetime