That’s why you should ideally use SiteGround Optimizer for caching only, disable all other settings (besides image optimization if you want to use it for that), then use a different plugin that better handles core web vitals. I would also use a different CDN besides SiteGround’s CDN.
But is WP Rocket the answer?
I switched from WP Rocket to FlyingPress which is faster than both SiteGround Optimizer and WP Rocket with more features. The developer (Gijo) actively monitors web.dev and updates it. Whichever plugin you use, you will disable page caching (file-based caching) in one of them.
Another option is to use Perfmatters with SiteGround Optimizer which has a script manager to disable CSS/JS on specific pages. Since Permatters doesn’t handle caching, you can leave all 3 caching settings enabled in SiteGround Optimizer and use Perfmatters for most everything else.
Won’t features overlap?
Yes, that’s why I suggest disabling most (if not all) settings in SiteGround Optimizer besides caching, then using another plugin for everything else. Otherwise, you would need to learn overlapping features (as well as which plugin does a better job at a specific optimization), then leave that setting disabled in the other plugin. Which can get confusing, and messy sometimes.
K, but what about my CDN?
Neither SiteGround’s CDN or WP Rocket’s RocketCDN are great. SiteGround only has 14 locations, doesn’t support HTTP/3, and has no security features outside of “SSL support.” RocketCDN uses StackPath which has relatively slow speeds of 65+ Tbps, 60 locations, and is even more bare bones than SiteGround’s CDN (all it does is deliver files from the CDN, nothing else). I recommend Cloudflare with APO, or if you’re using FlyingPress, FlyingCDN is also solid.
If it were me, I would use SiteGround Optimizer for Nginx-based delivery and Memcached only, then use FlyingPress with FlyingCDN. Or I would leave SiteGround since they’re very mediocre.
1. SiteGround Optimizer Is Good For Caching, Not Core Web Vitals
|SG Optimizer||WP Rocket||Perfmatters||FlyingPress|
|Server-side caching||✓||x||No caching||x|
|Script manager (unload CSS/JS)||x||x||✓||x|
|Remove unused CSS||x||Inline||Separate file||Separate file|
|Host analytics locally||x||x||✓||✓|
|Host fonts locally||x||x||✓||✓|
|Preload critical images||By class||By URL||By number||By number|
|Exclude above the fold images||By class||By URL||By number||By number|
|Lazy render HTML elements||x||x||x||✓|
|Lazy load background images||Inline||Helper class||Helper class||CSS|
|Add missing image dimensions||x||✓||✓||✓|
|YouTube iframe preview image||x||✓||✓||✓|
|Self-host YouTube placeholder||x||x||x||✓|
|Change autosave interval||x||x||✓||x|
|Limit post revisions||x||x||✓||x|
|Dynamic caching||Premium||x||x||Vary cache|
|CDN image optimization||✓||x||x||✓|
|CDN image resizing for mobile||x||x||x||✓|
|Documented APO compatibility||x||✓||x||✓|
It also has a history of compatibility issues if you check the plugin’s support threads/reviews. SiteGround’s support often blames these issues on third-party themes/plugins, but in reality, it’s SiteGround’s fault for having inexperienced plugin developers. Again, 0 responsibility taken.
2. Is WP Rocket The Answer, Or Is FlyingPress Or Perfmatters?
My vote goes to FlyingPress or Perfmatters, not WP Rocket.
Even if you were to use WP Rocket, it still doesn’t can’t fonts or Google Analytics locally, uses a terrible CDN (RocketCDN which uses StackPath), and the remove unused CSS feature is slower compared to FlyingPress + Perfmatters since it loads used CSS inline (instead of a separate file).
3. WP Rocket
If you insist on using WP Rocket with SiteGround Optimizer, here’s what to do:
SiteGround Optimizer Settings With WP Rocket
Dynamic caching and Memcached should both be on, but remember you’ll need to activate Memcached in Site Tools before enabling it in SiteGround Optimizer (found under Speed → Caching → Memcached). File-based caching is done by both SiteGround Optimizer and WP Rocket, so choose which one you want to use. I recommend WP Rocket because while both plugins preload/preheat the cache, WP Rocket has better preloading controls. For example, preloading is a common reason for high CPU usage, so WP Rocket lets you control it by only preloading important sitemap URLs (instead of the entire sitemap), increasing the preload interval, and customizing preload parameters. SiteGround Optimizer doesn’t let you do these.
In the Environment settings, enabling HTTPS enforce.
Image optimization is tricky because:
- (Some) things can be done by plugins or CDNs.
- Using a plugin to optimize images can hog resources
- However, WP Rocket doesn’t support most image optimizations.
- Neither SiteGround Optimizer or WP Rocket do a good job optimizing above the fold images which should be excluded from lazy load and preloaded. SiteGround Optimizer excludes them by class (WP Rocket is by URL). Neither preloads them which is bad for LCP.
- FlyingPress + FlyingCDN, Perfmatters, or Cloudflare Mirage/Polish are better alternatives.
|SG Optimizer + SG CDN||WP Rocket + RocketCDN||FlyingPress + FlyingCDN|
|Exclude viewport images from lazy load||By CSS class||By URL||By number|
|Preload viewport images||x||x||By number|
|Lazy load background images||x||Inline||Helper class|
|Add missing image dimensions||x||✓||✓|
|Replace YouTube iframe w/ preview images||x||✓||✓|
|Self-host YouTube placeholder||x||x||✓|
|Serve images from CDN||✓||✓||✓|
If you must use SiteGround Optimizer + WP Rocket for image optimization:
- Use SiteGround Optimizer for image compression + WebP.
- Use WP Rocket for lazy load, then exclude a certain number of viewport images (i.e. 3).
- You’ll need to preload viewport images manually through code or a plugin like Pre* Party.
- You’ll also need to move background images to inline HTML if you want them lazy loaded.
- Use WP Rocket to add missing images dimensions + replace YouTube iframe with image.
- Use a CDN to serve images (not SiteGround’s CDN or RocketCDN). If you choose Bunny Optimizer or Cloudflare Mirage/Polish, use these for image compression + WebP instead.
Make sure all items are fixed in PageSpeed Insights:
WP Rocket Settings With SiteGround Optimizer
- Follow my guide on configuring the WP Rocket settings.
- Only disable page caching in WP Rocket if SG Optimizer’s file-based caching is on.
- Leave all other SiteGround Optimizer settings disabled other than dynamic caching, Memcached, HTTPS enforce, and (maybe) image compression + WebP. You’ll do this because WP Rocket essentially does all these, plus has more (or better) optimizations.
- If you choose to use SiteGround Optimizer for something that’s also in WP Rocket (i.e. Heartbeat control or database optimization), leave that setting disabled in WP Rocket.
This will be faster/easier than WP Rocket.
Steps: In SiteGround Optimizer, the only settings you should enable are dynamic caching, Memcached, and HTTPS enforce. Then use FlyingPress + FlyingCDN to handle everything else. Follow my guide on configuring the FlyingPress settings, and leave “cache pages” enabled in FlyingPress. However, Gijo recommends removing SiteGround Optimizer to avoid conflicts. The only problem with this is you’ll be missing out on SiteGround’s dynamic caching + Memcached.
Perfmatters does most optimizations lacking in SiteGround Optimizer.
In SiteGround Optimizer, you’ll want to enable dynamic caching, file-based caching (since Perfmatters doesn’t cache pages), and Memcached. You can also enable image compression and WebP if you’re using SiteGround Optimizer for it. All other SiteGround Optimizer settings should be off, then let Perfmatters handle the rest. See my recommended Perfmatters settings.
6. SiteGround CDN, RocketCDN, Or Something Else?
Definitely something else.
SiteGround’s CDN only has 14 PoPs with barely any security features and uses HTTP/2 + Gzip which is slower than HTTP/3 + Brotli. Plus, you have to use SiteGround’s DNS to use their CDN which was previously blocked by Google when sites lost rankings or got completely deindexed.
Also, why would you leave a trusted CDN with one of the largest networks in the world and tons of speed/security features (Cloudflare)? If it’s because of dynamic caching, use Cloudflare’s APO.
RocketCDN is similar to SiteGround’s CDN (main differences are it uses StackPath, 65+ Tbps speed, 50+ PoPs, and doesn’t support dynamic caching). Which means RocketCDN isn’t good.
So what is “something else”?
If you’re using FlyingPress, FlyingCDN uses BunnyCDN with Bunny Optimizer for image optimization + geo-replication for $.03/GB (cheaper than going directly to BunnyCDN). BunnyCDN has a network of 110+ PoPs and a faster Tbps: 80+ compared to StackPath’s 65+.
Two other options would be Cloudflare with APO or FlyingProxy. However, you’re not going to beat Rocket.net’s Cloudflare Enterprise (this is what I use), but that also means switching hosts.
|SiteGround CDN (Paid Plan)||Cloudflare||FlyingProxy||Rocket.net’s Cloudflare Enterprise|
|Bandwidth||Unmetered||Unlimited||100GB||Depends on hosting plan|
|Argo Smart Routing||x||Paid feature||x||✓|
|Load Balancing||x||Paid feature||x||✓|
|Price||$7.49/mo||$5/mo with APO||$10/mo||Included with hosting|
Final Thoughts – I don’t recommend SiteGround Optimizer (other than caching), SiteGround’s CDN isn’t good either, and SiteGround’s actual hosting is overpriced for shared hosting. $25/mo for a shared hosting plan (GrowBig) with SATA SSDs, bad cache plugin/CDN, and strict limits on a host with a history of issues? Come on now. Look into NameHero, Cloudways, and Rocket.net.