Over the last year, our team and the contributor community have been relentlessly focused on improving WooCommerce performance. At a high level, that means making everything faster, from the frontend interactions on your site, into the admin interface as you manage your store, and down to the underlying processes that happen behind the scenes. Nearly every release in the last year shipped with real performance improvements for your store!
Along the way, we’ve thought it might be helpful to explain how we’re measuring progress, show you some typical improvements, and lay out what our plans for the future of performance optimization look like.
How we think about performance
Many variables can contribute to overall store performance: WooCommerce itself, but also what extensions are active, the quality of your hosting, the scale of your store, and any additional integrations or customizations you might have. Each store is unique, and performance issues often crop up in specific configurations and combinations.
We’re focusing on widely-applicable standards, and ones that WooCommerce can actually impact at the platform level. One common framework for frontend performance can be found in Google’s Web Vitals, which are used to rate site performance across the web. All of these interactions aren’t just about the shopper’s impressions during page load, but also the cart and checkout processes and even your backend store management experience.
The Time to First Byte (TTFB) metric indicates the server response time, though there are aspects of network connectivity that will also affect TTFB. Interactions with your store typically require multiple trips to the server and journeys through Woo’s robust set of APIs, so it’s important that your store’s TTFB remains low and any processing time is as quick as possible for the standard page load as well as any other requests.
First Contentful Paint (FCP) indicates how quickly the browser renders the first visible content—such as text or images—after navigation begins, while Largest Contentful Paint (LCP) measures when the main content becomes visible – typically hero product images, featured banners, or the main product grid. This is often the moment customers can actually start shopping.
We’re measuring visual stability via Cumulative Layout Shift (CLS), ensuring that dynamically loaded content is not causing elements to jump around the page. Interaction to Next Paint (INP) measures how responsive the store feels when the user takes actions like filtering a product collection or adding items to a cart.
The combination of these metrics helps us create a more comprehensive picture of performance for a typical Woo store. Over the last year we’ve been monitoring a combination of live store data and lab results, along with anecdotal data from the community, to help us iterate on measurable improvements with each release.
Recent core performance improvements
One of the most impactful changes to performance was the introduction of High Performance Order Storage (HPOS) in WooCommerce 8.2. If you haven’t migrated your store to HPOS, now is the time. If you come across any popular Woo extensions that are not compatible with HPOS, please let us know so that we can work with their developer to ensure they’re compliant with the new standard for Woo stores. Since HPOS launched, our focus has been on improving performance metrics across your entire store, with multiple performance epics outlining improvements to WooCommerce and WordPress. Here’s just a few of the areas our contributors have focused on:
Faster admin screens. By WooCommerce 9.8, we hit initial goals of reducing average load time over our top 10 slowest admin requests by 15% with a significant decrease of 51.9%. We also brought the initial average time per page down by 83.5%. That release also shipped a 73% smaller JavaScript size (221KB → 60.2KB) and 26% reduction in total resources loaded on the Orders screen alone.
Increased block performance. Earlier this year, we posted about how we optimized block registration to decrease the amount of time WordPress spends loading blocks. We’ve also ensured that legacy scripts are not being loaded for block themes using our newer product blocks. Currently, we’re migrating all of our Product Blocks to leverage the WordPress Core Data API for improved consistency and performance inside of the block editor.
Optimized sessions and caching. Through smarter caching, asynchronous data loading, and leaner database queries, we’ve reduced critical page-load times by up to 95%. Session management has evolved, preventing unnecessary database growth. Other improvements include nocache headers removed from the Cart page, lazy-loading plugin compatibility declarations for extensions, and an improved PaymentInfo class to allow payment providers, including WooPayments, to load cached data, with a potential 4x increase in checkout speed. Join our discussion on future improvements to increase edge caching.
Performant frontend interactivity. Cart and checkout blocks now have enhanced progressive rendering in 10.1 and in 10.2 to decrease layout shifts and eliminate unnecessary components. Woo is also supporting development of the WordPress Interactivity API, already in use in our carousel, gallery, and Product Collection blocks. You can also test the beta iAPI-powered Mini-Cart, which removes the React dependency across much of your store’s frontend, speeding up load times everywhere.
By monitoring the least performant network requests across a wide variety of large and small stores, we continue to target the most widespread bottlenecks. In our recent lab tests of WooCommerce 10.1 and 10.2, we’ve seen initial TTFB scores dropping (that’s a good thing!) as much as ~9% from WooCommerce 10.0. This was only a small sample of the iterative performance improvements in WooCommerce core over the last year, but the work doesn’t stop with just the core plugin.
Collaborating with the ecosystem
WooCommerce core is only part of the performance story. You can enhance the core experience through themes and extensions that offer advanced features and integrations, including more than 1,000 extensions in our popular WooCommerce Marketplace. Extensions in the Marketplace go through a rigorous automated testing process to help developers identify issues and bugs related to the complex interoperability needs of a Woo store.
Part of this process is handled by the Quality Insights Toolkit (QIT), our testing platform for WooCommerce plugins and themes with managed tests, E2E tests, and disposable local testing environments. The QIT test suite focuses on a number of areas including activation, PHP compatibility, and security. We’re now working on implementing a performance suite as well.
During automated tests, QIT can generate a sample large-scale store with a robust data set and leverage the k6 framework for testing common user workflows, from the merchant side (i.e. updating products and orders) to the shopper’s perspective (i.e. updating the cart and completing the checkout). These tests are still in their early stages, and we’re hoping to roll them out to all developers of Marketplace extensions in the coming weeks.
Not everything is automated, though. The performance team has also dedicated time to manually auditing some of the more popular WooCommerce extensions, checking for common performance issues or bugs that might be affecting users. As we discover opportunities for improvement, we’re reaching out to those development teams with feedback, suggestions, and patches or pull requests. Recent examples have included sharing better approaches to leveraging core WordPress functions, as well as changes in how cookies are handled that increase edge cache performance.
Call for feedback
WooCommerce continues to thrive because of the complete freedom it offers. That same freedom means that every store is relatively unique, and relying only on lab data for assessing and executing performance improvements won’t address every issue.
In fact, many of the recent performance optimizations were the direct result of community contributions and developers who shared their experiences with us. We’re always looking for performance edge cases and ways to improve, so we invite you to join the Woo Community Slack or open an issue on GitHub and share your real-world examples with us.
Leave a Reply