Before HPOS, WooCommerce stored orders as a custom post type — meaning every order lived in wp_posts alongside pages, blog posts, and everything else, with order metadata scattered across wp_postmeta as generic key-value rows. HPOS moves orders into their own dedicated tables built for that specific data shape.
What actually changes
wp_wc_orders // core order data, replacing wp_posts for orders
wp_wc_order_operational_data
wp_wc_orders_meta // replacing generic wp_postmeta lookups
wp_wc_order_addresses
wp_wc_order_product_lookup
Order queries that used to filter through wp_postmeta‘s generic meta_key/meta_value structure now query proper typed columns instead — for a store with tens of thousands of orders, this is a genuine, measurable difference in admin order list load time and reporting query speed, not a marginal one.
Checking compatibility before migrating
Not every plugin has been updated to work with HPOS — some older plugins query wp_posts directly for order data instead of using WooCommerce’s own functions, and those break silently after migration:
// WooCommerce > Settings > Advanced > Features
// shows a compatibility list for active plugins before you enable HPOS
Check that list carefully. A plugin marked “incompatible” there isn’t necessarily broken, but it does mean testing on staging before flipping the switch on a live store.
The migration itself
WooCommerce provides a built-in sync tool that copies existing post-based orders into the new tables without deleting the originals, so there’s a rollback path if something goes wrong. It runs in the background via Action Scheduler rather than all at once — on a store with a large order history, this can take hours, which is fine, but worth knowing going in so it’s not mistaken for a stuck process.
Should you migrate
For a new store, HPOS should just be enabled from the start — there’s no post-based history to worry about. For an established store, the calculus depends on plugin compatibility and order volume: a store with a few hundred orders total won’t notice much difference either way; one with tens of thousands genuinely will.