Performance Improvements in WooCommerce 3.6 to Speed Up Stores

Alongside the new product blocks available in WooCommerce 3.6, we made a series of performance improvements in the front and back end to speed up performance.

Read on to see how these changes will improve both the management and shopping experience on WooCommerce stores.

Front End Changes

We focused efforts on making a range of performance improvements that reduce loading times for the store and individual product pages, which in turn provide a better browsing experience for customers.

The full list:

  • A 62% improvement in the load time when ordering and filtering products
    • A new lookup table, similar to a master list, speeds up the ordering and filtering of products by price, popularity, SKU, and rating. This positively impacts all pages that list products in the front end; and the WooCommerce wp-admin dashboard view, product-related reports, and related functionality in the back end.
  • Reduced overall load time by bypassing inactive webhooks
    • Only active webhooks are loaded on all pages across the store.
  • Reduced the load time for pages with category or product attribute lists
    • Improvements to the custom ordering of categories and attributes process has reduced the load-time on affected pages.
  • Reduced load time of product pages with attributes
    • Caching of product attributes helps frontend pages to load faster.

Back End Changes

↑ Back to top

On the store admin side, common management views and activities have been optimized, such as:

  • Bulk creation and/or updating multiple products
    • A new method of handling versioned transients has been introduced to speed up the process of bulk-editing or creating multiple products.
  • Making use of lookup tables and indices to speed up data retrieval
    • Running various queries or searches are faster.
  • Loading REST API code only when running REST API queries
    • A double win benefitting the store admin and customer, which also prevents unnecessary code from running during API requests (e.g., cart is not initialized).
  • Working with downloadable products
    • An index has been added to the downloads permissions database table to speed up workflows that use downloadable products.
  • Searching of variations
    • A new feature that enables variations to be searched by attribute name or value.

You can also read an in-depth post about the Performance Improvements in 3.6 that covers the technical details around these performance improvements on the WooCommerce Development blog.

Start Preparing Your Store

Get ready for the latest version of WooCommerce by reviewing How to Update Your Store, and ensure you have taken steps to make a backup to keep on file.

Later this week we will share news about a brand new feature plugin – WooCommerce Admin – which brings powerful statistics, analytics, and custom reports.

Gary Murray Avatar

About

14 comments

  1. Make order number sequential instead using common wp table,as with each order number & new post order numbers skips which is not ideal for in invoicing or add invoice numbering it will help keeping orders sequentials , i tried several plugins but thats not permanent solition.

    Amit
    April 6, 2019
  2. Hi,There, Need car rental woocommerce free themes .We bought RnB woocomerce and rental plugin But need a them for our web site.Thanks,

    Hossain Ahamed
    April 8, 2019
  3. This is what we were all waiting for:
    “Making use of custom tables and indices to store orders and customer data”.

    Question:
    – Will the upgrade from WooCommerce v3.5.x to v3.6.x break anything – specially regarding the transition of the use of the custom table, how will “old orders” which are in posts table be treated?

    Regards,
    Khayrattee

    WP++
    April 10, 2019
    • Hey Khayrattee, the changes are fully backward compatible and all old data will still be there. I think the item you highlighted might be worded wrong as we are not storing the data in custom tables exclusively but instead we are using new custom tables to aid in looking up the data quicker.

      So, in short, all the data is still stored the same way, we are just populating new lookup tables with certain fields on certain actions which speeds up searching and looking up data considerably faster.

      Gerhard Potgieter
      April 15, 2019
      • Currently products are stored in wp_post/wp_postsmeta. When updating price and stock in wp_postsmeta on meta_key _price, _regular_price, _stock, and _stock_status, will I need to update another table as well? Where are the new price and stock locations and the name of the new transients if any?

        Gabriel C
        April 25, 2019
  4. I can confirm these performance improvements having tested this with 3.6 RC 1.
    The most problematic page has been the checkout (from the moment someone hits “Pay now” until the Order confirmation page was shown). From originally 15-20 secs time is now down to 7 to 9 secs (Which also depends on the amount of emails sent).
    I can also recommend the use of wp-rocket and perfmatters plugins to further improve load times.

    Eric
    April 15, 2019
  5. It’s great that woocommerce team are working on performance improvements.
    Database optimization is great. But it’s not the bottleneck in Woocommerce.
    Our store with 2000+ products runs all the mysql queries in less than 0.03 seconds, category page, product page, whatever.
    The rest of the load time, around 0.3 seconds, is php code initializing and running.

    You have to do something about the product objects. A product object is several hundred kilobytes, almost half a megabyte, in memory.

    Plugins that deal with all products at “once” have trouble with this.
    For example creating product feeds for google shopping etc.
    Most of these plugins must use workarounds of php memory limits, they create the feeds partially in batches.
    With 2000 products, a php instance will use up to 1000 MB!

    Simon
    April 22, 2019
  6. Suddenly prices in shop are without taxes when I am logged out, and they are right when I am logged inn. Is it mistake in update?

    Ruth
    April 25, 2019
  7. As some who is not technically savvy< I would like to learn how to pull customizable reports from customer data and have been unable to figure out how to do that. HELP!

    Coffeetime
    April 25, 2019
    • Whining, “help!” is most likely not going to result in you getting help. lol.

      Try researching on google or hiring a web developer, instead of asking for a hand out, and maybe you might get somewhere.

      jackcsi
      April 29, 2019
  8. Just the thing we needed. The store`s search queries were really horrible slow.. but now it works very resposnsive and fast! Great work!

    Matt
    May 3, 2019

Stay up to date with WooCommerce emails

View our privacy policy. You can unsubscribe anytime.

Subscribing...

There was an error subscribing; please try again later.

Thanks for subscribing!
Emails will be sent to

You're already subscribed!
Emails are sent to

Use of your personal data
We and our partners process your personal data (such as browsing data, IP Addresses, cookie information, and other unique identifiers) based on your consent and/or our legitimate interest to optimize our website, marketing activities, and your user experience.