---
title: "How to Find, Fix and Submit Your WordPress Sitemap"
url: https://nexterwp.com/blog/wordpress-sitemap/
date: 2026-09-01
modified: 2026-09-01
author: "Aditya Sharma"
description: "WordPress sitemap explained: find yours, choose core or an SEO plugin, submit it to Search Console once, and catch the frozen cache that hides new posts."
image: https://nexterwp.com/wp-content/uploads/2026/09/wordpress-sitemap-featured-1024x538.jpg
word_count: 2405
---

# How to Find, Fix and Submit Your WordPress Sitemap

## Key Takeaways

- WordPress 5.5 exposes a sitemap index at /wp-sitemap.xml, and a single core sitemap holds a filterable maximum of 2000 entries.
- Rank Math and Yoast SEO publish /sitemap_index.xml, while robots.txt names the sitemap that search engines actually use.
- Google Search Console accepts the sitemap index URL in the Sitemaps report and shows when Googlebot accessed the sitemap plus processing errors.
- Google limits a single sitemap to 50MB uncompressed or 50,000 URLs, so larger sites split content into multiple child sitemaps behind an index.
- A cached sitemap can silently miss new posts, as shown by 452 URLs in the blog sitemap versus 453 published posts, and re-saving the SEO plugin’s sitemap settings forces regeneration.

 

An hour before this article was written, the site you are reading it on had a broken sitemap. Not theoretically. Its blog sitemap listed **452** URLs while the site actually had **453** published posts, and the newest date recorded anywhere in that file was a week old. Everything had published correctly. Every URL returned HTTP 200. The sitemap had simply stopped noticing.

That is the useful thing to know about sitemaps, and it is the part most guides leave out. They are not hard to create, because WordPress and every SEO plugin create them for you. They are easy to break quietly, and nothing on your dashboard tells you it happened.

So this guide covers finding yours, understanding which system is generating it, submitting it once and correctly, and diagnosing it when it goes wrong. With the real commands, and one worked example of a site catching its own failure.

Table of Contents

## What a Sitemap Does, and What It Does Not Do

A sitemap is a list of URLs you would like search engines to know about, in a format they read. That is the whole idea.

What it does: it tells crawlers a page exists, even when nothing on your site links to it well. That matters most for new posts, for deep pages, and for large sites where internal linking is uneven.

What it does not do, despite widespread belief:

- **It does not guarantee indexing.** A sitemap is a suggestion. Google decides separately whether a page is worth keeping.- **It does not improve rankings.** There is no ranking bonus for having one, and none for a large one.- **It does not fix a page nobody links to.** Discovery is not the same as importance. An orphan page in a sitemap is still an orphan page.- **It does not control crawling.** That is what `robots.txt` does, and the two files answer different questions.

Two consequences of that follow from Google's own documentation. Google states plainly that it "ignores `<priority>` and `<changefreq>` values," so hours spent tuning those numbers in a plugin are hours wasted. And it uses "the `<lastmod>` value if it's consistently and verifiably (for example by comparing to the last modification of the page) accurate," which means a plugin that stamps today's date on every URL every day teaches Google to disregard the field entirely.

## Where Your Sitemap Lives Right Now

Check these four URLs on your own domain, in this order. One of them will answer.

- `/wp-sitemap.xml` is the WordPress core sitemap, present since 5.5.- `/sitemap_index.xml` is what Rank Math and Yoast SEO publish.- `/sitemap.xml` is used by several other plugins, and sometimes redirects to one of the above.- `/robots.txt` is the tiebreaker. Whatever it names is what you are actually telling search engines to use.

Here is that check run against this site, with the real output:

`$ curl -sI https://nexterwp.com/wp-sitemap.xml | head -1
HTTP/1.1 404 Not Found

$ curl -sI https://nexterwp.com/sitemap_index.xml | head -1
HTTP/1.1 200 OK

$ curl -s https://nexterwp.com/robots.txt | grep -i sitemap
Sitemap: https://nexterwp.com/sitemap_index.xml`

