The best WordPress SEO plugin for database performance, measured

The SEO Framework is the best SEO plugin for database performance we measured: zero extra queries per request, no custom tables, and the only plugin that returned autoloaded options to the exact baseline when deactivated. Slim SEO and Hydrogen SEO (ours) are effectively tied behind it, both with no tables in the versions tested and near-zero autoload growth; Slim SEO takes second on a cleaner exit. Hydrogen SEO's table count is out of date, though: the version tested was 0.0.18, and 0.0.31 creates up to two.

Database figures in our seven-plugin benchmark were byte-identical across two full runs, so unlike timings they are exact for our test site. We build Hydrogen SEO.

How we ranked them

Three database costs, all deterministic:

  • Queries per request. Each is a round trip to MySQL. On localhost they are cheap; on hosting with network-attached MySQL, a handful of extra queries adds real time to every uncached page.
  • Autoloaded options. WordPress reads every autoloaded option on every request, admin and front end, whether the page needs it or not. Our baseline was 49.8 KB.
  • Custom tables and leftovers. Tables are schema you now own through backups, migrations and uninstalls. They survive deactivation, and so can autoloaded options.

Queries rank first, then autoload growth, then what is left behind.

  1. The SEO Framework

    Measured on 5.1.4: +8 ms front-end, +0 queries, 9 JSON-LD types, 0 custom tables

    +0 queries, alone in the field. +4.2 KB of autoloaded options, no tables, and deactivation restored exactly 49.8 KB, the baseline to the decimal. Nothing is left to clean up. See The SEO Framework alternatives.

  2. Slim SEO

    Measured on 4.10.1: +10 ms front-end, +2 queries, 10 JSON-LD types, 0 custom tables

    +2 queries, no tables, and autoloaded options that came out 0.2 KB below baseline. Deactivation released everything. It is one query behind Hydrogen SEO on a fresh install and cleaner on the way out, which is why it takes second in a near tie.

  3. Hydrogen SEO

    Measured on 0.0.18: +12.9 ms front-end, +1 queries, 10 JSON-LD types, custom tables in 0.0.31: 1 (2 with the 404 Monitor on)

    +1 query on a fresh install and +0 once settings have been saved, 0.4 KB of autoloaded options and no tables in the version tested, where everything lived in standard options and post meta. That changed afterwards. In 0.0.31 the internal link counter keeps its links in a table (hydrogen_seo_links), and the 404 Monitor creates a log table (hydrogen_seo_404_log) if you switch it on, so the count is one or two, not zero. Neither is read while a page is served. Deactivation left 0.2 KB autoloading. The one query exists because it primes its settings in a single read; version 0.0.14 read them one key at a time and paid 7 queries, which the benchmark caught and we fixed.

  4. SEOPress

    Measured on 10.2: +24.5 ms front-end, +1 queries, 0 JSON-LD types, 1 custom tables

    +1 query, but one custom table and 3.6 KB of autoloaded options that deactivation did not reduce at all. Per request it is cheap; as a long-term guest in your database it is less tidy.

  5. Yoast SEO

    Measured on 28.4: +39 ms front-end, +3 queries, 12 JSON-LD types, 6 custom tables

    +3 queries is very good for its size, and the reason is six custom indexables tables that pre-compute SEO data instead of assembling it at render time. On a very large site, that design is built to save work. The costs are 13.6 KB of autoloaded options, 2.6 KB of which stay after deactivation, and tables that remain until you uninstall.

  6. Rank Math

    Measured on 1.0.278: +36.1 ms front-end, +16 queries, 6 JSON-LD types, 6 custom tables

    +16 queries per request, six tables (four belong to Action Scheduler) and 11.6 KB of autoloaded options, of which 11.0 KB kept loading after deactivation. See Rank Math alternatives.

  7. All in One SEO

    Measured on 5.0.1.1: +53.5 ms front-end, +22 queries, 8 JSON-LD types, 9 custom tables

    The heaviest database footprint in the test: +22 queries, nine custom tables, 14.6 KB of autoloaded options, and no reduction at all when deactivated. See Rank Math vs All in One SEO.

Deactivation is not uninstallation

If you are trialling SEO plugins, what stays behind matters. A deactivated plugin's autoloaded options are still read on every request, and its tables stay in every backup. In our run, deactivating All in One SEO or SEOPress did not reduce their autoloaded footprint by a single byte, and Rank Math kept almost all of its 11.6 KB.

To check your own site, record the autoloaded total before installing and again after deactivating:

sql
SELECT ROUND(SUM(LENGTH(option_value)) / 1024, 1) AS autoload_kb
FROM   wp_options
WHERE  autoload IN ('yes', 'on', 'auto', 'auto-on');

Modern WordPress uses several autoload values, so matching only 'yes' under-reports. Then diff SHOW TABLES for new tables. A persistent object cache such as Redis narrows the query gap between plugins, because repeated reads stop reaching MySQL, but it does not remove tables. The full procedure is in our benchmark method, and if slow responses are the real problem, see reducing TTFB in WordPress.

All seven, measured

