GT Performance is a free WordPress cache plugin for blogs and stores.

I built it to cache public pages, remove unused CSS on your server, and connect to Cloudflare Free. Enable the features your site needs. They’re all included.

Open source. No license keys. No site limit. Checkout asks for a name and email, not a card.

Includes cache exclusions for carts, checkout, and customer accounts in WooCommerce, FluentCart, and Easy Digital Downloads.

I run GT Performance on several of my own sites. 70+ other users already run it on theirs.

GT Performance dashboard showing page cache active, Cloudflare connected, and the current cache configuration
The GT Performance dashboard, with cache status and settings in one place.

Designed to eliminate cache anxiety.

Every screen below is the real plugin. Here is what it does for you.

GT Performance page cache settings: origin cache toggle, mobile cache variant, and one-click lifetime presets

Cache pages, not people

Anonymous pages get cached. Logged-in, cart, and account requests stay dynamic. By policy, not by luck.

Explain This Page showing the cache decision, reason code, origin artifact freshness, cache key fingerprint, and Cloudflare expectation for a URL

Ask why, get an answer

Explain This Page shows the policy, the cache key, the file on disk, and what Cloudflare will do with it.

Cloudflare Free rule compiler showing rule budget use, managed-rule drift status, overlapping cache rules, and their exact expressions

Cloudflare Free, fully used

One managed Cache Rule with preview, drift detection, and exact purges. No APO, no Workers, no paid plan.

Unused CSS settings in GT Performance 1.0.10 showing the three CSS delivery modes, the hybrid inline limit, dynamic-state preservation, and the staged rollout control

Unused CSS stays home

Stylesheets are analyzed on your own server in the background, with a staged rollout you can set back to 0% at any time.

GT Performance dashboard with page cache active, Cloudflare connected, current configuration, and one-click purge, Cloudflare sync, and drop-in installers

One screen runs the day

Purge, Cloudflare sync, and drop-in installers live on the dashboard. Publishing a post clears exactly what changed.

Commerce safeguards protecting FluentCart, Easy Digital Downloads, and WooCommerce cart, checkout, account, and session state

Commerce comes wired in

FluentCart, EDD, and WooCommerce bring their own routes, cookies, and purge rules. Checkout is never a gamble.

Everything included. The aggressive parts stay opt-in.

Nothing is held back for a higher tier. Turn layers on one at a time, and turn them off just as easily.

Page cache

core
  • Atomic origin HTML files
  • Fresh, stale, error, and browser lifetimes
  • Automatic publish-time cache clearing
  • Stale revalidation and rebuild queue
  • ETags and conditional responses
  • Mobile variants when HTML differs
  • Preload queue and sitemap warming
  • Exact and related-page invalidation

Cloudflare Free

opt-in
  • Scoped token or Global API Key
  • Zone discovery and optional Zone ID
  • Managed Cache Rule preview and sync
  • Drift and conflict reporting
  • Edge TTL and exact or full purge
  • Free-plan query-key fallback

Unused CSS

opt-in
  • Server-side selector analysis
  • File, inline, and critical-plus-file delivery
  • Dynamic-state preservation
  • Safelists and stylesheet exclusions
  • Background builds and savings reports
  • Deterministic staged rollout

JavaScript

opt-in
  • Local script minification
  • Safe defer controls
  • Interaction or timed delay
  • URL-based exclusions
  • Transactional script protection
  • Ownership conflict controls

Images and embeds

opt-in
  • Non-critical lazy loading
  • Missing width and height repair
  • Critical image priorities
  • WebP and AVIF generation
  • Generated-variant serving
  • Lightweight YouTube previews

Fonts and CDN

opt-in
  • Optional local Google Fonts
  • Configurable font-display behavior
  • Origin-pull CDN URL rewriting
  • Per-extension asset selection
  • Same-site URL safeguards
  • CDN-change cache invalidation

Commerce

core
  • FluentCart safeguards
  • Easy Digital Downloads safeguards
  • WooCommerce safeguards
  • Route, cookie, and query bypasses
  • Product and receipt invalidation

Diagnostics

