Why Your Product Configurator Gets Slower as You Add Variants
Aneesh . 9 minutes
October 22, 2026

Why Your Product Configurator Gets Slower as You Add Variants

Say you sell sofas. A customer picks the fabric, the size, and the leg finish. Five choices in each. Your configurator handles it fine.

Then you add arm style. Also five choices.

Now customers wait several seconds after every click. In the admin, generating the product takes forever or stops halfway. You added one dropdown, and everything got slower.

The usual response is to raise the memory limit, warm the cache, or move to a bigger server. That can help. It rarely fixes it, because the problem is not capacity. It is how many ecommerce platforms store a product like this.

Here is what is actually happening, and what you can do about it without taking choices away from customers.

A Bigger Server Buys Time, Not a Fix

More CPU, more memory, a faster database, more caching. All of it is worth doing, and your configurator will get faster.

What it does not change is how fast the problem grows. If every new dropdown multiplies the work your system does, a bigger server gets you one more dropdown. Maybe two. Then you are back where you started.

The sofa still loads slowly. It just takes a few more options to get there.

Every New Option Multiplies; It Does Not Add

This is the part that surprises most people.

Many ecommerce platforms do not store your sofa as one product with four dropdowns. They store a separate product for every possible sofa. Each one gets its own ID, its own price, its own stock field.

Magento and Adobe Commerce work this way. A configurable product is really a set of individual simple products, one per variation. Odoo is similar, with every variant carrying its own inventory and sales records.

So count what you just created.

Fabric, size, and leg finish, five choices each, is 125 sofas sitting in your database. Add arm style, and it is 625. Add cushion type, and it is 3,125.

Your customer sees five dropdowns. Your database is holding three thousand sofas, almost none of which anyone will ever order.

That is also why the slowdown feels sudden. A few hundred records is nothing, so everything is fine for a long time. Then one more dropdown pushes the product past what the platform can load quickly, and the configurator seems to break overnight. Nothing broke. The multiplication caught up.

There is a second limit worth knowing. Some products are not just fabric times size. They need a custom width, a cut-to-measure length, or a price worked out from area. A list of pre-built combinations cannot hold that at all. At that point, the issue is not the number of combinations. It is that the model does not fit the product.

Platforms Already Know This, and They Choose for You

This is where it stops being your server’s problem and becomes your customer’s.

WooCommerce documents its own behaviour. If a product has 30 variations or fewer, the dropdowns are smart: pick a size, and the colour dropdown updates to show only the colours available in that size.

Go above 30 variations, and WooCommerce turns that off. Every colour stays on screen whether it exists in that size or not. The customer picks a combination and only then gets told it is not available.

The reason given is performance. Working out which combinations are still valid after every click gets expensive as the numbers climb.

That is a platform vendor saying it outright. Under the limit, you get a configurator that guides people to real products. Over it, you get speed by letting them hit dead ends. You can raise the limit, but their own guidance is to keep it low, because raising it slows the page down.

Both options cost you orders. One makes people wait. The other wastes their time.

What This Looks Like on Shopware

Shopware 6 handles it the same way as Magento. Your sofa is a parent product, and every valid combination becomes its own child product with its own price and stock.

You can tell Shopware not to create certain combinations, like a fabric you never offer in the largest size. That reduces how many get built. Everything remaining is still a full product record.

So adding another dropdown does not add a few rows. It multiplies the catalogue again. That is why variant generation, catalogue indexing and product page loads all slow down together as the range grows, even on good hosting.

Deleting Options Is Not the Answer

The quickest way to speed this up is to remove choices. Sometimes that is correct. If you listed options nobody buys, clearing them out is just tidying up.

If customers do buy them, it is the most expensive fix available.

The options that get cut first are the least popular ones, which usually means the premium fabrics, the larger sizes, the upgraded legs. Those are the configurations that raise order value. You are trimming the top of your price range to save a second of load time.

There is a quieter cost too. The fewer configurations your site shows, the less accurately it represents what you sell. On made-to-order furniture, the gap between what someone pictured and what arrives is what drives returns. Removing options does not close that gap. It moves the problem to your returns desk.