MeasuredThe SEO Framework 5.1.4Slim SEO 4.10.1Hydrogen SEO 0.0.18SEOPress 10.2Yoast SEO 28.4Rank Math 1.0.278All in One SEO 5.0.1.1
Front-end PHP time added+8 ms+10 ms+12.9 ms+24.5 ms+39 ms+36.1 ms+53.5 ms
Peak memory added+2 MB+2 MB+4.5 MB+6.5 MB+10.5 MB+8.5 MB+14.5 MB
Database queries added+0+2+1+1+3+16+22
Hooks registered+8+51+22+114+187+155+100
<head> bytes added+3,821+1,649+4,259+2,380+5,656+4,965+6,668
Meta description by defaultYesYesYesYesNoYesYes
JSON-LD types printed9101001268
Open Graph / X tags10 / 511 / 210 / 510 / 610 / 511 / 86 / 3
Sitemap URLs listed51737258755973
Sitemap image entries04040404000
lastmod coverage51 / 5150 / 7372 / 7250 / 5874 / 7559 / 5973 / 73
Custom database tables001 (2 with the 404 Monitor on)1669
Autoloaded options added+4.2 KB-0.2 KB+0.4 KB+3.6 KB+13.6 KB+11.6 KB+14.6 KB
Plugin package size2.9 MB1.4 MB4.6 MB11.7 MB21 MB15.1 MB24.4 MB
Block editor assets25 files, 77.6 KB14 files, 187.7 KB2 files, 700.4 KB17 files, 217 KB48 files, 4,160 KB24 files, 1,792 KB130 files, 3,543 KB
After deactivationReleases everything (exact baseline)Releases everything+0.2 KB left autoloadingNo reduction at all+2.6 KB left autoloading, 6 tables remain+11.0 KB still autoloadingNo reduction: 14.5 KB still autoloading

Measured on one WordPress 7.1 install (PHP 8.2, MySQL 8.0, Twenty Twenty-Five, 40 posts), each plugin alone with default settings, against a no-plugin baseline. Each column heading names the version that was measured. Bold marks the better number in each row. Full method: how we tested.

Hydrogen SEO's figures were measured on 0.0.18 and have not been re-run on later versions. The custom tables row is the exception: it is counted from the 0.0.31 source. A default install has one table, for the internal link counter. Switching on the 404 Monitor, which is off by default, creates a second for its log. Deleting the plugin removes both.

Features: free, paid or not offered

FeatureThe SEO Framework 5.2.1Slim SEO 4.11.5Hydrogen SEO 0.0.31SEOPress 10.4Yoast SEO 28.8Rank Math 1.0.282All in One SEO 5.0.5
Search engine verification codesFree—FreeFreeFreeFreeFree
IndexNow instant indexing——FreeFreePaidFreePaid
Redirect manager—FreeFreePaidPaidFreePaid
404 monitorNoFreeFreePaid—FreePaid
SEO column on the Posts screenFreeFreeFreeFreeFreeFreeFree
SEO fields in Quick EditFreeFreeFreeFree—Paid—
Attachment page redirects—FreeFreeFreeFreeFreeFree
Author and date archive controlsFree—FreeFreeFreeFreeFree
RSS feed text——Free—FreeFreeFree
max-snippet and preview controlsFree—Free——FreeFree
Primary categoryFreeFreeFreeFreeFreeFreePaid
Internal link counts on the Posts screen——FreeFreeFreeFree—
Automatic image alt attributes—FreeFreeFree—FreePaid
Table of contents block——Free—PaidFreeFree
HTML sitemap——FreeFree—FreeFree
Pillar or cornerstone content flag——Free—FreeFreePaid
Crawl cleanup switches——FreeFreeFree——
Video sitemap——FreePaidPaidPaidPaid
Google News sitemap—FreeFreePaidPaidPaidPaid
llms.txt——FreePaidFreeFreeFree

This table is not benchmark data. It is based on each plugin's WordPress.org listing, the code of its free version there, and its official documentation and pricing pages, checked on 12 November 2026, for the version in each column heading. Free means the feature is in the plugin's own free version. Paid means it needs that plugin's paid version or a paid add-on. No means the plugin's listing says it does not offer it. A dash means we could not confirm it either way; it does not mean the feature is missing. A row says a feature exists, not how complete it is. Plugins change, so check the plugin's own site before relying on a cell. If a cell is wrong, tell us and we will correct it.

Common questions

Which SEO plugin adds the fewest database queries?

The SEO Framework, with zero extra queries in our benchmark. Hydrogen SEO and SEOPress added one, Slim SEO two, Yoast three, Rank Math 16 and All in One SEO 22.

Are custom database tables bad?

Not automatically. Yoast's tables are why it adds only three queries. But tables are schema you maintain, and in our test every plugin's tables survived deactivation.

What are autoloaded options?

Options WordPress loads from the database on every request. The SEO plugins we tested changed that total by between -0.2 KB (Slim SEO) and +14.6 KB (All in One SEO).

Does an object cache fix plugin query counts?

It reduces how many repeated queries reach MySQL, which narrows the gap between plugins. It does not remove custom tables or shrink the autoloaded options loaded on each request.