core
  • Explain This Page
  • Deterministic cache keys
  • Origin artifact inspection
  • Expected edge behavior
  • Verified Purge receipts

Redis object cache

opt-in
  • Guarded drop-in ownership
  • TCP, TLS, and Unix sockets
  • ACL username and password
  • Database and key prefix
  • Connection and read timeouts
  • Standard WP_REDIS constants

WordPress controls

core
  • Heartbeat, autosave, and revisions
  • Emoji, embeds, XML-RPC, and metadata toggles
  • REST, comments, feeds, and Maps controls
  • Manual database scan and cleanup
  • Scheduled bounded maintenance
  • Safe baseline preset

Compatibility

core
  • Automatic analytics detection and exclusions
  • Perfmatters feature ownership
  • Foreign cache drop-in protection
  • Common cache-plugin detection
  • Akismet safeguards
  • Jetpack safeguards
  • Core Forms poll compatibility

Operations and updates

core
  • One-screen dashboard operations
  • Administrator-bar shortcuts
  • WP-CLI doctor and cache commands
  • Durable jobs, retries, and dead letters
  • Redacted local logs
  • Every release free on GitHub

Built and tested for:

FluentCartEasy Digital DownloadsWooCommerceCloudflare FreexCloudRedisPerfmattersEWWW Image OptimizerAkismetJetpackCore FormsSite Kit by GoogleIndependent AnalyticsBurst StatisticsKoko AnalyticsMatomo AnalyticsWP StatisticsMonsterInsightsExactMetricsPixelYourSiteWordPress 6.6+PHP 8.1+

Twelve groups of controls, every one included, free, on every website.

Made for agencies, store owners, and performance nerds.

If you run WordPress sites where checkout matters, this was built for you. And it’s free on every one of them.

Agencies and freelancers

Run it free on every client site, with the same WP-CLI doctor and cache commands on every install. No licenses to track, ever.

Store owners

FluentCart, Easy Digital Downloads, and WooCommerce safeguards are built in. Carts, receipts, and account pages stay private while everything else gets fast.

Developers and tinkerers

Explain This Page, Verified Purge, WP-CLI doctor commands, and redacted logs. When something looks off, you get answers instead of guesses.

Every module documented, in the open.

The GT Performance wiki covers all of it — how the cache decides, what is never stored, every setting and its default, every hook, and a troubleshooting guide organised by symptom. Written from the source, not the marketing.

Start here

  • Installation — requirements, drop-in, and a rollout order that will not break your site
  • Page cache — what gets cached, what never does, and why
  • Upgrading — renamed constants and the pre-1.0.1 migration

Caching

Optimization

  • Unused CSS — pruning rules, three delivery modes, staged rollout
  • JavaScript — minify, defer, and the delay switch to be careful with
  • Media, fonts, embeds — lazy loading, dimensions, self-hosted fonts

Delivery

  • Cloudflare — the managed Free cache rule and exact purges
  • CDN — origin-pull rewriting for static files
  • xCloud — host cache coordination and edge ownership
  • Redis object cache — the owned drop-in and its constants

Operations

Reference

  • WP-CLI — every command and subcommand
  • Settings — every key and its default
  • Hooks — filters and actions for extending it
  • Constants — wp-config.php configuration

One plugin. Free on every website.

GT Performance is free, open source software under the GPL. Every module on every website, personal or client, with no license keys and nothing to renew.

GT Performance

Free

Free download · unlimited WordPress websites, personal or client · every release free, forever

  • Every module included, nothing held back for a paid tier
  • Unlimited websites, yours or your clients’
  • Every release free on GitHub, no license check
  • Commerce safeguards for FluentCart, EDD, and WooCommerce
  • Cloudflare Free page caching, no APO or Workers needed
  • Explain This Page, verified purge receipts, and WP-CLI doctor

For the same job, FlyingPress Business runs $229 a year and WP Rocket Multi runs $299 a year, every year. GT Performance is free. See how the others price it. Competitor prices checked on their pricing pages, July 26, 2026.

Free checkout · download issued instantly, no payment details asked

GT Performance Cloudflare Free configuration with managed rule preview

Open source on GitHub

GPL

