If your WooCommerce store has been running for a few years, you’ve probably seen the “High-Performance Order Storage” option in your settings. Maybe you toggled it on already. Maybe you’ve been putting it off. Either way, HPOS has been the default for new WooCommerce stores since late 2023, and existing stores that haven’t switched yet are running on borrowed time.
Here’s what HPOS actually changes, why it matters, and how to make the switch safely.
What HPOS actually is
WooCommerce has always stored orders in the WordPress posts table. The same table that holds your blog posts, pages, and media attachments. Every order shares space with everything else in your WordPress database.
HPOS (High-Performance Order Storage) moves orders into their own dedicated database tables. Orders get a proper home instead of being crammed into a general-purpose table that was designed for blog posts and pages, not high-volume transactional data.
That’s it. No new interface. No new workflow. Your orders screen looks the same. The change happens underneath, in how WordPress reads and writes order data.
Why this matters for your store
The posts table was never built for e-commerce. When you have 500 blog posts and 50,000 orders sharing the same table, the database has to sort through everything to find what you need.
With HPOS, order queries only search order tables. The result: faster page loads in your admin, quicker searches, and less strain on your server. The difference is small with 200 orders. With 10,000+, you’ll feel it.
Here’s what improves:
- Order list loading speed. The admin orders screen pulls data from a leaner table. Fewer rows to scan means faster results.
- Filter and search performance. Searching by customer name, SKU, or date range hits a focused index instead of digging through the entire posts table.
- Database maintenance. Backups, cleanups, and migrations touch separate tables. You can optimize order storage without affecting your content.
What doesn’t change
Your daily workflow stays the same. You still manage orders from WooCommerce > Orders. You still click into an order to see details, update status, add notes. The admin interface is identical.
When you enable HPOS, WooCommerce syncs your existing order data to the new tables and keeps both sets in sync during a transition period. You can switch back if something goes wrong.
Order numbers don’t change. Customer-facing emails look the same. Payment gateways, shipping integrations, and tax calculations work exactly as before.
The plugin compatibility question
This is where store owners get nervous, and for good reason.
Plugins that read order data the old way (directly from the posts table) need updates to work with HPOS. Most major plugins already support it. WooCommerce Subscriptions, popular shipping plugins, and payment gateways have been updated.
The risk sits with smaller or older plugins that haven’t been maintained. If a plugin accesses order data through
1 | get_post_meta() |
Before switching, check two things:
- Check the HPOS compatibility warnings in your WordPress admin. Go to WooCommerce > Settings > Advanced > Features and WooCommerce will flag any active plugin that hasn’t declared HPOS support. You can also check a plugin’s changelog or support forum for HPOS updates.
- Test on a staging site first. Copy your live store, enable HPOS, and click through your critical workflows: placing an order, processing a refund, running reports.
How to enable HPOS
Go to WooCommerce > Settings > Advanced > Features. You’ll see the “Order data storage” setting.
For existing stores with order history, the process has two steps:
- Enable compatibility mode first. This tells WooCommerce to keep both the old posts table and the new HPOS tables in sync. WooCommerce starts copying your existing orders to the new tables in the background via batches.
- Once sync is complete, switch to HPOS as the primary storage. The settings page shows you how many orders still need to sync. You can also check progress under WooCommerce > Status > Scheduled Actions.
If you have thousands of orders, the initial sync takes time. WooCommerce processes it in the background, so you can keep working. For very large stores (50,000+ orders), ask your developer to use the WP-CLI sync command for faster migration.
┌─────────────────────────────────────────────────────┐
│ SCREENSHOT NEEDED │
├─────────────────────────────────────────────────────┤
│ Show: WooCommerce > Settings > Advanced > Features │
│ State: HPOS option visible, before enabling │
│ Size: Cropped to the Features section │
│ Annotations: Arrow pointing to the HPOS toggle │
└─────────────────────────────────────────────────────┘
Working with orders after HPOS
Once HPOS is active, your orders screen works the same way. Filters, sorting, bulk actions – all identical. The speed improvement shows up in how fast results appear, not in what you can do.
OrderFusion works with both storage modes. It detects whether your store uses legacy tables or HPOS automatically. All 22 order filters, custom columns, saved views, and CSV export work the same regardless of which storage backend you’re running.
That matters because some admin plugins break when you switch to HPOS. OrderFusion doesn’t. If you’re using custom meta columns (delivery date, PO number, gift message) or custom filters, they carry over without any reconfiguration.
WooCommerce Plugin
Want to filter orders, add custom columns, and export CSV from your WooCommerce admin? Try OrderFusion — free Lite on WordPress.org, Pro on WooCommerce.com.
Install OrderFusion Lite (free) · View OrderFusion Pro on WooCommerce.com
Stores that benefit most
Every WooCommerce store should eventually move to HPOS. But some stores see bigger gains than others.
High-volume stores (1,000+ orders/month): The performance difference is most noticeable. Admin pages load faster, and filters return results quicker. If your orders screen feels sluggish, HPOS is the first thing to try.
Stores with large product catalogs: More products mean more posts table entries competing with orders. HPOS separates the two, so neither slows down the other.
Multi-user teams: When three people filter and search orders at the same time, database load compounds. Dedicated order tables handle concurrent queries better than the shared posts table.
Stores running on shared hosting: Shared servers have strict resource limits. A leaner query on a focused table uses less memory and CPU than scanning the posts table.
Common concerns
“Will I lose order data?”
No. WooCommerce copies data to new tables. It doesn’t delete anything from the posts table during the transition. You can run both in sync and switch back if needed.
“Can I wait?”
You can, but there’s no advantage to waiting. HPOS is the future of WooCommerce order storage. The legacy system will eventually be deprecated. Better to switch now while the sync tool is actively maintained and supported.
“My developer says we’re not ready.”
Ask them specifically which plugins aren’t HPOS-compatible. If they can’t name one, you’re probably fine. If they name a specific plugin, check that plugin’s changelog or support forum for HPOS updates.
Try it on a staging site first
If you’re cautious (and you should be with a live store), test before switching.
- Create a staging copy of your store. Most hosting providers offer one-click staging.
- Enable HPOS on the staging site.
- Place a test order. Process it through your normal workflow.
- Check your reports, run a CSV export, verify your shipping integration sends tracking emails.
- If everything works, enable HPOS on your live store.
Set aside an hour or two. The test itself is quick, but waiting for the order sync to finish depends on how many orders you have. That’s a small investment for a permanent speed improvement.
For the full technical details, check the official WooCommerce HPOS documentation.
