WooCommerce HPOS

High-Performance Order Storage — faster orders, at any scale

HPOS moves WooCommerce order data out of the bloated WordPress posts table into dedicated, optimised database tables. The result: checkout up to 1.5× faster, order creation up to 5× faster, and backend searches up to 40× faster.

Database structure — before vs after
Legacy (slow)
wp_posts
wp_postmeta
HPOS (fast)
wc_orders
wc_order_addresses
wc_order_op_data
wc_orders_meta
Dedicated, optimised tables
Performance gains
1.5× faster checkout
5× faster order creation
40× faster order search
Default from WooCommerce 8.2
Black Friday ready
Key benefits

What HPOS changes for your WooCommerce store

Three fundamental improvements that matter whether you process 10 orders a day or 10,000.

Scalability

Dedicated tables for orders, order addresses, and operational data mean fewer read/write operations and fewer busy tables. Stores of all sizes scale to their maximum potential without expert database intervention.

40× faster order search

Reliability

Targeted data backups become simpler. Order data is cleanly separated from WordPress content, making it easier to restore specific records. Read/write locks and race condition prevention are built in.

Targeted order backups

Simplicity

Browse separate, purpose-built tables instead of digging through one giant wp_posts table. Develop new extensions, implement custom designs, and modify WooCommerce with far greater flexibility.

5× faster order creation
Under the hood

Four dedicated tables replace one bloated one

Traditionally, WooCommerce stored every order as a "post" in wp_posts and every order detail as "post meta." With thousands of orders, this table grows enormous and slows down the entire site — including pages that have nothing to do with orders.

HPOS replaces this with four purpose-built tables, each optimised for the specific type of data it holds and the queries that retrieve it.

Available from WooCommerce 8.2: HPOS is enabled by default on all new installations from WooCommerce 8.2 onward (October 2023). Existing stores must manually opt in — it is completely safe to do so with compatibility mode enabled.

wp_wc_orders
Core order information — order ID, status, currency, total, customer ID, and timestamps. The primary table for all order lookups.
wp_wc_order_addresses
Billing and shipping address details stored separately from core order data — improving read performance on address-heavy queries.
wp_wc_order_operational_data
Internal state and status information — payment gateway, transaction ID, cart hash, and operational flags used during order processing.
wp_wc_orders_meta
Additional custom metadata — extensible key/value storage for plugins and custom order data, independent of wp_postmeta.
How to enable

Enabling HPOS on an existing store

New stores on WooCommerce 8.2+ have HPOS enabled automatically. For existing stores, follow these steps to migrate safely with zero data loss.

1
Enable compatibility mode first

Go to WooCommerce → Settings → Advanced → Features. Tick "Enable compatibility mode" — this syncs order data between the old posts tables and new HPOS tables simultaneously.

WooCommerce → Settings → Advanced → Features
2
Wait for background sync to complete

WooCommerce schedules background actions to backfill existing orders to the new tables — 25 orders at a time. You can monitor progress at WooCommerce → Status → Scheduled Actions or run them manually.

3
Switch to High-Performance Order Storage

Once both tables are in sync, select "High-performance order storage (recommended)" in the same settings page. Keep compatibility mode on for a few days to ensure a smooth transition.

4
Verify and disable compatibility mode

After confirming everything works — orders, extensions, checkout — you can disable compatibility mode. Reverting to posts storage can be done instantly at any point if needed.

CLI alternative: wp wc cot sync
HPOS migration status
Compatibility mode enabledDone
Orders backfilled to HPOS tables14,820 synced
Plugin compatibility checkAll clear
Switching to HPOS storageIn progress
Disable compatibility modePending
Keep compatibility mode on for 48–72 hours after switching
Plugin compatibility

What to know before you switch

Most major WooCommerce plugins are HPOS-compatible. Here's how to handle the edge cases.

Keep custom post type extensions active

Before enabling HPOS, ensure extensions that use custom post types (WooCommerce Subscriptions, Bookings, etc.) are active. Deactivating them before migration can cause data discrepancies — the data stays in posts but HPOS looks in its own tables.

Incompatible plugin detection

WooCommerce disables the HPOS switch if incompatible plugins are detected. A "View and manage" link in settings lists them. Contact the plugin developer — HPOS has been widely communicated and most have already updated their code.

Reverting is instant

If you hit a problem after switching, reverting to WordPress posts storage is immediate — as long as compatibility mode was enabled during migration. Navigate to WooCommerce → Settings → Advanced → Features and switch back. No data is lost.

Full-text search (experimental)

From WooCommerce 9.0, HPOS includes experimental full-text search indexes — enabling fast search across order addresses and products. Enable it under WooCommerce → Settings → Advanced → Features → Experimental features.

FAQ

HPOS questions answered

Common questions from store owners before enabling HPOS.

Ask our team
No — HPOS is completely opt-in for existing stores. While we strongly encourage switching to enjoy faster checkouts and better scalability, you can continue using WordPress posts storage and switch whenever you are ready. The option remains available in WooCommerce → Settings → Advanced → Features.
No downtime is required. The migration runs as background jobs that sync orders to the new tables without interrupting your store. Compatibility mode keeps both table systems in sync throughout, so your store continues processing orders normally during the entire migration process.
Contact the plugin developer and ask them to add HPOS support. WooCommerce has provided extensive developer documentation and guides for the update. In the meantime, you can continue using the plugin without HPOS — the legacy posts storage remains fully supported and you won't lose any functionality.
HPOS benefits stores of all sizes. Even small stores gain from faster order creation and cleaner database structure. The performance improvements scale with order volume — a store processing 50 orders a day will notice improvements in admin responsiveness, while a store processing 5,000 orders a day will see transformational performance gains.
No special hosting requirements exist for HPOS. Any host capable of running WordPress and WooCommerce can run HPOS. If anything, HPOS reduces database load — making it more resilient on resource-constrained hosting. On managed WooCommerce hosting with Redis caching and dedicated database resources, the performance gains are even more pronounced.

Ready to enable HPOS on your WooCommerce store?

Our team can handle the HPOS migration for you — compatibility check, background sync, and go-live verification — as part of our managed WooCommerce hosting service.

Zero downtime migration
Compatibility check included
Instant rollback available
40× faster order search