GPL-2.0-or-later · full source, issues, and release history in the open

The same plugin you can read before you run it. The repository carries the full source, the changelog, and the test suite. Report bugs or send pull requests; every release is tagged there.

Free under the GPL · star it if it helps you

What free means here

  • Every website, personal or client. Agencies and freelancers included.
  • No license keys, no activation, no website count.
  • GPL-2.0-or-later, the same license WordPress itself uses.
  • Support happens through GitHub issues and the documentation, not a ticket queue.
  • New releases are published on GitHub. The plugin is not in the WordPress.org directory yet.

The same job, priced by everyone else.

Every plugin below is good at what it does. The difference is the invoice: GT Performance asks for nothing, on any number of sites, forever.

Scroll the table sideways to see every column.

PluginFree versionPaid plans, per yearUnlimited sitesLicence key
GT PerformanceEverything, GPLNoneYes, freeNot needed
WP RocketNo free version$59 · $119 · $299No — 50 sites at $299Required
FlyingPressNo free version$59 · $109 · $229 · $279$279 a yearRequired
PerfmattersNo free version$29.95 · $59.95 · $124.95$124.95 a yearRequired
W3 Total CacheYesPro $99 · $350 · $500No — 10 per licenceFor Pro
LiteSpeed CacheYesQUIC.cloud services billed by usageYes, freeNot for the plugin
HummingbirdYesPro through a WPMU DEV membershipMembership-dependentFor Pro

Prices taken from each vendor’s own pricing page on 27 August 2026, in USD, before tax. Plans and features change; check the vendor before deciding. This compares what a licence costs and covers, not which plugin is faster on your site — that depends on your host, theme, and traffic, and you should measure it yourself.

Scroll the table sideways to see every plugin.

FeatureGT PerformanceWP RocketFlyingPressPerfmattersW3 Total CacheLiteSpeed CacheHummingbird
Free versionYesNoNoNoYesPro is paidYesYesPro is paid
Free on unlimited sitesYesNo$299 covers 50No$279 a yearNo$124.95 a yearNo10 per licenceYesYesPro is a membership
Works with no licence keyYesNoNoNoPartlyFree tier onlyYesPartlyFree tier only
Page cache built inYesYesYesNoPairs with a cache pluginYesYesNeeds a LiteSpeed serverYes
Unused CSS removalYesOn your serverYesGenerated off-siteYesYesYesProYesPartlyCritical CSS is Pro
Delay JavaScriptYesYesYesYesYesProYesPartlyPro
Redis object cacheYesNoYesNoYesYesYesIntegration
Database cleanupYesYesYesYesYesYesYes
Open source, GPLYesSource on GitHubNoNoNoYesYesYes

Checked against each vendor’s own pricing page, feature page and documentation on 27 August 2026. Only rows I could confirm for every plugin are listed — vendor feature pages leave things out, so an absence there is not evidence of absence. WP Rocket, FlyingPress, LiteSpeed and Hummingbird all do more than their marketing pages list. Verify anything that decides your purchase.

25 public releases in seven weeks. Here is every one.

Nothing summarized away and nothing quietly dropped. These are the same notes that ship in the readme with every release, newest first.

1.0.10

Installing today9 September 2026
  • Added unused CSS status counts, size savings, build timings, failure details, and manual report refresh on the Optimization tab.
  • Added per-URL, per-result, and full CSS regeneration using bounded background jobs. Active jobs are not duplicated by repeated manual actions.
  • Fixed page-cache and commerce rules blocking authenticated CSS generator requests. Other request protections remain intact, and build responses are never cached.
  • Fixed generator tokens leaking into report URLs and reuse keys. HTTP errors and missing build reports now trigger queue retries instead of false success.
  • Fixed CSS reuse across differing IDs, attributes, and DOM relationships. Forced regeneration invalidates reusable results and purges affected page caches.
  • Statistics now cover all stored reports and exclude stale results and missing files from current savings.
  • Aligned panel padding, report spacing, and regeneration controls, and clarified settings help text.

1.0.8

