The best WordPress SEO plugin for XML sitemaps, measured
Hydrogen SEO (ours) produced the most accurate sitemap we measured: 72 URLs, all 40 featured images, and a lastmod date on every URL, the only plugin to combine full image entries with complete lastmod coverage. Yoast SEO is a close second and lists slightly more: 75 URLs and 40 images, with one URL unstamped. If raw URL count is what you care about, Yoast wins that.
We followed each plugin's sitemap index into every child sitemap in our seven-plugin benchmark, free versions at defaults. We build Hydrogen SEO, so the tie-break that puts it first is spelled out below for you to judge.
How we ranked them
We found each sitemap the way a crawler does, from the Sitemap: line in robots.txt, then followed the index into every child file and counted:
- URLs: posts, pages and archives listed. WordPress core's own sitemap listed 74 on the same site, a useful reference.
- Image entries: whether the 40 featured images were included.
lastmodcoverage: how many URLs carry a last-modified date. Google has said it useslastmodwhen the dates are consistently accurate, so a sitemap where a third of URLs have none gives crawlers less to go on.
We ranked on all three together, with lastmod completeness as the tie-break between Hydrogen SEO and Yoast. Every sitemap was valid XML and declared in robots.txt.
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)
72 URLs, 40 images,
lastmodon 72 of 72, measured on 0.0.18. Each post type and taxonomy gets its own child sitemap, split at 1,000 entries by default, and a term'slastmodfollows the newest post in it. Optional video and news sitemaps are built in, both off by default, and developers can filter images, priorities, exclusions and raw XML. Beta software.Yoast SEO
Measured on 28.4: +39 ms front-end, +3 queries, 12 JSON-LD types, 6 custom tables
The most complete sitemap by URL count: 75 URLs, 40 images and
lastmodon 74, the benchmark's "most complete sitemap" winner. If you want every archive listed at defaults, it is the safest choice. It comes with Yoast's wider cost of +39.0 ms and six custom tables, and its news and video sitemaps are separate add-ons.Slim SEO
Measured on 4.10.1: +10 ms front-end, +2 queries, 10 JSON-LD types, 0 custom tables
73 URLs with all 40 images, close to Yoast on coverage, for +10.0 ms. Its weakness is dates: 23 of 73 URLs had no
lastmod, roughly a third, which matches the gap in WordPress core's own sitemap. See Slim SEO alternatives.All in One SEO
Measured on 5.0.1.1: +53.5 ms front-end, +22 queries, 8 JSON-LD types, 9 custom tables
73 URLs with
lastmodon every one, but no image entries in the free sitemap. It wraps its<loc>values in CDATA, which is valid XML but trips up home-made scripts that parse sitemaps with a simple regex.SEOPress
Measured on 10.2: +24.5 ms front-end, +1 queries, 0 JSON-LD types, 1 custom tables
58 URLs and all 40 images, but
lastmodmissing on 8 of them. It serves its index at/sitemaps.xmlrather than the more common filename, which confuses anyone checking/sitemap.xmlby hand. See Hydrogen SEO vs SEOPress.Rank Math
Measured on 1.0.278: +36.1 ms front-end, +16 queries, 6 JSON-LD types, 6 custom tables
59 URLs, all with
lastmod, but no images and no tag or author archives at defaults. It has image inclusion on butinclude_featured_imageoff, so a site whose images are featured images ships none. Both are settings away from fixing. See Rank Math alternatives.The SEO Framework
Measured on 5.1.4: +8 ms front-end, +0 queries, 9 JSON-LD types, 0 custom tables
A deliberately minimal flat file: 51 URLs, posts and pages only, no index and no images, all with
lastmod. That is an opinion about what belongs in a sitemap, not a bug, and for a small blog it may be all you need. It lists fewer URLs than WordPress core's own sitemap on the same site.
Does your sitemap plugin matter?
Less than people think for discovery, more than they think for accuracy. A sitemap does not make pages rank or guarantee indexing; it tells crawlers what exists and when it changed. For a small, well-linked site, any valid sitemap is fine. The differences above start to matter when you publish or update often (accurate lastmod helps crawlers find changes), when image search sends you traffic (see image sitemaps), or when you want taxonomy archives crawled.
Whatever plugin you use, submit the sitemap index rather than child files, and recheck it after changing settings. Our guide covers how to submit a sitemap to Google, and the sitemap troubleshooting doc lists the usual reasons a URL goes missing, most often a page cache or CDN holding an old copy.
All seven, measured
| Measured | Hydrogen SEO 0.0.18 | Yoast SEO 28.4 | Slim SEO 4.10.1 | All in One SEO 5.0.1.1 | SEOPress 10.2 | Rank Math 1.0.278 | The SEO Framework 5.1.4 |
|---|---|---|---|---|---|---|---|
| Front-end PHP time added | +12.9 ms | +39 ms | +10 ms | +53.5 ms | +24.5 ms | +36.1 ms | +8 ms |
| Peak memory added | +4.5 MB | +10.5 MB | +2 MB | +14.5 MB | +6.5 MB | +8.5 MB | +2 MB |
| Database queries added | +1 | +3 | +2 | +22 | +1 | +16 | +0 |
| Hooks registered | +22 | +187 | +51 | +100 | +114 | +155 | +8 |
<head> bytes added | +4,259 | +5,656 | +1,649 | +6,668 | +2,380 | +4,965 | +3,821 |
| Meta description by default | Yes | No | Yes | Yes | Yes | Yes | Yes |
| JSON-LD types printed | 10 | 12 | 10 | 8 | 0 | 6 | 9 |
| Open Graph / X tags | 10 / 5 | 10 / 5 | 11 / 2 | 6 / 3 | 10 / 6 | 11 / 8 | 10 / 5 |
| Sitemap URLs listed | 72 | 75 | 73 | 73 | 58 | 59 | 51 |
| Sitemap image entries | 40 | 40 | 40 | 0 | 40 | 0 | 0 |
lastmod coverage | 72 / 72 | 74 / 75 | 50 / 73 | 73 / 73 | 50 / 58 | 59 / 59 | 51 / 51 |
| Custom database tables | 1 (2 with the 404 Monitor on) | 6 | 0 | 9 | 1 | 6 | 0 |
| Autoloaded options added | +0.4 KB | +13.6 KB | -0.2 KB | +14.6 KB | +3.6 KB | +11.6 KB | +4.2 KB |
| Plugin package size | 4.6 MB | 21 MB | 1.4 MB | 24.4 MB | 11.7 MB | 15.1 MB | 2.9 MB |
| Block editor assets | 2 files, 700.4 KB | 48 files, 4,160 KB | 14 files, 187.7 KB | 130 files, 3,543 KB | 17 files, 217 KB | 24 files, 1,792 KB | 25 files, 77.6 KB |
| After deactivation | +0.2 KB left autoloading | +2.6 KB left autoloading, 6 tables remain | Releases everything | No reduction: 14.5 KB still autoloading | No reduction at all | +11.0 KB still autoloading | Releases everything (exact baseline) |
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
| Feature | Hydrogen SEO 0.0.31 | Yoast SEO 28.8 | Slim SEO 4.11.5 | All in One SEO 5.0.5 | SEOPress 10.4 | Rank Math 1.0.282 | The SEO Framework 5.2.1 |
|---|---|---|---|---|---|---|---|
| Search engine verification codes | Free | Free | — | Free | Free | Free | Free |
| IndexNow instant indexing | Free | Paid | — | Paid | Free | Free | — |
| Redirect manager | Free | Paid | Free | Paid | Paid | Free | — |
| 404 monitor | Free | — | Free | Paid | Paid | Free | No |
| SEO column on the Posts screen | Free | Free | Free | Free | Free | Free | Free |
| SEO fields in Quick Edit | Free | — | Free | — | Free | Paid | Free |
| Attachment page redirects | Free | Free | Free | Free | Free | Free | — |
| Author and date archive controls | Free | Free | — | Free | Free | Free | Free |
| RSS feed text | Free | Free | — | Free | — | Free | — |
| max-snippet and preview controls | Free | — | — | Free | — | Free | Free |
| Primary category | Free | Free | Free | Paid | Free | Free | Free |
| Internal link counts on the Posts screen | Free | Free | — | — | Free | Free | — |
| Automatic image alt attributes | Free | — | Free | Paid | Free | Free | — |
| Table of contents block | Free | Paid | — | Free | — | Free | — |
| HTML sitemap | Free | — | — | Free | Free | Free | — |
| Pillar or cornerstone content flag | Free | Free | — | Paid | — | Free | — |
| Crawl cleanup switches | Free | Free | — | — | Free | — | — |
| Video sitemap | Free | Paid | — | Paid | Paid | Paid | — |
| Google News sitemap | Free | Paid | Free | Paid | Paid | Paid | — |
| llms.txt | Free | Free | — | Free | Paid | Free | — |
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 WordPress SEO plugin has the best sitemap?
Hydrogen SEO was the only plugin with both images and lastmod on every URL (72 of 72). Yoast listed the most URLs: 75, with 40 images and lastmod on 74.
Why does Rank Math's sitemap have no images?
At defaults it has image inclusion on but featured images off, so a site whose images are featured images gets no image entries. Turning featured images on in its sitemap settings fixes it.
Is the WordPress core sitemap good enough?
It listed 74 URLs on our test site but no images, and 23 URLs had no lastmod. It works for discovery; an SEO plugin's sitemap can add images and fuller dates.
Where is my sitemap?
It depends on the plugin: /sitemap.xml for Hydrogen SEO, Slim SEO, All in One SEO and The SEO Framework, /sitemap_index.xml for Yoast and Rank Math, and /sitemaps.xml for SEOPress. The Sitemap line in robots.txt always tells you.