All posts
WordPress Sitemap: Where to Find Yours, Which One to Submit, and How to Fix It

WordPress Sitemap: Where to Find Yours, Which One to Submit, and How to Fix It

Where your WordPress sitemap lives, which URL to submit to Google, what to remove from it, and how to fix a sitemap that shows up as HTML.

October 26, 2026 · 8 min read

Every WordPress site running version 5.5 or later already has an XML sitemap. You don't need a plugin to create one. The confusion starts when a plugin creates a second one, the two live at different URLs, and you aren't sure which one Google is reading.

The short answer:

  • No SEO plugin: your sitemap is at https://yoursite.com/wp-sitemap.xml.
  • Yoast SEO or Rank Math: your sitemap is at https://yoursite.com/sitemap_index.xml, and the plugin replaces the core one.
  • Submit exactly one of them in Search Console — the one that actually loads as XML on your site.

The rest of this guide covers how to confirm which one you have, what WordPress puts in it by default, what's worth taking out, and what to do when Search Console says the file is an HTML page.

Where Is My WordPress Sitemap?

WordPress added built-in sitemaps in version 5.5 (August 2020). The announcement on the WordPress core blog describes the main details:

  • The index lives at /wp-sitemap.xml.
  • It lists public post types (posts, pages, and any public custom post types), public taxonomies (categories and tags), author archives, and the homepage.
  • Each sub-sitemap holds up to 2,000 URLs by default before WordPress starts a new one.
  • Images, video, and news sitemaps are not included. Core only produces the standard format.

SEO plugins usually turn that off and serve their own. Yoast SEO, for example, disables the core sitemap in favor of its own index at /sitemap_index.xml, and Rank Math uses the same path. If both URLs seem to load, open each in a private window and look at what comes back. The one your plugin controls is the one that reflects your plugin settings, such as excluded post types or noindexed pages.

A quick way to tell what you're running:

| You open | You see | What it means | | --- | --- | --- | | /wp-sitemap.xml | An index listing wp-sitemap-posts-post-1.xml and similar | Core sitemap is active | | /sitemap_index.xml | An index listing post-sitemap.xml, page-sitemap.xml | A plugin sitemap is active | | /wp-sitemap.xml | Redirects to /sitemap_index.xml | A plugin replaced the core sitemap and is pointing you to its own | | Either URL | Your theme's "page not found" template | That sitemap isn't active (or something is intercepting it) |

There is one setting that silently removes the core sitemap entirely. Under Settings → Reading, the checkbox "Discourage search engines from indexing this site" disables WordPress sitemaps. It's easy to leave on after a staging launch. If /wp-sitemap.xml returns nothing and you don't use an SEO plugin, check that box first.

Which Sitemap Should You Submit to Google?

Submit the one that works, and only that one.

Submitting both /wp-sitemap.xml and /sitemap_index.xml doesn't help. If the plugin redirects one to the other, Google just follows the redirect. If both genuinely serve different lists, you are giving Google two conflicting descriptions of your site. One of them likely still lists pages your plugin is set to exclude.

To submit it:

  1. Open the sitemap URL in a private window and confirm you see XML, not your theme.
  2. In Search Console, go to Sitemaps, paste the path (for example sitemap_index.xml), and click Submit.
  3. Check that the status turns to Success within a day or two.

You also don't need to edit robots.txt by hand in most cases. WordPress adds a Sitemap: line to the virtual robots.txt it generates. Google's sitemap documentation lists robots.txt and the Search Console Sitemaps report as two ways to tell it where the file is, and using both is fine. One catch: if a physical robots.txt file exists in your site's root folder, WordPress's virtual one isn't served, so that Sitemap: line won't appear unless you add it yourself.

If the status stays on Couldn't fetch, the problem is delivery, not content. That's a separate diagnosis, covered step by step in sitemap could not be read.

What to Take Out of a WordPress Sitemap

A sitemap is a list of pages you want Google to consider indexing. WordPress's default output is generous, and on a typical blog a few entries don't belong.

Author archives on a single-author blog. If you're the only author, /author/yourname/ lists the same posts as your blog home. It isn't harmful, but it's a page you probably don't want indexed. In Yoast and Rank Math, there's a toggle for author archives in the sitemap settings. With core sitemaps, you can remove them with a small snippet. The WordPress announcement documents the wp_sitemaps_add_provider filter, which you can return false for the users provider.