5 September 2026
  • Adds Safe Mode. Define GTPERF_SAFE_MODE in wp-config.php and every HTML transformation stops and no page is served from or written to the cache, without changing a single setting or touching the drop-in. It is the answer to “something looks wrong and I cannot tell which option did it”.
  • Adds automatic cleanup. Cached pages past their lifetime, entries left unreachable by a settings change, generated CSS and JavaScript nothing has requested in two weeks, and the diagnostic log are now reclaimed hourly, and the cache is capped at a configurable number of entries. Nothing removed cached files before, so one settings save could leave hundreds of megabytes on disk permanently.
  • Adds a “Remove all data when the plugin is deleted” option. The uninstall routine has always been gated on a setting that nothing wrote, so deleting the plugin left its options, database tables, drop-ins, and the Redis credentials file behind whatever you chose.
  • Unused CSS removal works again and is a normal setting on the Optimization tab, off by default. It no longer corrupts inline SVG or non-Latin text, keeps escaped utility class names such as the ones Tailwind generates, passes stylesheets it cannot safely analyze through untouched instead of mangling them, and leaves rel="alternate stylesheet" alone. Generation now happens in the background rather than in a visitor’s page load, and the result is reused across pages that share a template. Measured on a real page: 320 KB down to 101 KB.
  • Removes Fleet Console, Private Islands, Commerce Safety Lab, and CSS Training Mode. The plugin now registers no REST route and no admin-ajax action at all.
  • Product pages now clear when stock or price changes through the shop’s own tools rather than only when the post is saved.
  • Fixed the managed Cloudflare Cache Rule telling the edge to cache responses this plugin marks private. The edge cache lifetime now defaults to respecting your origin’s Cache-Control header. If you set a positive lifetime, the rule is narrowed to requests with no query string, because overriding the origin cannot be made safe for query strings the origin refuses to cache.
  • Removed the WordPress revision limit control. It filtered wp_revisions_to_keep on every site that activated the plugin, whether or not the database module was enabled, so posts lost revision history that could not be recovered.
  • Trashing, unpublishing, or renaming a post now clears its cached page. Previously a withdrawn page kept being served from the cache for the rest of its stale window, and a renamed post kept serving its old URL ahead of the redirect WordPress would issue.
  • Saving settings now clears the page cache. Every save invalidates every stored entry, and nothing removed the unreachable files, so the cache directory grew without limit.
  • The cache capture pipeline no longer runs when the page-cache drop-in is not installed, which is the state directly after activation. It was doing the full render, optimization, and two file writes for a cache nothing could read.
  • Removed the X-GT-Performance-Bypass request header. It was never signed despite its internal name, so any client could force a full uncached render on every request.
  • A full cache purge no longer deletes the .htaccess and index.html files that keep the cache directory unreadable from the web.
  • The private fragments AJAX endpoint is no longer registered when the feature is disabled.
  • Removed the “Remove unused CSS” setting. The engine flattens native CSS nesting, drops @import stylesheets, prunes escaped utility class names such as those Tailwind generates, and runs during the visitor’s request. Those defects were silent and were cached. The engine can still be run by defining GTPERF_UNUSED_CSS in wp-config.php, and returns as a supported feature once generation moves out of the request.
  • GT Performance no longer activates on WordPress multisite. Its compiled configuration and cache directory are shared across a network, so one site’s settings decided another site’s cache behavior.
  • Added a LICENSE file, disclosed the three bundled MIT libraries, and corrected documentation that described WordPress.org as the update authority. The plugin is not listed in the directory yet.

1.0.7

1 September 2026
  • The private island shortcode now escapes its fallback text where it is returned. The rendered output is unchanged; the escaping simply happens at the point of output.
  • The release package no longer ships the extensionless command line wrappers bundled with the minifier library. WordPress.org does not permit them, and the minifier itself is unaffected.

1.0.6

31 August 2026
  • Adds separate controls for the main feed and the secondary feeds. The main feed at /feed/ can stay live and indexable while comment, category, tag, taxonomy, author, date, search, and post type feeds return a 404, and the main feed’s discovery link can stay in the head while the rest are removed.
  • The gauravtiwari.org WordPress preset now keeps the main feed discoverable instead of removing every feed link.

