Skip to content


  1. Marcus Quinn
    July 6, 2019 @ 6:48 pm


    • Dave H.
      July 6, 2019 @ 7:03 pm

      Yeah attributes are useful IF the price doesn’t change per variation, but I have many clients who have real need of the price changing per option-combo.


  2. Sven
    July 8, 2019 @ 10:03 am

    Hi Dave,

    thanks for that interesting post. We have a ticket open so I guess we`ll be communicating through that.

    Best regards


  3. Jarkko Saltiola
    July 11, 2019 @ 2:01 pm

    This has been the major pain on a site I’ve been working on (10000+ products, some with 1000+ messy variations migrated from long running Magento shop) and got to similar conclusion. For my case it would be enough to have “prices starting from” shown on archive pages as transforming product data to use product attributes/rules would take a lot of manual effort.

    Thank’s for the post and your continuing efforts!


    • Dave H.
      July 12, 2019 @ 2:09 pm

      Ok cool – and what about the scenario where there is a blue (£10), red (£15) and green (£20) variation and the user searches for red?

      I am fairly certain I can actually filter this quickly at the DB level and get the prices from and eliminate the need for the per-variant code, and in that case, I’ll be able to show: £15.

      But would you want the ‘red’ variation image to show or the parent product variation image?

      And would you want it to show price: £15 or ‘Prices from £10’ in this case too?


  4. Jarkko Saltiola
    July 12, 2019 @ 3:55 pm

    In this case showing the starting price “Prices starting from £10” would well do it already.

    If this was implemented though, I’m having some doubts how accurately the search could pick up the right variation price as with the color example, and if it would have much actual benefit for the customer (store largely selling clothes). Looking at search statistics there’s barely any searches (<1%) for a color, or size for that matter that could narrow down the search like this. Also, often if there's a color option there's a size option too so it might add complexity to this logic.

    The shop does not have separate images for variations so the parent images are always used.


  5. Anne Verberckmoes
    December 30, 2019 @ 11:47 am

    Wow, finally a post about someone who has the same problem as I have.
    I had no idea that the slowness of my site was due to the variable products.
    Almost all my products are variable products (I sell everything in 6 finishes) and my stock management is far more important than the prices.


  6. Viola Bledsoe
    January 27, 2020 @ 11:29 am

    yah.. understanding why variations are slow.. you already add more things .. and absolutely correct you are! your content is really expressed your merit .. this post help to search the topic.. thanks for your information.. your example is more helpful to clear the topic.


  7. Nigel
    March 24, 2020 @ 3:18 pm

    I am in the same boat. I have wp-all-import plughin with 55,000 variations on a product which just drowns any server I have put it on. I currently have upgraded to an XL VPS – still crashing. So please tell me about “The ultimate solution”…sql query…kindly elaborate in laymans terms


    • Dave H.
      April 6, 2020 @ 4:04 pm

      Is it possible for you to change any of your variations to product options? e.g. if there are any variations which don’t alter the price at all, they should be made product optoins, and if you have variations that change the price by a consistent amount across all other variations then they should be product options too. E.g option 1 +£0, Option 2 + £15, Option 3 + £30 etc


      • Nigel
        April 6, 2020 @ 7:29 pm

        I don’t think so, these products are all unique and have different prices. Well they are the same product but all different variations of customisation.


        • Dave H.
          April 6, 2020 @ 8:08 pm

          Ok, then so far, the best approach to speeding these up is to add Redis to your site and the Redis plugin by Till Krus. My upgrade to fix this further is not yet ready.


          • Nigel
            April 6, 2020 @ 9:06 pm

            Do you mind sharing a link to this redis plugin so I can ensure we are talking about the same thing? Also, will this resolve my issue then?

          • Dave H.
            April 7, 2020 @ 9:47 pm


            You can also use W3 Total Cache – it’s in the Object Cache settings page there. In fact, W3 Total Cache gives a bit more control but the one above I use a lot.

  8. Ray
    April 3, 2020 @ 4:25 am

    hi dave,

    using woocommerce composite products will be better at handling this no?


    • Dave H.
      April 3, 2020 @ 5:10 am

      Yes – if it’s possible with your config. Product Options can help too. Variations are really intended for anything that changes the price in a unique way. So – if you ave product options that when enabled add £10 consistently for option A, +£30 for option B etc then options are a better choice than variations.

      Variations give the advantage that the specific combination of options can have its own totally unique price, but the major downside that they really slow down woo.

      I’ll get back to working on the fix for this soon – got other updates coming out shortly.


  9. Mike
    April 14, 2020 @ 9:03 am

    Hi Dave! great website with great information and plugins. This article drew my attention particularly as I‘m having the exact problem described above.

    I wouldn‘t mind prices stated „from 100$“ at all, even when filters are active. The load time is just not acceptable if one has over 200 variations.

    When do you think the plugin to fix this will be ready for sale?


    • Dave H.
      April 14, 2020 @ 9:55 pm

      Faster Woo Widgets already improves this quite a bit, as does Scalability Pro, and also adding an object cache helps.

      I’m not sure when I’ll get the upgrade to fix product variations permanently, but it’ll definitely be this year.


      • Alexander
        August 19, 2022 @ 10:14 am

        Hi! Is there a fix for this yet?


        • Dave H.
          August 21, 2022 @ 3:55 am

          Hi, yes, to be fair it’s been fixed for a while. Just when you’re logged out only, so when you’re looking at status = published rather than status in (published, private) then it’s quite a bit faster with scalability pro.

          I’m working on some case studies to demo this difference, will publish soon. In any case, if it doesn’t help you enough we have a 60-day money back guarantee.


  10. Liam
    April 28, 2020 @ 8:30 am

    Hi Dave,

    Thanks for this. My search for speeding up woocommerce continues :-).

    I am using variations for size and colour of clothing. Each size and colour of a T-shirt has a unique sku and image which is needed for ordering from our supplier.

    The front end site using cache for non logged in users is very fast, however caching is not enabled for logged in users so the site runs like a dog for them. When I login to my Admin panel it is also severely slow.

    Would you have you any advice on this?


    • Dave H.
      April 28, 2020 @ 9:31 pm

      Make sure you have an object cache in use – those can be used by logged in and logged out users and help a lot with product variations.


    • Dave H.
      May 3, 2020 @ 4:14 pm

      Also – with variations, there are plugins and theme features I’ve seen a lot where the code loops through each product variation on the archive page. For example – if you have functionality to change ‘ON SALE’ to ‘-20%’ or similar then that is very frequently badly coded.

      I’ll be adding some functionality to Scalability Pro to scan the plugin and theme codebase to identify potential causes of slowdown.


  11. Luke Kiely
    June 3, 2020 @ 12:21 pm

    Hi Dave!
    I’m currently running a prize draw website and we use product variations for ticket numbers, which means the pages for prizes with over 200 ticket numbers run very slowly. I’ve seen on the Trello board under the current backlog there is “scalability pro – speed boost for product variations”. Do you think once looked into this would help with variations so large (up to 800). Or any advise as to whether there is any sort of other way round this to boost the speed for these pages?


    • Dave H.
      June 3, 2020 @ 4:22 pm

      Do you have Redis object cache installed and configured? That’s the number 1 thing to boost variation speeds currently.


  12. Josh H.
    December 20, 2020 @ 1:48 am

    Any new headway on Scalability Pro? I recently purchased it and am having the same issue. Currently I have about 800 different variations on a particular product and my page takes ~10 seconds to load. I am Scalability Pro and still not fully happy with the speed.

    I am using Product Options for products that allow it due to pricing but unfortunately we do have some products that really need the pricing flexibility of variable products because certain options do not have fixed price mark up depending on variations.

    This is my example page where I am running into the issue currently:


  13. Peter
    January 26, 2021 @ 12:44 pm

    Hi – We have this exact issue on our dev site with a few products that have 500 plus variants. Any update on this would be great, but in the meantime would there be a benefit in installing Scalability Pro anyway re this issue? Thanks, this article was really helpful, not least because I know we are not alone!


    • Brett
      March 29, 2021 @ 4:02 pm

      Hi Peter,

      I see your site is fast now, what solution did you find?


  14. Brett
    March 29, 2021 @ 4:00 pm

    Hi Dave, I’ve been keeping an eye on this.. got an ETA?


    • Dave H.
      March 29, 2021 @ 6:25 pm

      No firm ETA yet, sorry. Schedule pretty much looks as follows: This week & next is bug & perf fixing + FWW testing. FWW should be released next week I think.

      After FWW is released, I’ll have a sprint dedicated to Scalability Pro – there are quite a few potential things to include in that upgrade.

      I haven’t prioritised this as high as maybe I should since there are workarounds that really help – reduce how many variations you have (e.g. using product options or product addons) and use a persistent object cache (e.g. redis or memcached). On top of that, recent versions of Woo have included ‘helper’ tables to improve performance, so I need to take time with a proper Scalability Pro sprint to examine how I can use those tables to further optimise, or whether I actually need to go the whole hog and create my own tables to improve performance.


      • Adam
        June 16, 2022 @ 3:05 am

        Has there been any further progress in Scalability Pro to speed up variations? Are there any new alternatives apart from the ones mentioned (Redis, Product Options etc)?


        • Dave H.
          June 24, 2022 @ 9:17 am

          Any further improvements require custom coding – but in most cases, you can make it work although sometimes you need to customise the code a little.

          For example, there is some code in a lot of themes which alters the ‘sales flash’ to show a ‘percentage discount’ – this code got copied from the businessbloomer website where it had been submitted very badly coded. Basically, they looped through all child variations and got the prices from them. This involved loading each product variation. The code rewrite for this involves using a function available on the parent product to get child variation prices in an array. This is maintained at the parent level and is far faster, uses less RAM etc.

          So – if you have a performance issue due to product variations, there’s a high chance that your codebase (some plugin feature or some theme feature) suffers from this bad coding pattern.

          If you search for get_children() in your code base and then look at that code, if you see the code is performing a loop and then creating an object with each child variation then this code could probably be rewritten.


  15. .
    August 30, 2021 @ 5:46 am

    please tell us more about woocommerce product rule and how to achieve that on our site


    • Dave H.
      August 31, 2021 @ 10:25 am

      If you have variations where a variation changes the price by a specific amount – e.g. medium + £10 or large + £20 then you can have them as rules rather than variations.

      If you have varitions where the price doesn’t change and the images don’t change, you can have them as product addons. It’s a shame variations are the only default included in woo because people overuse them and end up with a slow site.


  16. Richad Hassim
    June 27, 2022 @ 3:26 pm

    Hello Dave !

    We lunched a Woocomerce website ;

    As you can see on mobile version espacially the loading is really slow 🙁

    I think it’s because variation product, each piece is unique so we had to install this plug in.

    We have already used WP-Rocket but not to much effect. Do you thinkg buying scalability pro is a solution ?

    Thanks !



    • Dave H.
      June 28, 2022 @ 2:20 pm

      The best things you can do right now is to try and reduce how many variations you have and use an object cache. The object cache helps with variations a lot, but if you have > 1000 variations then things will still be slow.

      If a variation changes the price consistently and you do not have different images for that variation, then probably this could be a product option or product addon.

      Scalability Pro does not help with product variations. It helps with many other areas, but not product variations.


  17. Mike
    November 8, 2022 @ 10:08 pm

    An almighty quest for sure! I’m reading many comments mentioning “product options” but I feel I’m missing something obvious here. I can’t see any plugins or native features for adding product options. Perhaps it’s a reference to “Add-ons”?

    If that’s the case, as far as I know, it’s not possible to manage stock levels of combinations with add-ons. Is that the case?

    Thanks for the efforts!


    • Dave H.
      November 10, 2022 @ 1:55 pm

      Yes if you need stock options per combo then you need variations. If the options do not affect stock levels then you should options – add ons, options, called different things by different plugins and yes this functionality is unfortunately not native. Unfortunately you only get variations as native functionality for handling this stuff which leads to performance issues when people use them for things that would be better served by product options or product addons.


      • Mike
        March 8, 2023 @ 4:15 pm

        Apologies for the lag, thanks so much for your response! I need to be able to manage inventory for each variation, so will need to work out the best way of using variations.

        I’ll try the redis plugin that has been mentioned many times, and I was also wondering if there would be a way to load the product page, THEN load the variations… however I can’t see how to do this. It seems when you click a link to the product page there is a lot of queries in the pre-load phase. I have a lot to learn!

        Thanks again!


  18. Greg
    March 7, 2023 @ 6:33 pm

    Hi Dave,

    Great to see someone talking about load speed issues for Woo – it’s painful.

    I wonder if you have any clever ideas for how I could structure our website.. I’m building a bulk farm feed website where customers can either buy products by the truck load (a ‘unit load’ varies based on how many can fit on truck – typically 48-80 products) or by single product if the customer arranges pickup / delivery themselves.

    I tried plenty of ways, then reached out to Woo team.. their suggestion was to create a single product, then a seperate bundle product of the single (for truck loads), then a composite product to choose between.. but it’s running crazy slow and very buggy.

    Do you have any potential solutions I could try? Really appreciate it!


  19. Greg Toth
    June 12, 2023 @ 8:23 pm

    I had this issue but I solved it an alternative way.
    My variables was up to 7000 and after generating all variations I need to duplicate the product maybe 40x times with different image and text. So that is a lot of variation. Slow speed and ect…

    The solution:
    I created a single product so the add to cart button always active. I found a custom section addon so I added custom fields to the product page. Then I added a value to each option.
    This addon isnt added the value to the price, but placed “additional price” so I overvrite with css and the single product price is 0,1 so this isn’t showed on frontend. If it is, then hide with css.
    With this solution I have a multiple choise with price but zero variation. 🙂
    I had to use a little css but thats okay.


  20. dave
    September 28, 2023 @ 3:56 pm

    That’s all fine until you need a separate sku for each variation. Attributes simply will not work alone.
    We are experiencing painful delays when using the Wholesale Prices Plugin. This adds pricing levels to each variation. We’ve tried everything to get the pages to load faster, deactivating all of the plugins except for the woocommerce and wholesale prices plugin (by Rymera) and still nothing. When the wholesale prices plugin in deactivated, the site is super fast, with over 11,000 variations and 76 products. Not to mention 24 other plugins active.


    • Dave H.
      September 28, 2023 @ 3:59 pm

      This sounds like an issue with the Wholesale Prices Plugin. If you can enable Query Monitor and capture the queries from the wholesale prices plugin there may be optimisations I can implement through my Scalability Pro plugin.

      Do that, grab the screenshots, then come paste those screenshots into our Discord Server so I can help you


Leave a Reply

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