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
+12.9 ms front-end, +1 queries, 0 custom tables, 10 JSON-LD types
72 URLs, 40 images,
lastmodon 72 of 72, and no custom database tables behind it. 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
+39 ms front-end, +3 queries, 6 custom tables, 12 JSON-LD types
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
+10 ms front-end, +2 queries, 0 custom tables, 10 JSON-LD types
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
+53.5 ms front-end, +22 queries, 9 custom tables, 8 JSON-LD types
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
+24.5 ms front-end, +1 queries, 1 custom tables, 0 JSON-LD types
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
+36.1 ms front-end, +16 queries, 6 custom tables, 6 JSON-LD types
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
+8 ms front-end, +0 queries, 0 custom tables, 9 JSON-LD types
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 | 0 | 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. Bold marks the better number in each row. Full method: how we tested.
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.