1.0.1 – 1.0.5

26–27 August 2026
  • Fixed a fatal error when updating from 1.0.0 that took the front end and wp-admin down together. If a site is still stuck on it, the repair script is linked from the upgrade guide.
  • Fixed every button and background request in the admin screens returning a blank page, including the License screen. An internal rename had renamed what the controls submit but not the handlers receiving them.
  • Fixed keyboard focus styles being stripped from generated CSS. :focus-visible and :focus-within rules were pruned as unused.
  • Fixed the plugin’s database tables not being recreated after the internal rename, which had broken cache preloading, purge dependency tracking, and CSS generation.
  • Configuration and page-cache metadata are now inert JSON data files. Nothing generates or executes PHP at runtime, and advanced-cache.php ships as a bundled file copied into place rather than generated.
  • Uninstalling with data removal enabled now also removes the cache directory, which previously kept cached pages, logs, and the Redis configuration file on disk.
  • Renamed the internal GTP_ prefix to GTPERF_. If you set GT Performance constants in wp-config.php, rename them; settings saved in the dashboard need no action.
  • Updated the bundled CSS parser to 9.4.0.

1.0.0

24 August 2026
  • First stable release, distributed free through the WordPress.org plugin directory.
  • Removed FluentCart licensing and the custom updater. Updates now arrive from WordPress.org with no license key or activation.
  • Fleet Console now signs policy bundles with a shared signing secret you save on each site instead of a license-derived key.
Show the 6 release candidates, 16 to 20 August 2026

1.0.0-rc.6

20 August 2026
  • Fixed “Remove WordPress version” leaving browsers and CDNs pinned to pre-update core scripts and stylesheets. The version is now masked rather than removed.

1.0.0-rc.5

19 August 2026
  • Fixed the Operations cards sitting flush against the panel edge while the heading above them was inset, and fixed their rows sitting twice as far apart as their columns.
  • Fixed the API token permission list and the dashboard link at the foot of Runtime status hanging outside the panel inset.
  • Panel spacing now comes from a single token, so a block can no longer lose its narrow mobile inset depending on where its rule happens to sit in the stylesheet.

1.0.0-rc.4

19 August 2026
  • Fixed the conflicting cache rules block rendering at 3 different left offsets. Its heading had no styling of its own, so it hung outside the panel inset and stacked a default heading margin on top of the note below it.
  • Fixed the “Or create it automatically” heading in the Cloudflare token panel inheriting browser default type and spacing instead of the plugin’s heading style.
  • Admin notices are now a compact status pill instead of a full-width notice bar. Failures that carry an upstream reason gain a “Why?” disclosure that opens the detail in a popover anchored to the pill, and dismissing one clears it from the address bar so a reload cannot bring it back.

1.0.0-rc.3

18 August 2026
  • Fixed Cloudflare cache rule synchronization failing outright on any site with more than one bypassed query parameter. Each one compiled to its own concat() call, and Cloudflare rejects an expression calling concat more than once, so the managed rule silently stopped updating.
  • Fixed the managed rule always reporting configuration drift on plans without custom cache keys. Drift was measured against a rule shape those plans cannot store, so reconciliation never finished no matter how often it ran.
  • Cache rule conflicts now include rules that never name a hostname. A catch-all rule applies to every hostname in the zone and previously went unreported.
  • Cloudflare failures now show the reason Cloudflare gave, including its numeric error code, instead of one generic message for every kind of failure. Unreachable-API failures are reported separately from rejected requests.
  • Added a Cloudflare connection check that walks credentials, authentication, zone lookup, and cache rule read and write in order and names the stage that fails. The write stage rewrites the managed rule with its own current contents, so it changes nothing.
  • Added an API token panel listing the exact permissions required, a Cloudflare token-creation link, and optional automatic creation of a zone-scoped token when a Global API Key is available. New tokens are exercised before they replace working credentials.
  • A failed synchronization now still records the live rule plan, so the screen shows the current state instead of appearing to have never run.

1.0.0-rc.2

