WooCommerce 9.9 will deliver a dramatic boost to admin performance, transforming once-sluggish screens into near-instant experiences. Through smarter caching, asynchronous data loading, and leaner database queries, we’ve reduced critical page-load times by up to 95%, so store managers can breeze through large datasets without waiting.
If you’re managing stores with hundreds of thousands of orders, tens of thousands of products, or vast customer datasets, WooCommerce 9.9 is built for you.
We’ve measured up to 95% reductions in page load times across critical admin screens. Don’t believe us? Checkout the 9.9 beta release, and test it using our WooCommerce Beta Tester plugin.
Here’s a breakdown of what’s changed under the hood and what you can expect as a result.
📊 The proof
We ran benchmarking using a store with:
- >1.2 million orders
- 15,000 products
- 60,000 customers
- HPOS enabled
We compared WooCommerce 9.7.0 as the baseline against 9.9.0 and saw improvements across every corner of the admin, from order count summaries and comment tallies to custom-field lookups and analytics widgets.
🚀 How did we get these gains?
🧠 Smarter order count caching (#54034)
🚀 To take advantage of this performance update, make sure you have HPOS enabled
The Orders admin screen now uses cached counts, slashing page load times from 22 seconds to under 1 second on large stores. Filtering and navigating through orders is now nearly instant, even with millions of records. While cached counts may occasionally be briefly out of sync, regular cache updates and expirations minimize any temporary inaccuracies.
💬 Optimized comment count caching (#54984)
The wc_count_comments
logic has been refined to only invalidate when relevant comment types change, reducing repeated invalidation and avoiding unnecessary, expensive queries.
This approach delivers a more stable and responsive admin experience by reducing query overhead and smoothing out response times during active store management.
📦 Async loading for Custom Fields metabox (HPOS) (#55136)
🚀 To take advantage of this performance update, make sure you have HPOS enabled
The Custom Fields metabox for HPOS (High-Performance Order Storage) orders now loads the list of available custom field keys asynchronously, fetching them only when needed rather than on every page load. This eliminates a costly query that impacted Edit Order page load times on large stores.
📊 Dashboard status widget loads in background (#56039)
The WooCommerce dashboard status widget now loads asynchronously, making the WordPress admin dashboard usable immediately, even for stores with hundreds of thousands of orders.
Although the widget data was cached in previous releases, the cache often expired or was purged by order processing. With this update, the status widget fetches its data after the dashboard page has rendered, reducing home page load times from minutes to milliseconds for stores with substantial order data.
📅 Faster “Order Months” dropdown (#55510)
🚀 To take advantage of this performance update, make sure you have HPOS enabled
Generating the dropdown of months for filtering orders is now much faster. The new approach simply finds the oldest order and generates a list of months from that point up to the present, rather than running an expensive database query to determine every month in which an order was created. The main tradeoff is that the dropdown may now include months when no orders were placed, a negligible hit on accuracy for huge performance wins.
👚More efficient product checking on onboarding (#55872)
The product creation onboarding task no longer uses SQL_CALC_FOUND_ROWS
. Instead, WooCommerce now checks for the existence of a product with LIMIT 1
, eliminating the need to scan and count all products, a small change with a big performance impact on stores with massive catalogs.
📈 Cached order statuses for analytics (#55916)
Previously, WooCommerce would repeatedly run a heavy
query to fetch order statuses for analytics. As of 9.9, that list is cached for 12 months as a transient, significantly reducing query load on large stores.SELECT DISTINCT status FROM wp_wc_order_stats
🧾 Tax Onboarding Task (#56089)
Caching has been introduced to the Tax Onboarding Task to avoid querying the number of tax rates on every admin page load. With the new caching approach, the result of the tax rate existence check is stored and reused until the cache expires or is invalidated, so the expensive query only runs once per cache cycle. This small win adds up fast for stores with thousands of tax locations.
🔄 Smarter HPOS sync checks (#56186)
🚀 To take advantage of this performance update, make sure you have HPOS enabled
WooCommerce now optimizes how it checks for orders pending synchronization with High-Performance Order Storage (HPOS) specifically within the Advanced Features settings. HPOS now avoids counting all unsynced orders unless a sync is actively running, dropping query time from ~400ms to 1.5ms on large datasets.
The pending sync order count is still displayed when a sync process is in progress, ensuring administrators have access to detailed information when it matters.
⭐ Cached pending product review counts (#56215)
Pending product review counts in WooCommerce are now cached using the object cache, eliminating the need for a database query on every admin page load that displays this count. With this update, the count is incremented or decremented in the cache as reviews are added or approved, ensuring the number remains accurate without repeated database lookups.
🔧 What this means for you
If you’re building or maintaining extensions that touch admin pages or perform custom queries:
- Expect faster baseline performance across all admin screens
- Be mindful of new caching layers and limits in places like order counts, order status, comment counts, tax rate existence, and pending product reviews.
✅ Upgrade recommended
If you manage high-volume WooCommerce stores, upgrading to WooCommerce 9.9 should be a priority.
WooCommerce 9.9 is scheduled to land on June 2, 2025, but in the meantime you can preview the 9.9 Beta using the WooCommerce Beta Tester plugin.
Leave a Reply