HPOS, and why your order screen got faster
High-Performance Order Storage moved WooCommerce orders out of wp_posts. Here's what changed and what to check before enabling it.
Product Md Aminur Islam
For most of WooCommerce’s life, an order was a post. It lived in wp_posts with its data spread across wp_postmeta, sharing tables with every page, product, and revision on the site. That worked, and then stores got big enough that it didn’t.
What HPOS changes
High-Performance Order Storage gives orders their own dedicated tables, indexed on the fields order queries actually use - status, customer, date, total. A query that previously meant several joins against a table holding every object on your site now hits a purpose-built index.
The practical effect shows up on the order list: filtering and searching stay fast as the order count grows, instead of degrading in step with the rest of the content.
What it means for StoreSuite
StoreSuite declares HPOS compatibility and reads and writes orders exclusively through the WooCommerce CRUD layer - wc_get_order(), $order->save() - never direct post meta. That is the whole story: the dashboard works identically whether HPOS is on or off, and switching between them needs no action on the StoreSuite side.
Before you enable it
HPOS is a store-wide setting under WooCommerce → Settings → Advanced → Features. The thing to check is your other extensions:
- Anything that reads order data via
get_post_meta()on an order ID will silently return nothing under HPOS. - Extensions that register order list columns through the posts-table hooks need the HPOS equivalents.
WooCommerce runs a compatibility check and names incompatible plugins before it lets you switch. Read that list rather than clicking past it.
The synchronisation option
WooCommerce can keep both storage systems in sync while you migrate, writing to the legacy tables as well as the new ones. It costs some write performance and it is the right setting to run for a while if you have custom reporting you are not certain about. Turn it off once you have confirmed nothing depends on the old layout.