Have slow WooCommerce products pages?
WooCommerce sites naturally require more resources by using extra plugins as well as WooCommerce scripts, styles, and cart fragments. Add a few third party scripts like AdSense and Google Fonts combined with shared hosting, and that’s a recipe for a bad GTmetrix report.
The #1 factor in the WordPress optimization guide is hosting (by far). That’s why I would drop your shared hosting all together and get on board with cloud hosting (eg. Cloudways). I’m on their DigitalOcean plan and even this post has a 167MB page size, 56 requests, and still loads in about 1s. WooCommerce doesn’t do well on shared hosting. Do yourself a solid – go cloud.
Without further ado, here’s how to optimize your slow WooCommerce pages.
1. Measure The WooCommerce Page In GTmetrix
GTmetrix helps you find unoptimized images, slow plugins, external scripts, time to first byte, and specific elements slowing down WooCommerce product pages. It’s the tool I recommend.
Google PageSpeed Insights is really only good for measuring server response times (otherwise it’s pretty useless) and Pingdom doesn’t show nearly as many recommendations as GTmetrix.
Time To First Byte
2. Optimize Product Images
GTmetrix has 3 main ways to optimize images:
Serving scaling images is the most important item in GTmetrix related to images. This means you need to resize (scale) them to the correct dimensions (which GTmetrix tells you). If your WooCommerce product images call for 400 x 600px, don’t use images that are 1200 x 1800px.
Optimizing images means you need to losslessly compress them. I have tested many plugins and the only one that gets 100% in GTmetrix is ShortPixel. Other plugins (Smush, Imagify) may work for some, but ShortPixel is barely noticeable in quality and should also get you 100%.
Specifying image dimensions means you need to grab the image’s dimensions from GTmetrix and add them to the image’s HTML. In most cases, WordPress takes care of this unless you have bad plugins or you added images to HTML and forgot to add a specified width + height.
3. Disable Unused Plugins On The Page
Heard of Asset CleanUp or Perfmatters?
Both plugins let you selectively disable unused plugins, styles, and scripts on pages where they aren’t being used. Since Asset CleanUp is free and has great reviews, I’ll use it in the example.
Step 1: Install Asset CleanUp or Perfmatters.
Step 2: Edit a page or post and scroll down to the Asset CleanUp section. You will see all scripts (plugins, theme, core, third parties) being loaded on your WooCommerce product page.
Step 3: Disable all scripts not being used on the page.
- Disable WooCommerce features on non-eCommerce pages
- Disable slider plugin on content without sliders
- Disable rich snippets plugin on content without rich snippets
- Disable contact form plugin on content without a contact form
- Disable AdSense or affiliate links where they aren’t being shown
- Disable social sharing plugin on all pages (since it’s usually for blog posts)
- Disable WooCommerce scripts, styles, cart fragments on non-eCommerce pages
Step 4: Configure other settings in Asset CleanUp or Perfmatters, since both of them can help with other optimizations. Permatters is very helpful for cleaning up the WooCommerce admin.
Perfmatters can help you with a ton of other miscellaneous speed optimizations:
4. Combine Google Fonts And Host Them Locally
Google Fonts will usually results in GTmetrix errors.
Many plugins can combine Google Fonts and host them locally (OMGF, Self-Hosted Google Fonts, WP Rocket, and Autoptimize all have options). You can also host Google Fonts locally by manually downloading Google Fonts from the Google Fonts websites, converting them to web font files using Transfonter, then add them to CSS. Elementor also has a custom fonts option.
Combining these Google Fonts and loading them asynchronously can really help:
5. Optimize Third Party Resources
Third party resources are anything that make requests from outside websites:
- Google Fonts
- Google AdSense
- Google Analytics
- Google Tag Manager
- Facebook Pixel
- Facebook Likebox
- Social sharing buttons
- Embedded YouTube videos
Some third party scripts are easy to optimize, others aren’t
WP Rocket has options to optimize Google Fonts, Analytics, Facebook Pixel, and embedded videos. But other external scripts are nearly impossible. Running Google AdSense on top of WooCommcerce is a recipe for a slow website. Add Google Tag Manager and you probably have 30s load times. Especially if you’re on shared hosting, you have little room to use heavy third party scripts and plugins. So optimize the ones you can, then if you absolutely need to use the other plugins, make sure you’re at least using a fast cloud hosting provider (eg. Cloudways).
Google AdSense is a GTmetrix killer
Websites running WooCommerce and AdSense are infamously slow.
It also makes websites look very spammy. People know you’re trying to monetizing everything you can and it’s a turn off. If you need to monetize blog posts, affiliate marketing is the way to go. It won’t slow down your WooCommerce site and you’ll probably make more money too.
6. Clean Your WooCommerce Database
I never knew how much crap I had in my database until I installed Advanced DB Cleaner.
Not only does it list the typical things found in WP Rocket’s database cleanup options, but it also lists a ton of other stuff, including tables left behind by plugins that aren’t even installed on my website anymore. You should take a backup before cleaning it of course, but go through everything in your database and clean out all the garbage, especially tables left by old plugins.
Both Advanced DB Cleaner and WP-Optimize show you tables left behind by old plugins:
7. Upgrade To PHP 7.4
Newer PHP versions make your site load significantly faster.
To upgrade PHP versions, login to your hosting account, find the PHP version manager, and upgrade to the highest possible PHP version (ideally PHP 7.4). Some hosts are slower to release new PHP versions than others. You can use the Display PHP Version plugin see which version you’re currently on. Once upgraded, check your WooCommerce pages for errors.
8. Reduce Server Response Times
Your server (hosting) is the #1 factor in the optimization guide (by far).
To check your server response time, run your WooCommerce page through PageSpeed Insights and make sure it’s <200ms like Google suggests. If it’s not, servers are your hosting.
9. Ditch Shared Hosting
Cloudways is where it’s at.
Many people (including SiteGround customers) are moving to Cloudways which is even faster than SiteGround. Their cloud hosting will run circles around any shared host. I was paying $180/month for an upgraded version of SiteGround’s cloud hosting and moved to a $80/month DigitalOcean plan on Cloudways and documented load times in Search Console:
Other people who moved to Cloudways:
If there’s one thing you can do to improve your slow WooCommerce product pages, it’s get better hosting, and Cloudways is a great choice. You can save 25% off your first 2 month with promo code OMM25. I’m an affiliate for them, but I’m not an affiliate for Bluehost, GoDaddy, or any of the crappy hosts. Just the ones that are obviously good and supported by evidence.
10. Use A Better Cache Plugin
Your cache plugin and hosting are generally the 2 biggest factors of site speed.
WP Rocket was not only rated the #1 cache plugin in most Facebook polls, but they are more popular in Facebook Groups. Many people have already documented the results on Facebook:
WP Rocket is usually #1 because it comes with many features not included with most other cache plugins (database cleanup, heartbeat control, lazy loading images + videos, prefetch, local analytics, Facebook Pixel browser caching, etc). Since these features are already built-in, this means more speed optimizations yet less plugins running on your WooCommerce site.
11. Avoid High CPU WooCommerce Plugins
I don’t have a list of slow WooCommerce plugins, but I do have a list of general WordPress plugins that will slow down your site. These plugins are infamous for causing high CPU and causing a slow WordPress site. Most plugins are related to statistics, backups, live chat, calendar, social sharing, sliders, sitemap, WPML, and any plugin that has to constantly work on WooCommerce product pages. You either need to delete these plugins and find a faster replacement, optimize them, or deal with their slow load times. Most times, it’s not worth it.
12. Use Elementor As Your Page Builder
Elementor is the fastest page builder for WordPress.
And if you still have a slow WordPress site on Elementor, it’s probably not the reason. Nearly every speed optimization recommended by Elementor is included in this post. But I would stay away from Beaver Builder, Divi Builder, and others since most will cause slow page load times.
Pro Tip: If you’re using Elementor Pro, use the custom fonts option to host your fonts locally.
13. Don’t Overdo WooCommerce Extensions
WooCommerce Extensions are great, but just like plugins, don’t overdo them.
And if you do use them, always test to see how they affect your load times after installing.
14. Consider Multiple CDNs
Many people are already using Cloudflare’s free CDN, which is great.
However if you can also chain together multiple CDNs to offload even more resources, further lightening the load on your server. In theory, more data centers = faster delivery of content.
I personally use StackPath in addition to Cloudflare, and you can see how many resources are offloaded in their analytics. For me, it’s worth $10/month and can easily be setup with most cache plugins (or CDN Enabler plugin), by copying/pasting a CDN URL provided by StackPath.
15. Use A Fast WooCommerce Theme
Hopefully you’re using something like Astra, Flatsome, or a StudioPress theme.
Bloated and badly coded themes slow down your WordPress site. You will either need to change themes or hire a developer to do theme optimization, but that’s all you can do.
Still Have A Slow WooCommerce Site?
I have a great YouTube tutorial on WordPress speed optimization which covers nearly everything in this tutorial, plus some. Or feel free to leave your GTmetrix report in the comments and I’ll be happy to take a look. Happy to help anyone readying my guides :)