Tag archives you don't maintain. If you've used 200 tags once each, each one is a thin archive page. Either noindex unused tag archives in your SEO plugin (which also drops them from its sitemap), or leave tags out of the sitemap entirely.

Anything you've set to noindex. A URL marked noindex shouldn't be in your sitemap. You're asking Google to crawl a page you've told it not to index. Plugin sitemaps handle this automatically. Core sitemaps don't know about noindex settings added by other tools. If you see these pages showing up as Excluded by 'noindex' tag in Search Console, and they're also listed in your sitemap, that mismatch is worth fixing.

Redirected or deleted URLs. If you changed a slug, the old URL should drop out of the sitemap on its own. If it doesn't (a caching layer serving a stale sitemap is the usual reason), you'll see it reported as page with redirect.

What you don't need to fuss over: priority and changefreq. Google's documentation says plainly that it ignores both. It uses lastmod only when the value is "consistently and verifiably" accurate. So the one field worth getting right is the last-modified date, and WordPress and the major plugins fill it from each post's actual modified time. The broader version of this, including which fields matter on any platform, is in our sitemap best practices guide.

"Your Sitemap Appears to Be an HTML Page" on WordPress

This Search Console error means Google requested your sitemap URL and got a normal web page back instead of XML. On WordPress, the cause is almost always one of these:

  1. The URL is wrong. You submitted /sitemap.xml, but your setup serves /wp-sitemap.xml or /sitemap_index.xml. Some themes and hosts answer an unknown URL with a 200 status and a regular page instead of a 404. Google then reads that page as your "sitemap."
  2. A caching or optimization plugin served a cached HTML page. Page caches and minifiers sometimes treat the sitemap path like any other page. Exclude your sitemap URLs (and the .xsl stylesheet some plugins use) from caching, then clear the cache.
  3. A security, maintenance, or login plugin intercepted the request. "Coming soon" and maintenance-mode plugins return an HTML page to every logged-out visitor, Googlebot included. So do some firewall challenge pages.
  4. Permalinks need refreshing. After a migration or plugin change, sitemap rewrite rules can go missing. Going to Settings → Permalinks and clicking Save without changing anything rebuilds them.

To check from Google's side rather than yours, paste the sitemap URL into the URL Inspection tool and run a Live test. You're logged in, so your browser may get a different response than Googlebot does. The live test shows what Google actually receives. Once it returns XML, resubmit the sitemap in the Sitemaps report.

A Working Sitemap Is Where Indexing Starts, Not Where It Ends

Getting the sitemap to Success means Google knows your URLs exist. It doesn't mean they'll be indexed. Google is clear that listing a URL in a sitemap is no guarantee it will be crawled or indexed. A very common next question is why a sitemap with 80 posts shows only 50 indexed. We cover that in Google not indexing all your sitemap URLs, and the two statuses those missing posts usually carry in Discovered vs. Crawled — Currently Not Indexed.

The sitemap also can't make up for weak internal linking. A post that's in the sitemap but linked from nowhere else on your blog is still an orphan page, and those tend to be crawled less and indexed later than posts your other articles point to.

The practical way to tell whether the whole chain is working is to watch what happens after you publish. Does a new post start collecting impressions within a couple of weeks, or does it sit at zero? Traffic Monitor connects to your Search Console and shows clicks and impressions for each post, updated daily. That makes a post that never gets picked up easy to spot. You can connect your blog with read-only Search Console access.

WordPress Sitemap Checklist

  • Open /wp-sitemap.xml and /sitemap_index.xml. Know which one is actually yours.
  • Make sure "Discourage search engines" is unchecked under Settings → Reading.
  • Submit one sitemap in Search Console and confirm the status is Success.
  • Remove author archives (single-author blogs), unmaintained tag archives, and noindexed URLs.
  • Exclude sitemap URLs from page caching.
  • If you get "appears to be an HTML page," run a URL Inspection live test on the sitemap URL before changing anything else.

Track your blog rankings automatically

Connect Google Search Console and get daily alerts, keyword research, and AI diagnostics — free to start.

Start free →