Skip to content
Ajgori Technologies
All posts

E-commerce 9 min read

How to speed up a slow WooCommerce store

A practical order of work for making a slow WooCommerce store faster without breaking the cart or checkout.

On this page
  1. Measuring before you speed up WooCommerce
  2. Plugins that slow stores down
  3. Caching pages without breaking the cart
  4. Database and order table clean-up
  5. Hosting that suits WooCommerce
  6. Summary

To speed up WooCommerce, measure first, then remove or replace the plugins that do the most work, cache pages without caching the cart and checkout, clean up the database, and make sure your hosting suits a busy store. A shop is slower to fix than a simple website because much of it is personal to each visitor: the cart, the account area and the checkout cannot simply be saved and reused. This guide explains what to do, in the order we usually do it.

WooCommerce is a free plugin that turns a WordPress website into an online store. It is flexible, but every plugin, product and order adds work for the server. If you would like help with your store, our e-commerce service page explains how we work.

Measuring before you speed up WooCommerce

Changing settings at random can make things worse, or improve one page while breaking another. Start with a clear picture.

  1. Make a staging copy. Staging is a private copy of your store where you can test changes safely. Most hosts can create one for you.
  2. Pick the pages that matter. Test the home page, a category page, a product page, the cart and the checkout. Each behaves differently.
  3. Measure the front end. Use a page speed testing tool such as Google's PageSpeed Insights to see how quickly pages load and become usable on mobile and desktop.
  4. Measure the server. Page speed tools show when the server is slow to respond, but not why. A query monitoring plugin on the staging copy can show slow database queries and which plugin runs them.
  5. Check the admin area too. A slow dashboard or orders screen usually points to database or plugin problems rather than images.
  6. Write down the results. Record the numbers for each page before you change anything, so you can prove what helped.

Change one thing at a time and measure again. It is slower, but it tells you what actually worked.

For causes that apply to any site, our guides on why a website is slow and Core Web Vitals explain the usual checks and measurements.

Plugins that slow stores down

Plugins are the most common cause of a slow WooCommerce store. It is rarely the number of plugins that matters most; it is what each one does on every page.

  1. List every active plugin and why you have it. Plugins added for a campaign or a test are often forgotten.
  2. Remove what you do not use. Deactivate and delete plugins that no longer serve a purpose. Unused plugins also add security risk.
  3. Look for heavy work on every page. Plugins that run live searches, related product calculations, visitor tracking or complex pricing rules on every request can add real delay.
  4. Watch for duplicates. Two plugins doing the same job, such as two SEO or two caching plugins, waste resources and can conflict.
  5. Check scripts and styles. Some plugins load their files on every page, even where they are not used. Your developer can limit them to the pages that need them.
  6. Replace, do not just remove. If a slow plugin provides an important feature, look for a lighter alternative or a small custom solution.

When the query monitoring plugin on staging points at a specific plugin, test the store with that plugin disabled. The difference tells you how much it costs.

Checking your theme

Themes can be as heavy as plugins. Some include page builders, sliders, animations and many fonts on every page, even when your store uses only a few of them.

  1. Test with a simple default theme on staging. If the store becomes much faster, the theme is a large part of the problem.
  2. Turn off features you do not use, such as sliders, extra font families or animation libraries.
  3. Check the product and category templates. These pages load most often in a store, so any extra work there adds up.
  4. Consider a lighter theme for a redesign. If the current theme cannot be slimmed down, plan a change as part of your next design update.

When a heavy plugin does something your store needs, a focused custom feature can replace it, and our guide to custom WooCommerce development explains when that makes sense.

Caching pages without breaking the cart

Page caching saves a ready-made copy of a page so the server does not rebuild it for every visitor. It is one of the biggest speed gains for product and category pages. But some pages are different for every customer and must not be cached.