17 August 2026
  • Fixed a fatal “Allowed memory size exhausted” error when updating the plugin. Clearing the update cache ran inside WordPress’s own update-transient deletion hook and could be re-entered by any other plugin listening for deleted transients or options, recursing until PHP ran out of stack.
  • Stopped the updater from repeating the license-server request when WordPress rebuilds the plugin update transient before the first response is cached.
  • Fixed the Redis object-cache drop-in reporting a successful delete for a key it never held, which is what kept the recursion above from settling on sites running the drop-in without a reachable Redis server.

1.0.0-rc.1

16 August 2026
  • Moved WebP and AVIF generation out of media-upload requests and split each source and registered image size into its own durable background job, preventing large uploads from exhausting one PHP execution window.
  • Added automatic EWWW Image Optimizer ownership for next-generation formats, Easy IO, lazy loading, and missing dimensions without disabling complementary upload compression.
  • Added xCloud site discovery, host-cache status and purge routing, independent Cloudflare Enterprise detection, explicit edge ownership, and fail-closed Enterprise purge behavior.
  • Added safe enable-time profiles for Cloudflare, xCloud, static CDN rewriting, Redis, compatibility safeguards, Private Islands, and Fleet while preserving credentials and custom provider values.
  • Added generic CDN and Cloudflare-specific no-store headers to private, commerce, feed, preview, and fragment responses.
Show the 9 public beta releases, 22 July to 4 August 2026

1.0.0-beta-9

4 August 2026
  • Added recommended enable-time profiles for Cloudflare, xCloud, static CDN rewriting, Redis, compatibility safeguards, Private Islands, and Fleet.
  • Recommended profiles fill missing provider values and arm safe dependent options without replacing saved credentials, endpoints, or other non-empty custom settings.

1.0.0-beta-8

4 August 2026
  • Added xCloud Public API site discovery, encrypted token storage, host page-cache status and purge routing, and WP-CLI controls.
  • Added independent Cloudflare Enterprise add-on detection and 12-hour edge traffic reporting without conflating it with xCloud’s free Edge Full Page Cache.
  • Made xCloud the sole edge owner when its Enterprise add-on is active, blocking direct Cloudflare rule synchronization and duplicate purge routing.
  • Enterprise purge fails closed because xCloud’s current Public API token does not authenticate the dashboard-only purge mutation; GT Performance never substitutes the unrelated broad host purge-all endpoint.
  • Added generic CDN and Cloudflare-specific no-store headers to private and bypassed responses as defense in depth. Live testing found xCloud Enterprise Edge Page Caching overrides these directives, so commerce sites must leave that page-cache option off unless equivalent request-level bypass rules are available; static caching and the other Enterprise features can remain enabled.

1.0.0-beta-7

4 August 2026
  • Added URL-specific and site-wide used-CSS regeneration controls to CSS Reports. Regeneration invalidates reports, purges origin and connected edge caches, and warms the selected URL immediately.
  • Added exclusions for inline WordPress style IDs as well as external stylesheet URLs, plus automatic protection for active FluentCart, Easy Digital Downloads, and WooCommerce application styles.
  • Fixed icon fonts and other escaped CSS content values rendering as literal numeric entities in Inline all used CSS mode.
  • Preserved stylesheet source order, asynchronous all-media behavior, custom-property dependencies, dynamic attribute states, and independently parsed stylesheet boundaries during pruning.
  • Made authorized CSS previews private and non-cacheable while still running the real optimization pipeline, and expanded trained compound selectors into reusable ID and class safeguards.

1.0.0-beta-6

31 July 2026
  • Fixed Redis request-local cache coherence so successful writes immediately replace stale values in the same request, including WordPress option aggregates and cron state.
  • Made object-cache add and replace operations atomic with Redis NX and XX writes, including expiration, and made forced reads refresh from Redis.
  • Versioned and automatically refreshed GT Performance-owned object-cache drop-ins after plugin updates without overwriting foreign drop-ins. Upgrades clear only the alloptions, notoptions, and cron entries.
  • Added a Doctor warning and host-specific 5-minute flock runner when request-driven WP-Cron is disabled and scheduled events are materially overdue.
  • Fixed the Cloudflare WP-CLI purge command, exact-URL purging, invalid action handling, URL validation, and queue-limit validation.

