Your WooCommerce,
Fast at Any Scale
WooCommerce stores every product field in a slow EAV table — sorting by price across 10,000 products means millions of rows. MetaMatrix copies your product data into a flat, indexed table and intercepts queries transparently. No code changes. No slowdown.
The query time speaks for itself
Sorting the WooCommerce Products list by price on a 5,000-product store. Same server. Same data. The only difference is MetaMatrix.
wp_postmeta — a table that holds every field for every post type. A 5,000-product store can have 500,000+ rows in postmeta. Sorting by price means scanning them all.INNER JOIN wp_postmeta pm1 ON pm1.post_id = p.ID
AND pm1.meta_key = '_price'
WHERE p.post_type = 'product'
ORDER BY CAST(pm1.meta_value AS DECIMAL) DESC
-- 500k+ rows scanned, no covering index
_price column has a proper index. 5,000 rows, no full-table scan.LEFT JOIN wp_metamatrix_product_index mm
ON mm.product_id = p.ID
AND mm.meta_key = '_price'
WHERE p.post_type = 'product'
ORDER BY CAST(mm.meta_value AS DECIMAL) DESC
-- 5k rows, indexed lookup, 21× faster
Benchmarked on a shared hosting environment (PHP 8.2, MySQL 8.0, no object cache). Results vary by server and catalog size — larger catalogs see greater gains.
From slow EAV
to instant queries
MetaMatrix is admin-only — no frontend scripts, no storefront impact.
Flat indexed table
46 WooCommerce product meta keys are copied to a flat indexed table in the background. Sorting by price or stock no longer JOINs millions of postmeta rows.
Transparent interception
Hooks into get_post_metadata to route reads through the flat table. Existing themes and plugins work exactly as before — no code changes required.
Custom typed columns
Add your own meta keys (supplier cost, warehouse location, lead time) as typed SQL columns — VARCHAR, INT, DECIMAL, and more. Sort and filter natively.
Sortable admin columns
Enable any indexed key as a sortable column in the WooCommerce Products list. Clicking the column header runs against the flat table — zero postmeta overhead.
Filter bar
Filter the products list by any indexed key using equals, contains, >=, or <= operators. Useful for finding all products below a stock threshold or above a price point.
Object caching
All reads are cached with a 1-hour TTL. Works with Redis, Memcached, or any persistent object cache — eliminating database hits entirely on repeat reads.
Background sync
Products sync automatically when saved via Action Scheduler. Existing products can be reindexed from the settings page — runs in the background with no timeout risk.
WP-CLI support
Run wp MetaMatrix status, reindex, sync <id>, and purge from the command line.
ProductForge integration
Running ProductForge? MetaMatrix detects it and indexes new products immediately as they're created — no waiting for the background sync queue.
Up and running in 4 steps
Install & activate
Upload MetaMatrix (WooCommerce required) and activate. The flat index table is created automatically.
Choose columns
Go to WooCommerce → MetaMatrix. Check the keys you want as admin columns — SKU, price, stock, and more.
Run initial index
Click Save & Run Initial Indexing. MetaMatrix queues all existing products for background sync.
Sort & filter
Your Products list now has fast sortable columns and a filter bar — powered by the flat index, not postmeta.
Pairs perfectly with ProductForge
Bulk-creating products with ProductForge? MetaMatrix detects it and indexes every product immediately as it's created — no waiting for the background sync queue. Build a catalog of 500 products with ProductForge and have them fully indexed and sortable before you close the tab. Install both and they wire up automatically.
Simple, transparent pricing
Starter covers the full feature set on one site. Pro adds custom typed columns and multi-site. Agency for developers managing many stores.
- ✓ Flat index for 46 WC keys
- ✓ Transparent query interception
- ✓ Sortable admin columns
- ✓ Filter bar (=, contains, >=, <=)
- ✓ Background sync (Action Scheduler)
- ✓ Object caching
- — Custom typed columns
- ✓ 1 year of updates
- ✓ Everything in Starter
- ✓ Custom typed columns (6 types)
- ✓ WP-CLI commands
- ✓ Use on 5 sites
- ✓ 1 year of updates
- ✓ Everything in Pro
- ✓ Use on 25 sites
- ✓ Priority support
- ✓ 1 year of updates
Prices in CAD. All plans include self-hosted auto-updates via your WordPress dashboard.
Frequently asked questions
get_post_meta() calls transparently — if a key isn't in the flat table it falls back to postmeta silently. Your theme and plugins never know the difference._supplier_cost or _warehouse_location) as proper SQL columns with a specific type (VARCHAR, INT, DECIMAL, etc.). This makes sorting and filtering by those fields natively fast. Available on Pro and Agency.Stop waiting for
slow product queries
MetaMatrix runs silently in the background — install it once and your entire product catalog becomes instantly sortable and filterable.
Get MetaMatrix →