WooCommerce's own guide to configuring caching plugins says the cart, checkout and my account pages should not be cached. If they are, customers may see another person's cart or have trouble checking out.

  1. Use one caching solution. Either your host's server-level caching or a single caching plugin, not both fighting each other.
  2. Exclude the cart, checkout and my account pages. Check this in your caching settings rather than assuming it is done.
  3. Test as a real customer. On staging, add products to the cart in two different browsers and check that each sees only their own cart.
  4. Clear the cache when content changes. Make sure product updates, price changes and stock changes appear without waiting for old cached copies to expire.
  5. Consider object caching. Object caching stores the results of common database queries in memory. Many hosts offer it as a server feature, and it helps the parts of the store that cannot be page cached.
  6. Use a content delivery network (CDN). A CDN stores copies of images, styles and scripts on servers around the world, closer to your customers.

Images deserve their own check. Large product photos are a common reason product and category pages load slowly. Resize images to the size they are shown at and compress them before uploading.

Database and order table clean-up

Over time, a store's database collects old data that slows queries down, especially in the admin area.

  1. Back up first. Take a full backup of the database and confirm it can be restored before any clean-up.
  2. Remove clutter. WooCommerce's performance optimisation guide recommends regularly deleting spam comments, post revisions and expired transients. Transients are temporary saved values that plugins store in the database.
  3. Review order storage. WooCommerce's High-Performance Order Storage (HPOS) keeps orders in dedicated tables designed for store data, instead of the general WordPress posts tables. It is enabled by default for new stores. Older stores can switch to it from the WooCommerce advanced settings, after checking that their plugins support it.
  4. Test HPOS on staging first. Switch it on in the staging copy, let the order data synchronise, and test orders, refunds and reports with your real plugins before changing the live store.
  5. Look at scheduled tasks. Stores run background tasks for emails, stock updates and plugins. If these fail or pile up, they can slow the site. Ask your developer to check that background tasks run and complete properly.
  6. Clean up old data your business no longer needs, such as abandoned carts kept by plugins, in line with your record-keeping and privacy obligations.

Hosting that suits WooCommerce

No amount of tuning makes up for hosting that is too small or badly configured. A store needs more from its server than a simple brochure site, because cart, checkout and account pages are built fresh for each customer.

  1. Use a supported PHP version. PHP lists which versions still receive fixes on its supported versions page. Check that your theme and plugins support a newer version on staging before switching.
  2. Make sure there is enough memory and processing power for your busiest times, such as sales and campaigns, not just a quiet day.
  3. Ask about server-level caching and object caching. Many hosts that specialise in WordPress offer both.
  4. Check where the server is. A server close to most of your customers, combined with a CDN, reduces delay.
  5. Keep staging and backups easy. Good hosting makes safe testing and quick restores simple, which matters for every other step in this guide.
  6. Plan for growth. If you expect more products, orders or traffic, ask how easily the hosting can be upgraded.

Keeping the store fast over time

Speed work is not a one-time job. A simple routine keeps the gains:

  1. Test new plugins on staging first, and measure key pages before and after.
  2. Repeat your page measurements regularly, using the same pages and tools as your first review.
  3. Watch the admin area. A slower orders screen is often the first sign of database growth or a new heavy plugin.
  4. Review before big campaigns. Check hosting capacity and caching before sales or promotions bring extra traffic.

Once your store is faster, keep it that way with regular checks. Every new plugin, theme update or campaign is a chance to slow it down again. Security and speed go together here: our guide on how to secure a WordPress site covers updates, plugins and backups from the security side.

Summary

  • Measure key pages on a staging copy before changing anything, and change one thing at a time.
  • Remove unused and heavy plugins, and replace slow ones that provide important features.
  • Cache product and category pages, but never the cart, checkout or my account pages.
  • Back up, clean up database clutter and consider High-Performance Order Storage after testing.
  • Choose hosting with current PHP, enough resources and server-level caching for busy periods.

A faster store is easier to use, easier to manage and more pleasant for customers on slow connections. If your WooCommerce store needs a speed review, you can tell us about it here.

E-commerce

Related posts

E-commerce

What it costs to build an online store

What drives the cost of building an online store, which costs continue after launch, and how to plan a realistic first version.

7 min read

Working on something?

Get in touch and tell us about it.