Performance

WooCommerce Speed Optimization: 12 Free Fixes to Try First

Slow WooCommerce store? Try these 12 free speed optimization fixes first, from caching and images to scripts, then test your score free.

A slow WooCommerce store costs you in three places at once: shoppers who leave before the page finishes loading, paid traffic that converts worse, and search visibility, since Google uses Core Web Vitals as part of its page experience signals. The good news is that you can fix a surprising amount without spending anything.

This guide covers 12 free WooCommerce speed optimization fixes, ordered roughly from quickest wins to deeper work. Before you start, run a free WooCommerce speed audit so you have a baseline to compare against.

1. Measure Your Baseline First

You can’t improve what you haven’t measured. Test your homepage, a category page, a product page and your cart, because each behaves differently in WooCommerce.

Focus on mobile scores. Most shoppers browse on phones, and Google’s mobile test is much stricter than desktop. Note your Largest Contentful Paint (LCP), Cumulative Layout Shift (CLS) and Total Blocking Time (TBT).

Our free speed audit runs Google’s PageSpeed Insights test live on both devices and shows your score next to a WOHL storefront, and emails you a full report. Save the numbers somewhere, because you’ll want to compare after every change.

2. Update PHP, WordPress and WooCommerce

Running an old PHP version is one of the easiest ways to leave speed on the table. Newer PHP releases process requests faster, which helps most on uncached pages like the cart and checkout.

Check your hosting dashboard for the PHP version setting and move to the newest version your theme and plugins support. Update WordPress, WooCommerce, your theme and your plugins at the same time. Take a backup first and test on a staging copy if you can.

3. Turn On Page Caching

Without caching, WordPress builds each page from scratch for every visitor, running PHP and database queries each time. Page caching saves a finished version of the page and serves it instantly.

Use one caching plugin or your host’s built-in cache, not several. Make sure it excludes the cart, checkout and account pages, which must stay dynamic. Many hosts also include a CDN, which serves your files from locations closer to your visitors. Switch that on if it’s available.

4. Add Object Caching

Page caching can’t help logged-in customers, carts or checkouts, but object caching can. It stores the results of repeated database queries in memory (usually Redis or Memcached) so WooCommerce doesn’t ask the database the same question again and again.

Many managed WooCommerce hosts offer Redis at no extra cost. If yours does, enable it and install the matching object cache plugin. It’s a particularly good fix for stores with large catalogs.

5. Compress and Resize Your Images

Images are usually the heaviest part of a product page. Common mistakes include uploading a 4000-pixel photo to display at 600 pixels, or using PNG for photographs.

  • Resize images to the largest size they’re actually displayed at.
  • Convert to WebP or AVIF, which are much smaller than JPEG at similar quality.
  • Compress before or during upload with a free image optimization plugin.
  • Use responsive images so phones download smaller files than desktops.

Re-process your existing media library too, not just new uploads.

6. Protect Your LCP Image

Lazy loading is great for images below the fold, but applying it to your main banner or first product image slows LCP, because the browser deliberately waits before loading it.

Exclude your hero image from lazy loading, and preload it if your theme or caching plugin supports it. Then test again: for many stores, this is one of the biggest single LCP improvements.

7. Audit Your Plugins

Every plugin adds code, and some add a lot. Don’t just count plugins; measure them. A free tool like Query Monitor shows which plugins run slow queries or load heavy scripts.

Deactivate anything you don’t use, and replace heavy plugins with lighter alternatives. Watch out for sliders, page builders with large add-on packs, social feeds and pop-up tools. Remove one at a time and re-test so you know what actually helped.

8. Stop WooCommerce Loading Scripts Where It Doesn’t Need To

By default, WooCommerce and many extensions load their scripts and styles on every page, even ones with no shop content, such as your blog or contact page.

Use a free asset manager plugin or a small code snippet to load WooCommerce assets only on shop, product, cart, checkout and account pages. Also check the cart fragments script, which refreshes mini-cart data through an extra request on each page. If you don’t use a mini-cart, disabling it can noticeably reduce load.

9. Defer JavaScript and Delay Third-Party Scripts

