The best WordPress SEO plugin for schema markup, measured

Yoast SEO prints the richest schema graph of the seven plugins we measured: 12 JSON-LD types on a standard post at defaults, in 3,976 bytes. Hydrogen SEO (ours) is second with 10 types in 2,071 bytes, the most efficient complete graph in the test, and Slim SEO matches its 10 types at nearly twice the size. SEOPress free printed none.

The measurements come from our seven-plugin benchmark, one plugin at a time on WordPress 7.1, free versions at defaults. We build Hydrogen SEO, and we ranked it below Yoast because Yoast's graph describes more of the page.

How we ranked them

We counted what each plugin put in the page on one standard post with a featured image, two taxonomies and internal links, with no schema settings touched:

  • JSON-LD types: how many distinct schema.org types the default graph contains. More types usually means more of the page is described: the article, its author, the site, the publisher, breadcrumbs, images.
  • JSON-LD bytes: how large that graph is. Two graphs with similar coverage can differ by 2x in size.

Types decide the rank; bytes break ties. We did not measure which types each plugin lets you add by hand, so this ranks the default graph, not the ceiling. Run your own pages through the JSON-LD validator and Google's test, as the rich results guide shows.

  1. Yoast SEO

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

    12 types in 3,976 bytes, the most complete default graph we measured, and the benchmark's "richest schema graph" winner. Yoast's indexables tables store the data behind it, which is part of why it stays at +3 queries. You pay elsewhere: +39.0 ms, six custom tables and 4,160 KB of editor assets. See Yoast SEO alternatives.

  2. Hydrogen SEO

    +12.9 ms front-end, +1 queries, 0 custom tables, 10 JSON-LD types

    10 types in 2,071 bytes, the benchmark's "most efficient schema": roughly half Yoast's bytes for a comparable graph. Beyond the default graph you can add Article, Product, FAQ, HowTo, Recipe, Course, Event and Local Business per page or site-wide, with smart tags in every field, plus an optional AI draft you review before saving (free account and credits needed). Beta software.

  3. Slim SEO

    +10 ms front-end, +2 queries, 0 custom tables, 10 JSON-LD types

    10 types, the same count as Hydrogen SEO, in 3,828 bytes, with nothing to configure. If you want a full default graph and no schema settings to think about, it is the simplest route, for +10.0 ms. See Hydrogen SEO vs Slim SEO.

  4. The SEO Framework

    +8 ms front-end, +0 queries, 0 custom tables, 9 JSON-LD types

    9 types in 1,881 bytes, the smallest graph of any plugin that printed a full one, from the plugin with the lowest server cost in the field. One type fewer than Hydrogen SEO and Slim SEO, and enough for most blogs. The trade-off with The SEO Framework is fewer built-in extras overall, some of which arrive through extensions.

  5. All in One SEO

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

    8 types in 4,544 bytes: the largest graph by size and the least efficient, with fewer types than four other plugins in more bytes than any of them. It is a complete, valid starting point from the plugin that costs the most to run (+53.5 ms, +22 queries).

  6. Rank Math

    +36.1 ms front-end, +16 queries, 6 custom tables, 6 JSON-LD types

    6 types in 2,665 bytes at defaults. Complete and valid, but it covers less of the page than five of the others. Rank Math is known for extensive schema options, so its ceiling is higher than its default; our test measured only the default. Remember it prints nothing at all until its setup wizard is finished or skipped.

  7. SEOPress

    +24.5 ms front-end, +1 queries, 1 custom tables, 0 JSON-LD types

    No JSON-LD at all on a standard post in the free version at defaults, the largest single output gap in the benchmark. Its meta and social tags are solid; for schema you need its paid version or a separate tool.

More types, or fewer bytes?

A bigger graph is not automatically better. Google uses structured data to understand a page and to decide eligibility for rich results, and it checks whether the markup matches what is visible. Types that describe the page accurately help; extra bytes do not. On a typical post the core graph (article, author, site, publisher, breadcrumbs) is what matters, and all six plugins that printed schema covered a version of it.

The bigger differences come from the page-specific types you add yourself: a Product on a product page, a Recipe on a recipe, FAQ on a genuine question-and-answer section. Those depend on your content, not on defaults. Google now limits FAQ and HowTo rich results, so treat those types as description rather than a guaranteed display. Our guide to adding schema markup to WordPress covers which types belong where, and the schema types reference lists what Hydrogen SEO supports.

All seven, measured

MeasuredYoast SEO 28.4Hydrogen SEO 0.0.18Slim SEO 4.10.1The SEO Framework 5.1.4All in One SEO 5.0.1.1Rank Math 1.0.278SEOPress 10.2
Front-end PHP time added+39 ms+12.9 ms+10 ms+8 ms+53.5 ms+36.1 ms+24.5 ms
Peak memory added+10.5 MB+4.5 MB+2 MB+2 MB+14.5 MB+8.5 MB+6.5 MB
Database queries added+3+1+2+0+22+16+1
Hooks registered+187+22+51+8+100+155+114
<head> bytes added+5,656+4,259+1,649+3,821+6,668+4,965+2,380
Meta description by defaultNoYesYesYesYesYesYes
JSON-LD types printed1210109860
Open Graph / X tags10 / 510 / 511 / 210 / 56 / 311 / 810 / 6
Sitemap URLs listed75727351735958
Sitemap image entries40404000040
lastmod coverage74 / 7572 / 7250 / 7351 / 5173 / 7359 / 5950 / 58
Custom database tables6000961
Autoloaded options added+13.6 KB+0.4 KB-0.2 KB+4.2 KB+14.6 KB+11.6 KB+3.6 KB
Plugin package size21 MB4.6 MB1.4 MB2.9 MB24.4 MB15.1 MB11.7 MB
Block editor assets48 files, 4,160 KB2 files, 700.4 KB14 files, 187.7 KB25 files, 77.6 KB130 files, 3,543 KB24 files, 1,792 KB17 files, 217 KB
After deactivation+2.6 KB left autoloading, 6 tables remain+0.2 KB left autoloadingReleases everythingReleases everything (exact baseline)No reduction: 14.5 KB still autoloading+11.0 KB still autoloadingNo reduction at all

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. Bold marks the better number in each row. Full method: how we tested.

Common questions

Which WordPress SEO plugin has the best schema?

Yoast SEO printed the richest default graph in our benchmark: 12 JSON-LD types. Hydrogen SEO printed 10 types in 2,071 bytes, about half Yoast's size.

Does SEOPress free add schema markup?

Not at default settings. On a standard post the free version printed no JSON-LD at all in our test.

Is a bigger schema graph better for SEO?

Not by itself. Accurate types that match the visible page matter; byte count does not. Validate the output rather than counting it.

Can Hydrogen SEO write schema with AI?

Yes, as an optional feature. You describe the page, the AI drafts the fields, and you review them before saving. It needs a free hydrogenseo.com account and uses credits.