Skip to content
GPLWP Guides

How to archive old orders in WooCommerce

WooCommerce Time About 30 minutes for a small batch; longer for a large store 6 steps Updated 5 Oct 2026

WOOCOMMERCE
The short answer

WooCommerce does not include a native order archive. The manual route is to export older orders, back up the database, and move them to trash or a separate store; a dedicated archive plugin is safer when you need scheduled archiving, restoration, and ongoing access.

The route
  1. 01Set your retention rules
  2. 02Check your order storage
  3. 03Back up and export the orders
  4. 04Use the manual cleanup route
  5. 05Test the result before repeating
  6. 06Automate true order archiving

What you need

  • A WooCommerce store with administrator or Shop Manager access
  • A complete database and files backup
  • A retention policy for orders, refunds, tax records, and subscriptions
  • Staging access for testing large or destructive changes

Set your retention rules

Decide which orders are old enough to move and which statuses are safe to include. Completed orders are usually the first candidates, while processing, pending, on-hold, refunded, disputed, subscription-related, or legally required records may need to stay in the live store.

Use the order creation date as your starting point, but check your accounting, tax, refund, and data-retention requirements before choosing a number of months or years.

Check your order storage

Go to WooCommerce > Settings > Advanced > Features and check whether the store uses High-Performance Order Storage, also called HPOS. HPOS stores orders in dedicated WooCommerce tables, while older stores may use WordPress posts and post metadata.

Do not run a database query against guessed table names. A query written for legacy storage can miss HPOS data or leave related order data behind.

Back up and export the orders

Take a tested database and file backup before moving anything. Then export the matching orders, including order numbers, dates, statuses, totals, customer details, line items, taxes, payment data, and notes where required.

WooCommerce core can move selected orders to the trash, but a full order export normally requires an export extension or a separate system. CSV and XML export tools can filter orders by date and status; keep the export somewhere outside the WordPress uploads folder as well.

Use the manual cleanup route

For a small store, the manual route is to open WooCommerce > Orders, filter by status and date, review the results, select a batch, and choose Move to Trash from the bulk actions menu. Core WooCommerce supports this bulk action, but it does not create a searchable archive that you can restore from inside WooCommerce.

Leave the orders in the trash until you have checked the export and confirmed that customers, refunds, fulfilment records, and reports still behave as expected. Permanently deleting them is irreversible. For hundreds or thousands of orders, this route becomes slow, easy to mis-filter, and difficult to repeat consistently.

Test the result before repeating

On staging, restore a few exported orders or inspect the archive copy, then check an order with products, shipping, taxes, a coupon, a refund, and an order note. Also check subscriptions and any integration that reads order history.

The common Friday failure is deleting orders that are still needed for a refund, chargeback, customer query, subscription renewal, or tax report. Archiving is safer than deletion only when the archived copy remains usable and backed up.

Automate true order archiving

If you need old orders removed from the live order list but still available for search, export, or restoration, use a dedicated archive tool rather than the manual trash workflow. WooCommerce archive extensions typically copy matching orders to separate archive tables, use age and status rules, and process scheduled jobs in batches.

Archive Master Pro fits this job when you need automated local or remote archiving with CSV, JSON, and XML exports. Set the age threshold, select safe order statuses, run the first job on staging or in a small batch, export a backup, and confirm that your staff know where archived orders are found.

The fast route

Let Archive Master Pro do it

Automated local or remote order archiving with CSV, JSON, and XML exports for stores with bloated order databases.

Get Archive Master Pro

Sources

  1. developer.woocommerce.com /docs/features/orders/high-performance-order-storage/?utm_so…
  2. woocommerce.com /document/import-and-export-of-woocommerce-orders/?utm_sourc…
  3. woocommerce.com /document/managing-orders/overview-and-bulk-management/?utm_…
  4. woocommerce.com /document/archive-old-orders/?utm_source=openai

Questions

Does WooCommerce have a built-in order archive?
No. Core WooCommerce can filter orders and move selected orders to the trash, but it does not provide a separate searchable archive with restore and export controls. For a small batch, export the orders and keep a verified backup before using the trash workflow. For recurring or large-scale archiving, you need an archive or cleanup extension, custom development, or a separate order store.
Should I archive all completed WooCommerce orders?
No. Completed status alone is not enough. Check the age of the order and whether it could still be needed for refunds, chargebacks, tax records, warranty claims, customer support, subscriptions, or reporting. Start with a conservative threshold, exclude active or disputed orders, and test the rule against a real export before processing the whole database.
Can I archive WooCommerce orders with a database query?
You can move order data at database level only with a carefully designed, tested migration, but it is not a safe general shortcut. HPOS and legacy WooCommerce stores use different storage structures, and orders also have related addresses, metadata, notes, items, and integration data. Use WooCommerce-aware tooling or a developer who can identify the active storage and all related records.
Will customers still see archived orders in My Account?
Not automatically. Orders removed from the live WooCommerce order tables may no longer appear in the normal customer order history. Some archive extensions add an option to show archived orders in My Account, but you must enable and test it. If customer access matters, verify it with a test account before archiving live orders.
Is archiving safer than deleting old orders?
Yes, when the archive keeps the order data available and you have verified exports and backups. Deleting or permanently emptying the trash cannot be undone, while a proper archive can let you search, export, or restore records. Treat archived data as a separate system: control access, back it up, and check that refunds, subscriptions, reporting, and support workflows do not depend on the live order list.