Skip to content
Journal

Why is my WooCommerce shop slow?

A slow WooCommerce shop rarely has a single cause. These are the places I look first when a shop has become heavy, from hosting and the database to images and third-party scripts, and how to measure before changing anything.

3 min read#woocommerce#performance

A WooCommerce shop usually gets slow gradually. A plugin is added, a new theme, more products and a few years of orders in the database, and one day the product pages stall while the basket and checkout are worse still.

These are the places I look first. The order is the one I use, because the first items often explain the most.

Measure first, and measure the right pages#

The home page is rarely the problem. Measure a product page, a category page with filters, the basket and the checkout separately. PageSpeed Insights shows both a lab score and, if the shop has enough traffic, data from real Chrome visitors. The second is what Google uses.

Look especially at how long the server takes to respond before the browser can start drawing the page. If that is over a second on the basket, the problem is on the server, and images and scripts cannot fix it.

The basket and checkout cannot be cached#

Caching plugins make the home page and product pages fast by storing a finished copy. The basket, checkout and "my account" are different for every customer and are built from scratch each time. That is why a shop can look fast in a home-page test and still be slow where the customer pays.

What helps there:

  • A current PHP version. Each release is faster than the last, and older versions no longer get security updates.

  • An object cache. Redis or Memcached keeps database answers in memory, so the same queries are not run again on every page view.

  • Enough PHP workers. Cheap shared hosting gives you few, and when they are busy the next visitors wait in a queue.

The database grows quietly#

A shop that has run for a few years often has a database much larger than it needs to be:

  • The `wp_options` table holds settings that are loaded on every page view. Plugins removed long ago often leave data behind here.

  • Action Scheduler, which WooCommerce uses for background jobs, can reach millions of rows if old jobs are never cleaned up.

  • Order storage. Newer shops keep orders in their own tables (HPOS), which WooCommerce has used by default since 2023. Older shops still store them as posts alongside pages and products, which makes both the order list and the reports heavier. The switch can be made on a live shop, but it has to be tested with the plugins the shop uses.

Plugins: what each one does on each page#

The number of plugins says little. What matters is what each one does on each page view. One plugin running a heavy database query on every page costs more than ten small ones. Query Monitor shows which queries and which plugins are spending the time on a given page.

Also look for plugins that load scripts and stylesheets on every page even though they are used in one place, such as a form on the contact page or a slider on the home page.

Images, theme and third-party scripts#

Once the server answers quickly, the problem moves to the browser:

  • Images at full camera resolution, scaled down in the browser and not saved as WebP or AVIF.

  • Heavy themes and page builders that send far more HTML, CSS and JavaScript than the page uses.

  • Third-party scripts: chat, review widgets, tracking pixels and the cookie banner. Each one fetches code from another server, and some block until they finish.

  • Filters on category pages, which can run slow queries when there are many products and attributes.

Why it is worth fixing#

Speed affects two things that both cost money: how many visitors complete a purchase, and how high the shop ranks in Google, where page speed measured on real users is part of the assessment.

I work on WooCommerce shops, both new builds and existing shops that need to be faster. Speed and indexing are part of my technical SEO work, and if you are considering a platform change, I have written about WooCommerce or Shopify for a Danish webshop.

Was this useful?

More notes