Swift Performance AI Benchmarks vs the Competition
Caching plugins are critical for enhancing the speed and performance of a WordPress website. They work by storing a static version of your site and presenting this to your users, which significantly reduces server lag. This ultimately leads to faster load times, providing an enhanced user experience. Today, we are focusing on the new player in town: Swift Performance AI, also known as Swift Performance 3. For those familiar with Swift’s previous caching plugin, Swift Performance 2, I recommend Swift’s Blog Post that explains the differences between these two plugins.
We aim to answer these critical questions: How fast is Swift Performance AI? Is Swift Performance AI better than Swift Performance 2? How does Swift Performance AI compare with WP Rocket?
To provide accurate answers, I’ve run an in-depth series of benchmarks and deployed each plugin to an identical version of a real WordPress website.
Testing methodology
I created multiple identical copies of my website, each deployed onto its private server. All instances used their databases, housed all of their content, used no CDNs like Cloudflare, and operated on the same versions of PHP, Nginx, Ubuntu Server, WordPress, etc. The only difference was the caching plugin installed. I used Google’s PageSpeed Insights tool and GT Metrix for benchmarking. To ensure the caches were functioning, I manually loaded each website and used the networking tab on my browser before beginning the tests.
Here are the detailed environment specifications and versions of each caching plugin used:
Environment details & versions
Component | Version |
---|---|
Operating system | Ubuntu 22.04.2 LTS (GNU/Linux 5.15.0-71-generic x86_64) |
CPU cores | 6 |
RAM | 12gb |
Stoage | 256gb SSD |
Web server | nginx/1.18.0 |
PHP version | 8.2.6 |
PHP memory limit | 256M |
Database host | AWS |
Database type | mysqli |
Database server version | 8.0.31 |
Database client version | mysqlnd 8.2.6 |
WordPress Version | 6.2.2 |
Redis version | 2.4.1 |
Swift Performance 2 | 2.3.6.12 |
Swift Performance AI | 0.4.14 |
WP Rocket | 3.13.3 |
The theme on the website at the time of testing was Divi 4.21.0. Under the Divi settings, the following performance options were enabled for all instances (Divi > Theme Options > Performance):
- Dynamic Module Framework: Enable this to allow the Divi Framework to only load the modules that are used on the page, and process the logic for the features in use.
- Dynamic CSS: Dynamic CSS greatly reduces CSS file size by dynamically generating only the assets necessary for the features and modules you use. This eliminates all file bloat and greatly improves load times.
- Dynamic Icons: The Divi icon font is broken up into various subsets. These subsets are loaded only when needed based on the modules and features used on each page. If you need access to the entire icon font on all pages (for example, if you are using our icon font in your child theme), then you can disable this option and load the entire icon font library on all pages.
- Dynamic JavaScript Libraries: Only load external JavaScript libraries when they are needed by specific Divi modules on the page. This removes unused JavaScript from the main scripts bundle and improves load times.
Some final notes to be aware of with regards to my website: This isn’t a typical everyday website as I have done some optimisations that non-developers may not do to their websites. So please be aware of the following:
- All of my images are sized appropriately, uploaded as ‘.webp’ and compressed via tinypng.com before being uploaded to my site.
- All fonts in use are hosted on my website directly, eliminating the need for Google fonts (or any other 3rd party provider) to be loaded.
- Google reCaptcha v3 is enabled via the Contact Form 7 plugin, which often has a large impact on load times. I normally disable this for all pages except my contact page, but I enabled it for these tests on all instances to help make the tests feel more “real”.
Cache plugin settings
- Swift Performance 2 (unoptimised): After installing the plugin and activating it with my licence key, I allowed it to build the cache. No further configurations were made.
- Swift Performance 2 (optimised): I employed my configuration of choice. This particular configuration has been fine-tuned over two years of exclusive use with the Divi theme. It includes minifying, merging, and enqueuing scripts and styles (except jQuery and Divi’s core JS files & CSS cache files) and utilises lazy loading. Apart from these features, the setup is rather standard. Additionally, I ran Swift’s image optimiser tool to try to reduce image sizes.
- Swift Performance AI: I only made a couple of changes to the default setup – I enabled GZIP in the settings and added the Nginx rewrite headers as advised. Other than that, I left the rest of the settings untouched. This configuration is nearly out-of-the-box and took just a fraction of the time I spent perfecting my settings for Swift Performance 2.
- WP Rocket (unoptimised): Similar to Swift Performance 2’s unoptimised setup, I merely installed the plugin and let it build the cache. No further configurations were made.
- WP Rocket (optimised): My goal here was to replicate my optimised Swift Performance 2 settings tailored for the Divi theme. The setup involved minifying, merging, and asynchronously loading scripts and styles (excluding jQuery and Divi’s core JS files & CSS cache files). I also ran WP Rocket’s image optimisation tool, Imagify.
Benchmark results (full data)
Interestingly, the results from both Google PageSpeed tests reveal an unexpected pattern: the ‘No Cache’ instance surprisingly outperformed the ‘Swift 2 (unoptimised)’ instance. Initially, this outcome was quite startling, as one would typically expect a caching plugin, even an unoptimised one, to improve performance compared to having no cache at all.
However, this data underscores a critical distinction between Swift Performance 2 and its successor, Swift Performance AI. It appears that Swift 2 is highly dependent on the user’s ability to optimise its configuration, making it less user-friendly for non-developers or those less familiar with the intricacies of the WordPress platform. In contrast, Swift AI seems to offer a more hands-off approach, potentially delivering better results right out of the box.
Instance | Score | First Content Paint | Largest Content Pain | Total Blocking Time | Cumulative Layout Shift | Speed Index |
---|---|---|---|---|---|---|
Swift AI | 85 | 1.37 s | 4.03 s | 143 ms | 0.03 | 2.13 s |
Swift 2 (optimised) | 79 | 1.67 s | 7.23 s | 146 ms | 0.10 | 1.77 s |
WP Rocket (optimised) | 43 | 1.83 | 6.00 s | 1,750 ms | 0.04 | 5.83 s |
No Cache | 33 | 3.63 s | 10.23 s | 1,660 ms | 0.10 | 9.03 s |
WP Rocket (unoptimised) | 31 | 4.40 s | 12.90 s | 1,217 ms | 0.10 | 9.43 s |
Swift 2 (unoptimised) | 23 | 6.73 s | 11.90 s | 2,073 ms | 0.21 | 7.90 s |
Instance | Score | First Content Paint | Largest Content Pain | Total Blocking Time | Cumulative Layout Shift | Speed Index |
---|---|---|---|---|---|---|
Swift AI | 99 | 0.43 s | 0.93 s | 0 ms | 0.02 | 0.77 s |
Swift 2 (optimised) | 98 | 0.50 s | 1.00 s | 13 ms | 0.00 | 0.67 s |
WP Rocket (optimised) | 91 | 0.50 s | 1.47 s | 157 ms | 0.02 | 1.17 s |
WP Rocket (unoptimised) | 69 | 1.23 s | 2.67 s | 80 ms | 0.16 | 2.23 s |
No Cache | 65 | 1.03 s | 2.53 s | 200 ms | 0.16 | 2.57 s |
Swift 2 (unoptimised) | 63 | 1.90 s | 2.80 s | 180 ms | 0.17 | 2.07 s |
Instance | Grade | Performance | Structure | First Content Paint | Largest Content Pain | Total Blocking Time | Cumulative Layout Shift | Speed Index | Time to Interact |
---|---|---|---|---|---|---|---|---|---|
Swift 2 (optimised) | A | 100% | 94% | 319 ms | 580 ms | 0 ms | 0.00 | 5.11 ms | 526ms |
Swift AI | A | 99% | 98% | 183 ms | 314 ms | 0 ms | 0.07 | 309 ms | 183 ms |
WP Rocket (optimised) | A | 93% | 96% | 194 ms | 359 ms | 202 ms | 0.02 | 349 ms | 1,133 ms |
WP Rocket (unoptimised) | A | 91% | 92% | 278 ms | 727 ms | 172 ms | 0.15 | 611 ms | 1,400 ms |
Swift 2 (unoptimised) | A | 90% | 91% | 425 ms | 856 ms | 180 ms | 0.15 | 733 ms | 1,466 ms |
No Cache | B | 76% | 92% | 1,533 ms | 1,833 ms | 174 ms | 0.10 | 1,733 ms | 2,533 ms |
Conclusion
The results of the benchmark tests provide some valuable insights into the performance of these caching plugins. While Swift Performance AI shows excellent performance with minimal configuration, Swift Performance 2, when optimised, proves to be a strong competitor.
So, which plugin should you choose for your WordPress site? For those who prefer a ‘set it and forget it’ approach, Swift Performance AI is a fantastic choice. It requires almost no configuration and performs impressively right out of the box. However, if you prefer to have a more hands-on approach and have the technical expertise to tweak settings to your preference, Swift Performance 2 still holds its ground.
As for me, I am going to give Swift Performance AI a test run on my website, to see how it holds up over time. Being a long-time user of Swift Performance 2, it’s going to be an interesting experience. Nevertheless, I am not ready to let go of my old swift-performance.zip just yet.
If you’ve enjoyed this post, why not check out some of my others?
Leave a Reply