Online shops

How many products is too many for WooCommerce?

The product count is almost never the problem. Variations are — and the arithmetic behind that surprises most people who ask.

25 August 20265 min readDaniel

The question comes up in almost every first conversation about a shop. It has a number in it, which is what makes it feel answerable.

It is not, or at least not in the form it is asked. The number that decides whether a shop stays fast is rarely the one being counted.

We look after shops with forty products and shops with several thousand. The forty-product one is not automatically the faster of the two. Occasionally it is considerably the slower.

What WooCommerce actually stores

A product in WooCommerce is a post. The same kind of database row as a blog article, with its details — price, stock, weight, dimensions — spread across a second table as metadata.

That is a reasonable design, and it is also the entire explanation for everything below. Because a variation is also a post.

A watch offered in three case sizes and four straps is not one row. It is one parent product and twelve children, each with its own price, its own stock figure, its own image reference and its own SKU. Thirteen objects where the catalogue said one.

The arithmetic

  • 52040 products × 12 variations, plus the parents
  • 120120 products with no variations at all
  • the first shop is larger, not smaller

The shop that looks three times smaller in the catalogue is four times larger in the database.

Two of our own clients sit almost exactly on either side of that line. SEEWALD Private Label runs a hundred and twenty products with no variations at all. MC Luxury runs forty, heavily varied. On paper the first is the bigger shop. In practice it is the lighter one by a wide margin.

The four things that actually slow a shop down

Variations. The multiplication above, and a second effect on top of it: to build the selector on a product page, the shop has to know about every combination — which ones exist, which are in stock, what each one costs. A product with sixty variations does sixty times the work of a simple one, on every single view.

Filters. Filtering by colour, size or material means asking the database about metadata across every product in the category. WooCommerce keeps a lookup table for the common cases, which helps a great deal. Most third-party filter plugins do not use it, which helps not at all.

Images. WordPress generates several sizes of every image you upload. Five images per product across a hundred and twenty products, at six registered sizes, is 3,600 files on disk. That is not itself slow, but it is why media libraries become unmanageable and why backups start taking an hour.

Pages that cannot be cached. Cart, checkout, account, and anything showing a price specific to the person looking at it. A cache cannot help with any of those, because the answer is different for every visitor. Every one of those page views goes through PHP and the database at full price.

This is why a B2B shop with net prices per customer group feels heavier than a consumer shop of the same size — most of what matters is happening on pages the cache never sees.

Roughly where the thresholds sit

These are ranges, not rules, and the variation count matters more than the product count in every one of them.

Up to 1,000

Simple products. Nothing special required — decent hosting, a disciplined plugin list, images at sensible sizes. If a shop this size is slow, the products are not the reason.

1,000 to 10,000

Or a few hundred heavily varied. Now it is worth being deliberate: an object cache, filters that use the lookup table rather than working around it, and a rule that every plugin justifies its place.

Above that

A different kind of project. Search moves off the database onto something built for it, indexes get looked at properly, and the shop stops being something you improve by switching a plugin on.

Most shops we are asked about are in the first band and behaving like the third. That gap is almost always plugins and images rather than products.

When the answer really is “too many”

There is a version of this question where the honest answer is yes — and it is not about a number.

It is when the range changes faster than anyone can maintain it. Or when every product is configured rather than chosen, so that a shop would need a thousand variations to describe a hundred articles. Or when every price is negotiated anyway, which means the checkout is decoration.

In those cases the shop is the wrong shape rather than the wrong size, and a catalogue with an enquiry route is usually the better answer. We wrote about the difference between the two separately.

What to count, in order

Variations, not products. Open the products list, filter to variable products, and add up the combinations. That is your real number.

Then plugins. Not how many, but how many touch a product or a category page. Four of those cost more than twenty that do not.

Then images. How many per product, at what dimensions, and how many sizes WordPress is generating that nobody uses.

In twenty years the product count has been the answer perhaps twice.

If all three of those are in order and the shop is still slow, then it is worth talking about the number of products. The rest of what we do with shops is on our online shops page — and if you would rather just know where yours stands, send the address and we will tell you what we find.

Send us the address of the shop.

We will count the variations, look at what the plugins are doing to a category page, and tell you where the time actually goes. In writing, and yours to keep whether or not you hire us.