That 404 on the core sitemap is correct behaviour, not a fault. An SEO plugin is running, it has disabled the core sitemap to avoid publishing two competing lists, and it serves its own instead. If you see the same pattern, nothing is broken.

Open the index and you get a list of child sitemaps rather than a list of pages, which is how larger sites stay inside the size limits:

![The live sitemap index on nexterwp.com listing seven child sitemaps including page, block, blog and blog-category](https://nexterwp.com/wp-content/uploads/2026/09/wordpress-sitemap-index-live.jpg)The live sitemap index on this site, captured 1 September 2026. Seven child sitemaps, each with its own lastmod, generated by Rank Math.

Each entry is a separate file covering one content type. That structure is what makes the diagnosis in a later section possible: you can check one child sitemap against one content type and see exactly where a gap is.

## Core Sitemaps vs SEO Plugin Sitemaps: Which One Should Win

WordPress gained sitemaps in 5.5. The core announcement described it as adding "basic, extensible XML sitemaps functionality into WordPress core," and confirmed that "with version 5.5., WordPress will expose a sitemap index at `/wp-sitemap.xml`."

![The WordPress core development post announcing XML sitemaps functionality in WordPress 5.5](https://nexterwp.com/wp-content/uploads/2026/09/wordpress-5-5-core-sitemaps.jpg)The core team's announcement of XML sitemaps in WordPress 5.5, which defines the /wp-sitemap.xml index and the 2000-entry limit. Source: make.wordpress.org.

The word doing the work in that sentence is "basic". Core sitemaps list your published content and stop there. They are genuinely fine, and for a straightforward site they need no attention at all. Two details are worth knowing: a single core sitemap holds "a (filterable) maximum of 2000 entries," adjustable through the `wp_sitemaps_max_urls` filter, and the `robots.txt` file WordPress serves references the index automatically.

What core does not give you is per-page control. There is no checkbox to keep one post out, no exclusion of thin archives, and no interface at all, only filters such as `wp_sitemaps_posts_query_args` and `wp_sitemaps_add_provider`. Every exclusion is a code change.

An SEO plugin adds the controls, splits content types into separate child sitemaps, and ties the sitemap to the same interface where you set the rest of your metadata. The honest summary is that this is a convenience difference, not a ranking difference.

The rule that actually matters is simpler than the comparison: **run one sitemap system, not two.** If a plugin is generating sitemaps, core's should be off, and it usually switches itself off. Where sites get into trouble is running two SEO plugins at once, or half-migrating between them, and ending up submitting two disagreeing lists.

***Also Read:** [Rank Math vs Yoast SEO](https://nexterwp.com/blog/rank-math-vs-yoast/) compares the two plugins that will most likely be generating your sitemap.*

If you would rather not add a full SEO plugin just for sitemap control, the free [Nexter Extension](https://nexterwp.com/nexter-extension/) includes a built-in [SEO toolkit](https://nexterwp.com/nexter-extensions/seo-for-wordpress/) covering XML sitemaps, robots and site verification alongside meta and schema, which keeps the whole discovery layer in one place.

## How to Submit It to Google Search Console

There are two places to tell search engines about your sitemap, and you should use both, once.

**In Search Console.** Google recommends submitting "a sitemap in Search Console using the Sitemaps report," and the reason it gives is the useful part: it "will allow you to see when Googlebot accessed the sitemap and also potential processing errors." You are not submitting for the crawl so much as for the diagnostics. Open your property, go to the Sitemaps report, enter the sitemap path, submit. Enter the index URL, not each child sitemap.

**In robots.txt.** One line, and every crawler reads it, not only Google:

`Sitemap: https://example.com/my_sitemap.xml`

Multiple sitemap lines are allowed, with no limit on how many.

![Google Search Central documentation on building and submitting a sitemap, showing the size limits and submission methods](https://nexterwp.com/wp-content/uploads/2026/09/google-sitemap-guidelines.jpg)Google Search Central's sitemap guidelines, the source of the 50,000 URL limit and the submission methods above. Captured 1 September 2026.

Then leave it alone. Resubmitting the same sitemap after every post does nothing; crawlers refetch it on their own schedule. If you need a specific new page looked at quickly, use URL Inspection on that URL instead, which is a different tool for a different job.

While you are in there, the size ceilings are worth knowing so you recognise them if you ever hit them. Google's limit is that "all formats limit a single sitemap to 50MB (uncompressed) or 50,000 URLs." Past either, you split into multiple sitemaps behind an index, which is what your plugin is already doing.

***Also Read:** [Google Search Console for WordPress](https://nexterwp.com/blog/google-search-console-wordpress/) walks through the setup and the reports that are actually worth checking.*

## Six Reasons a Sitemap Breaks

In rough order of how often they turn up.

### 1. The Cache Froze and Nobody Noticed

This is the one that opened this article, and it is the most dangerous because everything else looks healthy. Sitemaps are expensive to generate, so plugins cache them. When the invalidation that is supposed to fire on publish stops firing, the cached file keeps being served and new posts never appear in it.

There is a cheap way to detect it, and it costs two requests. Compare the number of URLs in the sitemap against the number of posts WordPress says exist. The [WordPress REST API](https://nexterwp.com/blog/wordpress-rest-api/) reports the true count in a response header:

`# What the sitemap claims
$ curl -s https://nexterwp.com/blog-sitemap.xml | grep -c "<loc>"
452

# What WordPress actually has
$ curl -sI "https://nexterwp.com/wp-json/wp/v2/blog?per_page=1" | grep -i x-wp-total
x-wp-total: 453`

Equal numbers mean the sitemap is complete. A gap tells you exactly how many published posts search engines cannot currently discover through it. That one-post gap is the article you are reading being invisible to the sitemap while being perfectly reachable at its URL.

The fix is to force regeneration. Re-saving your SEO plugin's sitemap settings does it, because saving invalidates the cache. If it keeps refreezing, the invalidation hook is genuinely broken and the durable answer is to make regeneration fire on publish rather than clearing it by hand every time.

### 2. Two Plugins Are Both Generating One

Two SEO plugins active at once, or a leftover dedicated sitemap plugin after migrating. Symptoms are contradictory URL counts and Search Console reporting sitemaps you do not remember submitting. Pick one, deactivate the other, and remove the stale sitemap from Search Console.

### 3. Noindex Pages Are Listed

A sitemap saying "please index this" while the page header says "do not index" is a direct contradiction, and Search Console flags it. Usually it comes from a page being set to noindex after it was already in the sitemap. Whatever you exclude from indexing, exclude from the sitemap too.

### 4. The XML Is Served as HTML

If a caching layer or a rewrite rule serves your sitemap with a `text/html` content type, or returns a themed 404 page with a 200 status, crawlers get something unparseable. Check the header, not the browser view:

`curl -sI https://example.com/sitemap_index.xml | grep -i "content-type\|HTTP"`

You want a 200 and an XML content type. A browser showing a "cannot be formatted as intended" notice above your XML is normal, by the way. That is only the missing stylesheet, and crawlers do not care.

### 5. Permalinks Changed and Nothing Was Flushed

Sitemap URLs are served through rewrite rules. Change your permalink structure without flushing them and the sitemap can 404 outright, or list URLs in the old structure. Re-saving Settings then Permalinks flushes the rules, which is why [permalinks in WordPress](https://nexterwp.com/blog/wordpress-permalinks/) are worth getting right before you have hundreds of posts.

### 6. It Is Full of Pages You Do Not Want

Not broken exactly, but wasteful. Attachment pages, empty tag archives, paginated duplicates and author archives on a single-author site all bulk out a sitemap with pages that will never earn a visit, and they consume attention that matters more than it used to now that [crawl budget in WordPress](https://nexterwp.com/blog/crawl-budget-wordpress/) has AI crawlers competing for it as well.

## What to Keep Out of Your Sitemap

The test is one question: if someone landed on this URL from a search result, would that be a good outcome? If not, keep it out.

- **Attachment pages.** A bare page containing one image and nothing else. Exclude them, and optimise the images on your real pages instead, which is where [image SEO for WordPress](https://nexterwp.com/blog/image-seo-wordpress/) pays off.- **Empty or near-empty archives.** A tag with one post is a worse version of that post.- **Thank-you, cart and checkout pages.** No search intent, and sometimes no business being public.- **Paginated archive pages.** Page two of a category rarely deserves its own entry.- **Author archives on a single-author site.** A duplicate of your blog index.- **Anything set to noindex.** Non-negotiable, as covered above.

What stays: posts, pages, real category and tag archives that carry their own content, product pages, and any custom post type people genuinely search for.

## Do Sitemaps Still Matter for AI Search?

Yes, and for an unglamorous reason. AI answer engines mostly do not maintain their own independent picture of the web from scratch; they rely on crawled indexes, and being discoverable is still the entry condition. A page missing from your sitemap on a site with weak internal linking is a page that may not be in the index a model draws on.

What has changed is that a sitemap is no longer the only file in this job. It tells crawlers which URLs exist. It says nothing about what your content means or which parts of it are worth quoting, which is the gap that [llms.txt on WordPress](https://nexterwp.com/blog/llms-txt-generator-wordpress/) is meant to address, and it says nothing about what you permit, which is [what robots.txt handles](https://nexterwp.com/blog/robots-txt-generator-wordpress/).

Treat the three as one discovery layer with three jobs: the sitemap lists, robots.txt permits, llms.txt explains. Getting the first one right is still the cheapest of the three.

## Frequently Asked Questions

### Do I Need a Sitemap Plugin for WordPress?

No. WordPress has generated one since version 5.5 at `/wp-sitemap.xml`, and if you already run an SEO plugin you have one from that instead. A dedicated sitemap plugin on top of either is usually the cause of a problem rather than the solution to one.

### Why Is My WordPress Sitemap Returning a 404?

Most often because you are checking the wrong URL: an SEO plugin has disabled the core `/wp-sitemap.xml` and publishes `/sitemap_index.xml` instead, so the 404 is expected. If the URL named in your `robots.txt` also 404s, flush your permalinks by re-saving Settings then Permalinks.

### How Long Does Google Take to Process a Sitemap?

Fetching it is usually quick, within hours to a few days. Indexing the URLs inside it is a separate decision with no fixed timetable, and submitting the sitemap again does not speed it up.

### Should I Include Images in My Sitemap?

Image entries can help if images drive real traffic for you, such as on a photography or product site. For a typical blog, descriptive filenames and alt text on the page do more than an image sitemap will.

### My New Posts Are Not in the Sitemap. What Do I Do?

Run the two-request count comparison from the section above to confirm a real gap, then force regeneration by re-saving your SEO plugin's sitemap settings. If posts keep going missing, the cache invalidation on publish is broken and needs fixing at the source rather than clearing by hand each time.

## Suggested Reading

- [The WordPress REST API explained](https://nexterwp.com/blog/wordpress-rest-api/), including the header trick used to audit sitemap completeness above.- [Crawl budget in WordPress](https://nexterwp.com/blog/crawl-budget-wordpress/), what it is and when it actually matters.- [Internal linking plugins compared](https://nexterwp.com/blog/best-internal-linking-plugins-for-wordpress/), because a sitemap is no substitute for real links.- [Programmatic SEO on WordPress](https://nexterwp.com/blog/programmatic-seo-wordpress/), where sitemap size limits stop being theoretical.- [llms.txt on WordPress](https://nexterwp.com/blog/llms-txt-generator-wordpress/), the discovery file aimed at AI answer engines.

#### Stay updated with Helpful WordPress Tips, Insider Insights, and Exclusive Updates – Subscribe now to keep up with Everything Happening on WordPress!

Subscribe