HPOS Improves Performance in WooCommerce 8.2


What is WooCommerce HPOS?

In WooCommerce, HPOS stands for High-Performance Order Storage, a project which was previously known as Custom Order Tables – a new way for WooCommerce to structure and process order data in database tables. Previously, the sheer volume of order and product data may have been a performance bottleneck for many online stores running on WooCommerce. The new storage method however significantly improves fetching the order data from the database.

WooCommerce introduced HPOS as a concept in January 2022, and based on user data collected in May 2022, it was introduced to users in 2023. HPOS became available in WooCommerce version 8.2.

HPOS Enabled by Default in WooCommerce 8.2

HPOS has been enabled by default on new WooCommerce installations since the release of 8.2 in October 2023. Previously, products and order data were stored in _posts and _postmeta tables, which can grow in size as new orders keep pouring in and become time-consuming to process. HPOS has a new database structure, and each piece of data related to WooCommerce orders is now stored in its own table, making data processing faster (and also more effortless for us humans to read). No need to process one giant _posts table to find the piece of order information you’re looking for!

HPOS Brings New Tables to the Database

HPOS introduces four new database tables to WooCommerce, structuring and handling order information more efficiently than before:

  1. _wc_orders
  2. _wc_order_addresses
  3. _wc_order_operational_data
  4. _wc_orders_meta

The Advantages of HPOS

What are the advantages of using HPOS in WooCommerce? This can be summarised in three key factors: scalability, reliability and simplicity. Using HPOS makes the data stored in WooCommerce more reliable to work with, such as editing and migrating it. With the introduction of new tables, developing in WooCommerce will also become more flexible.

Information about each and every order in WooCommerce gets added into the site’s database, adding to the load of the site and thus eventually affecting its performance. HPOS was developed to handle this data more efficiently. Not only will it benefit large e-commerce sites, but web stores of all sizes running WooCommerce can start using HPOS to improve their performance. According to Woo’s official blog post, this could for example mean 1.5 times faster checkout for customers, or 40 times faster searches in the dashboard view for WooCommerce admins!

How to Enable HPOS in WooCommerce

If your WooCommerce install is a fresh one, it is enabled by default from WooCommerce version 8.2 and onwards. HPOS is not automatically enabled on sites already running WooCommerce – it has to be enabled manually. If a site is still relying on _post and _postmeta tables, there are a couple of steps that need to be taken before enabling HPOS!

Before you can enable HPOS, the WooCommerce database tables needs to be updated. But worry not! This is done directly in WooCommerce settings, and no separate tools or plugins need to be installed to make this update. WooCommerce is also able to detect if your site has a plugin that is not yet compatible with HPOS. For more detailed instructions, go to Woo’s official documentation.

How to Back Up Your WooCommerce Database

It’s a good idea to always back up your site prior to making any changes, especially if you’re making changes to your site’s database, and even more so if you’re handling your precious WooCommerce data. So, before you head to your WordPress admin dashboard, it is recommended to take an extra backup just in case! See instructions in the Seravo Knowledge Bank to see how to do this. You can also activate a maintenance mode on your site while enabling HPOS.

Enabling HPOS

  1. Choose Enable compatibility mode in WooCommerce settings (WooCommerce > Settings > Advanced > Features > Order Data Storage), which will initiate synchronizing the order data from old database tables into new ones
  2. The synchronization runs as a background process in WooCommerce, 25 orders at a time (wc_schedule_pending_batch_process)
  3. Once the data has been synchronized, you can enable HPOS in the same menu by selecting High-performance order storage (recommended).
You can enable HPOS in WooCommerce in the advanced settings.

Legacy Mode and Restoring from a Backup

If it so happens that your site’s plugins are not yet compatible with WooCommerce HPOS, you can re-enable the legacy mode in the WooCommerce settings. In legacy mode, WooCommerce will continue to store order information in the traditional _posts and _postmeta tables. If the data is still being synchronized, wait until this has been done. You can then reactivate the legacy mode setting in WooCommerce (Settings > Advanced > Features > Order data storage).

Restoring WooCommerce from a Backup

Did something go totally wrong? Don’t worry, with Seravo you can restore your entire site or only its database from a backup at any time by using our guide. You can also ask our support team to restore your site from a backup – for free! Seravo’s WordPress hosting backs up your site automatically once per day, and the backups are available for 30 days at a time.

How to Access WooCommerce Database?

At Seravo, you can manage the database of your WooCommerce or WordPress site by connecting to your site over SSH and using the command line. Alternatively, you can use Adminer, which has similar features to phpMyAdmin. Adminer can be found pre-installed on all sites on Seravo – see the Knowledge Base for more detailed instructions on how to access your site’s database.

WooCommerce 8.2 – New Features

WooCommerce 8.2 was released in October 2023. Besides HPOS, what other new features are in this update?

The Product Collection block is the latest addition to the WooCommerce blocks. It is similar to the Product Block which is based on the Query Loop, but with its own logic. In the future, the Product Collection block will become a more versatile way of presenting product content in articles or pages.

New blocks will be brought into WooCommerce as they are released. If you want to try out new blocks before they are officially a part of WooCommerce, get a preview of them by installing the WooCommerce Blocks plugin!