Custom Database Indexes

July 3, 2026

WordPress ships with surprisingly few indexes on its most heavily queried tables. Tables like wp_postmeta, wp_term_relationships and wp_options were designed for small sites, so out of the box there’s nothing to help MySQL find rows quickly when you filter or sort by meta_value, term relationships, post_author and similar columns. On a small site that doesn’t matter. Once your tables grow into the hundreds of thousands or millions of rows, though, those queries fall back to full table scans, reading every single row to answer even a simple question. That’s where the slowdowns start, and it’s why big archives, WooCommerce shops and busy admin screens grind to a halt.

Scalability Pro fixes this at the source. It provides around 40 tuned custom indexes covering wp_posts, wp_postmeta, wp_term_relationships, wp_options and the WooCommerce product lookup tables. These are the indexes WordPress should arguably have shipped with, chosen to match the query patterns the platform actually uses.

You add them from the Indexes tab. Click "Create All Indexes" to apply the full set in one go, or tick the specific ones you want if you’d rather be selective. Every index can be dropped again from the same tab, so nothing here is permanent and you can experiment freely. On a multisite install, the indexes apply to the subsite you’re currently working on.

Indexes speed up reads dramatically at a tiny, usually negligible cost to writes, since MySQL has to keep each index up to date as rows change. For a read-heavy WordPress site that trade-off is almost always worth it.

In short: WordPress under-indexes its own tables, and that’s the root cause of most database slowness at scale. The Indexes tab adds the missing indexes in a click, and it underpins nearly every other optimisation in the plugin.

×
1/1