1.0.0-beta-5

26 July 2026
  • Fixed cached pages never being rebuilt once they went stale. Between the fresh and stale lifetimes nothing regenerated an entry, so a page could keep serving content as old as both lifetimes combined. Stale pages are now swept and rebuilt in the background.
  • Fixed the Redis object cache clearing nothing when the cache key prefix contained a pattern character such as [, ? or *. WordPress security salts routinely contain these, so “Purge GT cache” and wp cache flush could report success while leaving every entry in place.
  • Fixed a Redis disconnect during a group flush taking the page down with a fatal error instead of degrading to a cache miss.
  • Fixed the background queue stopping permanently and silently if its scheduled event was ever lost. It is now restored automatically.
  • Fixed a just-rebuilt page briefly reporting as stale because its metadata was still held by the PHP opcode cache.
  • Moved purge, Cloudflare sync, and the drop-in installers from Tools onto the dashboard, and each now returns to the screen it was run from.

1.0.0-beta-4

23 July 2026
  • Added configurable automatic cache clearing after public content is published or updated, with related-page, post-only, entire-cache, and disabled modes.
  • Expanded related-page clearing to author and public taxonomy archives, and stopped revision cleanup from triggering unintended homepage purges.

1.0.0-beta-3

22 July 2026
  • Added automatic compatibility detection and JavaScript exclusions for Independent Analytics, Burst Statistics, Koko Analytics, Matomo Analytics, WP Statistics, Site Kit by Google, MonsterInsights, ExactMetrics, and PixelYourSite.

1.0.0-beta-2

22 July 2026
  • Fixed cache eligibility when a server exposes an empty Authorization header, while preserving the bypass for real authorization credentials.
  • Added an optional origin-pull CDN URL with exact static-file extension controls, same-site URL safeguards, and cache invalidation when CDN settings change.
  • Added official Cloudflare links for creating a scoped token, finding a Global API Key, and locating a Zone ID.
  • Improved settings spacing, field grouping, labels, help text, and mobile layout consistency.

1.0.0-beta-1

22 July 2026
  • Fixed a cache-safety gap where the public Cache-Control header was sent before the response was validated; private responses (Set-Cookie, non-200, or DONOTCACHEPAGE) can no longer be stored by a shared or edge cache.
  • Fixed scheduled database-cleanup task selections so deselected destructive tasks are no longer silently restored on save.
  • Fixed commerce bypass paths so checkout, cart, and account stay uncacheable on no-trailing-slash permalink sites, at the origin and the Cloudflare edge.
  • Fixed inline script, JSON-LD, and stray XML-node corruption in the server-side CSS, font, and embed optimizers.
  • Fixed CSS Training Mode to keep escaped utility-class selectors, root-relative url() rebasing, and Cloudflare drift detection and query-parameter matching.
  • Fixed comment lifecycle invalidation, batched related URL purges, and cleared both desktop and mobile origin variants.
  • Fixed deferred response validation so eligible pages can progress from MISS to HIT, and renamed the WP-CLI target option to --page-url.
  • Wired the Cloudflare edge lifetime control into the managed Cache Rule.
  • Added Vary: User-Agent for mobile cache variants, honored the stale-on-error setting, bounded queue growth, hardened cache directories, and auto-refreshed the drop-in after updates.
  • Added same-origin sitemap-driven cache warming after a full purge, with a wp gt-performance cache warm command.
  • Clarified technical labels, added accessible brief tooltips for risky settings, and removed unsupported placeholder controls.

12 internal alpha builds came before these, on 18 and 19 July 2026. They are listed in the readme file inside the download. There is no 1.0.9; the number was skipped between 1.0.8 and 1.0.10.

What just shipped, what is planned, and what I will not build.

No dates. A build ships when it passes its gates on my own sites, and quarters on a roadmap are only guesses dressed up as promises.

Recently shipped

1.0.1 – 1.0.5

  • A fatal on upgrade, fixed. The cache drop-in written by 1.0.0 loaded a file list the new release had moved, which took the front end and wp-admin down together. 1.0.1 also stopped the plugin generating or executing any PHP at runtime.
  • Every admin control, fixed. An internal rename in 1.0.1 renamed what the buttons submit but not the handlers receiving them, so they returned a blank page. 1.0.2 and 1.0.3 reconnected all of them, and a test now asserts both sides against each other.
  • Keyboard focus styles stopped disappearing. :focus-visible and :focus-within rules were being pruned out of generated CSS as unused.
  • Uninstall cleans up properly. With data removal enabled, 1.0.5 also removes the cache directory instead of leaving cached pages, logs, and the Redis configuration behind.
Next up

Planned

  • Multisite controls. Network-level settings with per-site overrides. Today the plugin is configured one site at a time.
  • Translation-ready. Every string wrapped and a POT file in the package.
  • A real fallback for AVIF and WebP. Modern formats get wrapped in <picture> so a browser that cannot decode them takes the original instead.
  • Generated CSS gets collected. Used-CSS artifacts that no page references any more are removed on a schedule rather than accumulating on disk.
  • Safer JavaScript defer. Inline jQuery calls excluded by default, so deferring scripts cannot break a theme that inlines them.
  • Image dimensions from the size actually rendered. Cropped sizes currently inherit the dimensions of the full-size file.
  • Destructive CLI commands ask first. wp gt-performance database run gets a confirmation step and honors the retention setting.
On purpose

Not planned

  • Core Web Vitals scoring. It existed in an early alpha and I took it out. Field data belongs in tools built for it, and a performance plugin grading its own work is not evidence.
  • AI recommendations. Every diagnostic returns a reason code and the evidence behind it. A confidence score is not an explanation.
  • Paid Cloudflare as the happy path. APO, Workers, Argo, and Cache Reserve stay optional. Cloudflare Free is the setup everything is designed and tested against.

Asked before installing, answered straight.

Does Cloudflare need a paid plan?

No. The managed Cache Rule and targeted purges use what Cloudflare Free already provides. No APO, no Workers, no Argo, no Enterprise contract. How the managed rule works.

Does my CSS data leave my server?

No. Stylesheet collection, selector analysis, pruning, and reports all stay on your WordPress server. See CSS optimization and the full external services list.

What if another plugin already owns the cache?

GT Performance reports the conflict and refuses to overwrite a foreign advanced-cache.php or object-cache.php. It never silently takes ownership. See integrations and conflicts.

Is it production-ready?

Yes. 1.0.10 is the current release, after 9 public betas, 6 release candidates, and a run of maintenance releases since 1.0.0, and it runs in production on my own sites. Still: install on staging first and test your checkout. That advice never changes.

What does GT Performance cost?

Nothing. It’s free, open source software under the GPL, and every release stays free.

Is it really the full plugin, free?

Yes. Every feature, on any number of websites, with no license key, no account, and no feature gate. The download is instant and asks no payment details.

Can I use it on client websites?

Yes. Client, agency, and customer projects are all covered. The GPL doesn’t distinguish; run it wherever you build.

Straight talk before you install

Version 1.0.10 is the current release, reached through 9 public betas, 6 release candidates, and a run of maintenance releases since 22 July 2026. Every build ran in production on my own sites, where the doctor checks pass and pages verifiably cache at origin and at Cloudflare. That is a real record, but it is weeks deep, not years.

I have not tested every store configuration, multisite, or unusual host cache. And I won’t claim it beats FlyingPress or WP Rocket on your site, because I haven’t measured your site. Install it on staging first, test your checkout, then go live. That advice never changes, whatever plugin you pick.

Gaurav Tiwari

Hey, I’m Gaurav 👋

A cache once served a stale receipt page on a store I ran, and I found out from the customer. I built GT Performance so I would never debug that blind again. It runs on my own sites every day.

The numbers, since you probably won’t read a full bio:

  • 18 years building on the web, and a WordPress core contributor
  • 10,000+ sites run my plugins
  • 850+ clients since 2008
  • 2,000+ articles published on WordPress, performance, and growth

Install free. Keep every site fast forever.

No payment. No license keys. Every release included, free, in the open on GitHub.

Installs like any WordPress plugin · start on staging tonight