For fifteen years a WooCommerce order was a post. High-Performance Order Storage moves it to its own tables, and the move itself is the risky part.
The destination is straightforwardly better. Getting there, with a live store, is where the care goes.
Migrating years of orders out of posts and postmeta is far more work than any request allows. It runs as a resumable batch, so a store with a long history finishes rather than stalling mid-decade.
During the transition WooCommerce writes to both the old and new storage. That doubles write cost and drifts if a run fails, so it is monitored rather than left on indefinitely.
The point of HPOS is that order lookups stop being meta queries. Those tables get indexes for status, customer and date, which is what admin order search actually filters on.
Plugins written against the posts table break quietly under HPOS. We will check your extension list before the switch rather than after somebody cannot find an order.
Converting order storage is not a setting you toggle back casually. A backup is taken before the run, because that is the only clean way out.
Before HPOS the store works. After HPOS the store works. The risk lives in the period where both storages exist and one of them is quietly falling behind.
The reason HPOS exists is that finding an order used to mean querying postmeta. The gain shows up first in the admin, where staff work all day.
Most of this is about the migration rather than the destination, because the destination is the easy half.
| Setting | What we do | Why |
|---|---|---|
| Order conversion | Resumable batches with progress preserved | Moving years of orders out of posts and postmeta cannot complete in one pass, and a run that dies leaves the store split between two storage models. |
| Compatibility mode | Monitored for drift and time-boxed | Dual writing doubles the cost of every order and silently diverges when a sync fails, so leaving it on permanently is the worst of both designs. |
| Order table indexes | Set for status, customer and date together | Admin order search filters on exactly that combination all day, and it is the workload HPOS was introduced to fix. |
| Extension audit | Checked against the plugin list before switching | Plugins written against the posts table fail quietly under HPOS, and the failure surfaces as an order somebody cannot find rather than as an error. |
| Pre-migration backup | Taken immediately before the conversion run | Changing where orders live is not a toggle you reverse casually, and a restore point is the only clean exit if the run goes wrong. |
Every plan includes free migration, daily backups, SSL and 24/7 support.
Move the store across — migration is free, conversion handled.