If you really do sell the sofa in three thousand configurations, your site has to be able to say so.

The Fix: A Formula Instead of a List

Think of your current setup as a spreadsheet with 3,125 rows, one for every possible sofa, each written out in advance. Every time a customer clicks, the system searches that spreadsheet.

Now picture one row and a formula instead. The formula knows which fabrics exist, which sizes they come in, which combinations are not allowed, and what each choice adds to the price. It can describe all 3,125 sofas without any of them being written down.

That is the whole idea. Stop storing the answers. Store what produces them.

In practice, this means the configurator holds one product plus a set of rules. When a customer picks a fabric, the system works out what that choice allows and what it costs, right then, for that one selection. It is not searching a table of pre-built products, because there is no table.

Be clear about what this does and does not solve. It is not automatically faster. The work moves to applying the rules, and that depends on how many rules there are, how complicated the pricing is, and how well the whole thing is built. A messy rules setup can be slower than a well-built variant table.

What changes is what you pay for. You stop paying for three thousand sofas nobody ordered.

What the customer ends up with is not a product record. It is a specification: the choices they made, checked against your rules, priced, and ready to go to sales or production as an order, enquiry, or quote.

What This Looked Like in Practice

We built exactly this for a furniture brand in Hamburg that sells customisable sofa beds and couches, where customers choose colours, fabrics, mattresses, armrests, sizes and foot options.

Their existing store had the problem described above. The configurator was slow specifically because of the number of configurable options, and customers struggled to see what combinations were actually available.

We rebuilt the configurator on Shopware 6 with a Vue.js frontend, hosted on Vercel, so option changes update instantly without reloading the page. The reported outcome was a 30% improvement in page loading speed, with instant option selection and better accessibility across devices. The client projects a 15 to 20% lift in conversions from the change.

The useful detail for anyone in the same position is that the range did not shrink. The customer still chooses from every option the brand offers. What changed was how those choices are handled.

What About Stock, Pricing and Your ERP

This is the first thing anyone operational asks. If there is no stored product for each combination, what are you counting, pricing, and shipping?

It depends on what you sell, and this is where the approach stops being universal.

For made-to-order products, stock usually sits with the components. You count fabric, frames, and legs, not finished sofas, because the finished sofa does not exist until someone orders one. Price comes from the base product plus the choices. The order carries the full specification to whoever builds it.

For products where every combination genuinely sits on a shelf and ships as its own item, stock per variation is the right model, and platforms that track inventory per child product are doing the correct thing. Magento works this way for exactly that reason.

So the question is not which model is better. It is which one matches how you actually hold and ship the product.

From there, the order carries the configuration, the price, and whatever production needs, and feeds an ERP such as Business Central, SAP, Xentral, or Odoo.

Rebuild, or Fix What You Have

Not every slow configurator needs rebuilding.

Sometimes it is slow because of how it was built. Queries asking for more than they need, every option recalculating on every click, too much data loaded up front. Those are implementation problems with implementation fixes, and they cost far less than a rebuild.

Sometimes it is slow because every combination exists as a stored record and you keep adding options. Then optimisation buys time without changing direction, and the way the product is stored is the real limit.

A useful first clue is whether performance gets steadily worse as you add options. That does not prove the storage model is wrong, because badly built code also degrades as numbers rise. But it tells you to look at how combinations are stored and resolved before you look at the server.

Conclusion

If your configurator is slowing down as your range grows, the first job is working out which of those two situations you are in. That is the difference between a few weeks of work and a different build.

We run a 30-minute session looking at your product range, how your configurator handles it now, and what it would take to carry the full range without the slowdown.

Is Your Configurator Ready to Scale?

Greetings! I'm Aneesh Sreedharan, CEO of 2Hats Logic Solutions. At 2Hats Logic Solutions, we are dedicated to providing technical expertise and resolving your concerns in the world of technology. Our blog page serves as a resource where we share insights and experiences, offering valuable perspectives on your queries.
Aneesh ceo
Aneesh Sreedharan
Founder & CEO, 2Hats Logic Solutions
Subscribe to our Newsletter
Aneesh ceo

    Stay In The Loop!

    Subscribe to our newsletter and learn about the latest digital trends.