If a WooCommerce store has been running “compatibility mode” for a while as a safety net, that net just got thinner. WooCommerce 10.7, released in April 2026, turned off “sync on read” by default, the background mechanism that used to quietly patch things up when an older plugin wrote order data straight to the old wp_posts table instead of the newer order tables. That change is a good excuse to actually understand what HPOS is, whether a given store is running on it, and what to check before flipping the switch.
Quick Answer
HPOS (High-Performance Order Storage) is WooCommerce’s dedicated database structure for orders, replacing the old approach of storing them as posts. It’s been the default for new stores since WooCommerce 8.2 (October 2023). Existing stores aren’t forced onto it yet, but check WooCommerce → Settings → Advanced → Features to see which mode a store is actually running, and don’t assume compatibility mode still covers every gap: WooCommerce 10.7 (April 2026) turned off the automatic “sync on read” safety net by default.
What HPOS Actually Is
HPOS stands for High-Performance Order Storage, also called Custom Order Tables. Before it existed, WooCommerce stored every order as a post: order data lived in wp_posts and wp_postmeta, the same general-purpose tables WordPress uses for blog posts, pages, and everything else. That worked fine for a small shop, but it meant order queries were competing with every other kind of content query on tables that were never designed with orders in mind, and a store with tens of thousands of orders could feel it.
HPOS replaces that with four dedicated tables, purpose-built for order data:
wp_wc_orders: the core order recordwp_wc_order_addresses: billing and shipping addresseswp_wc_order_operational_data: payment method, shipping totals, and other operational fieldswp_wc_orders_meta: order metadata
Nothing changes about what the order screens look like or how they behave day to day. What changes is where the data physically lives, and that only matters in one specific way for most store owners: any plugin, custom script, or old tutorial that queries wp_posts directly for order data stops finding anything there once HPOS is active, since orders no longer live in that table at all.
Is It Already On, and Do You Have to Use It
HPOS has been the default for every brand-new WooCommerce install since WooCommerce 8.2, released in October 2023. If a store was set up any time after that, it’s almost certainly running on HPOS already without anyone having to choose it.
Older stores are a different story. WooCommerce has said plainly that existing stores will eventually be migrated, but hasn’t set a forced-migration date: “when we’re ready to migrate existing stores over, we will reach out again.” For now, an older store can keep running on the legacy post-based storage indefinitely, though it’s no longer where WooCommerce is putting its development effort.
Check which mode a store is actually on under WooCommerce → Settings → Advanced → Features. That screen shows “Order data storage” as either “High-performance order storage” or “WordPress posts storage,” and it’s the same screen used to switch.
The 2026 Change Worth Knowing About
Compatibility mode is the safety net WooCommerce built for the transition period: it keeps both the old posts table and the new order tables in sync, so a store can switch to HPOS while still having a working fallback if something breaks. Part of how it worked was “sync on read,” a mechanism that would notice if something had written order data directly to the old table (an outdated plugin, a leftover custom script, direct SQL) and quietly pull that change back into HPOS so nothing was silently lost.
As of WooCommerce 10.7, sync on read is off by default. The practical effect: if something is still writing order data the old way, that write no longer gets automatically reconciled into HPOS. It’s a genuine signal that WooCommerce is winding down the legacy-compatibility scaffolding, not a forced migration yet, but it does mean compatibility mode is a thinner safety net than it used to be. Anyone who’s been running compatibility mode specifically because of one older plugin should treat this as the moment to check that plugin’s HPOS-compatibility status directly, not assume the old safety net still covers it.
How to Migrate Safely
For a store that’s still on legacy storage and ready to move:
- Go to WooCommerce → Settings → Advanced → Features and turn on “Enable compatibility mode (synchronizes orders to the posts table)” first. This keeps the old table updated in parallel, so the switch can be reversed instantly if a plugin turns out not to be ready.
- WooCommerce schedules a background sync of existing order history into the new tables, processing orders in batches. It runs automatically, but it can be watched (or triggered) directly under WooCommerce → Status → Scheduled Actions, or from the command line with
wp wc cot syncif the store has WP-CLI access. - Once the sync finishes, switch “Order data storage” to “High-performance order storage.”
The real risk in that process isn’t the sync itself, it’s plugin compatibility. Any extension that manages its own order-related data, WooCommerce Subscriptions and Bookings are common examples, needs to stay active and updated through the switch. Deactivating an order-related plugin before or during the migration is what actually causes data to go missing or fall out of sync, not the HPOS switch on its own. WooCommerce’s own Features screen will flag plugins it knows aren’t HPOS-compatible before letting the switch happen, which is worth reading carefully rather than clicking past.
One more thing worth knowing: you can’t move the “authoritative” data source to HPOS while orders are still mid-sync. The sync has to finish first, so on a store with a genuinely large amount of order history, it’s worth checking Scheduled Actions rather than assuming the switch is ready the moment it’s clicked.
For the ongoing day-to-day side of running orders once HPOS is sorted, whichever storage mode a store lands on, the workflow of processing, updating, and fulfilling orders doesn’t change. See how to manage WooCommerce orders for that part.

Etienne Basson works with website systems, SEO-driven site architecture, and technical implementation. He writes practical guides on building, structuring, and optimizing websites for long-term growth.