JavaScript is the biggest cause of poor mobile TBT. Analytics, chat widgets, review badges, heatmaps and ad pixels all compete for the browser’s attention while the page is loading.

  • Defer non-critical JavaScript so it doesn’t block rendering.
  • Delay chat widgets and heatmaps until the visitor interacts with the page.
  • Load tag manager containers carefully and remove tags you no longer use.

Test checkout and tracking after changes. Delaying the wrong script can break conversion tracking or payment buttons.

10. Simplify Your Fonts

Fonts are an easy fix that many stores overlook. Each extra font family and weight is another file the browser must download before text looks right.

Limit yourself to one or two families and only the weights you use. Self-host them if possible, preload the main font file and set font-display: swap so text appears immediately instead of staying invisible. System fonts are the fastest option of all.

11. Fix Layout Shifts

Have you ever tried to tap a button and had the page jump? That’s layout shift, measured by CLS. Common WooCommerce causes include images without set dimensions, late-loading banners, cookie bars and fonts swapping in.

Always set width and height on images, reserve space for banners and embeds, and make sure notices don’t push content down after load. A CLS under 0.1 is Google’s “good” threshold.

12. Clean Up Your Database

Over time, WooCommerce databases fill with expired transients, post revisions, abandoned sessions and orphaned data from deleted plugins. Large autoloaded options in particular slow down every request.

Back up first, then clear expired transients and old sessions, limit post revisions and review the autoloaded data in your options table. A reputable database cleanup plugin can do most of this safely. Schedule it monthly.

What If You're Still Slow After All 12?

Some stores do everything right and still struggle on mobile. The reason is architecture: a traditional WooCommerce theme runs through PHP, plugins and page builders on every request, which limits how fast it can get. Caching and cleanup help, but they can only take you as far as your theme allows. 

That’s where headless comes in. A headless setup keeps your WooCommerce back end and replaces the front end with a fast, server-rendered storefront. Our headless WooCommerce guide explains how it works, what it costs and when it’s worth it. If you’re weighing building one yourself, see WOHL vs DIY headless.

For a real example, read how BIOEAT improved its mobile PageSpeed from 62 to 93 on WOHL. You can also review pricing and 90+ on Google PageSpeed within 30 days of going live, or your first payment back 

If your mobile score is already strong, start with the free fixes above. Our audit shows where you stand and flags anything that would stop you reaching 90+ before you pay for anything. 

Next Step: Test, Fix, Retest

Work through these fixes one at a time, retesting after each. Keep the changes that move your numbers and undo the ones that don’t. When you’re ready to see where you stand, get your free WooCommerce speed audit.

Frequently Asked Questions

Everything about going headless with WooCommerce — benefits, implementation, and what to expect.

What is a good PageSpeed score for a WooCommerce store?

Aim for 90 or higher on mobile, and treat 85 or above as decent. Mobile scores are usually lower than desktop, so judge your store on mobile first. Also check the individual Core Web Vitals, not just the overall score.

It depends on your store, but the usual winners are page caching, image optimization, protecting the LCP image and removing heavy plugins or third-party scripts. A speed audit shows which issues affect your store most.

Yes. Core Web Vitals are part of Google’s page experience signals, and slow pages also drive up bounce rates and lower conversions. Speed is rarely the only ranking factor, but it matters most when competing pages are otherwise equal.

Google’s mobile test simulates a slower phone on a throttled connection, so heavy JavaScript, large images and third-party scripts hurt far more. Fixes 5, 6, 8 and 9 above target this gap.

It can if configured incorrectly. Always exclude the cart, checkout and account pages from page caching, and test a full purchase after any change.

Consider it when you’ve applied the free fixes and mobile performance is still holding back growth. Read our headless WooCommerce guide, see the FAQ, or explore more tips on the WOHL blog.

Leave a comment

Your email address will not be published. Required fields are marked *

What is slow costing your store?

The free audit runs Google's official test and estimates the revenue your load time is losing — in about 30 seconds.

  • Takes ~30 seconds
  • Mobile + desktop
  • No card, no call