Skip to content
QualityWordPress

WordPress Sitemap Not Updating? How to Fix It (2026)

WordPress sitemap not updating or missing new posts? Fix stale caching, CDN copies, plugin conflicts, and index settings — then force a refresh that sticks.

QualityWordPress 10 min read
Google Search Console dashboard showing crawl errors and coverage report data

You published a new post an hour ago, opened your sitemap to confirm it was listed, and it wasn’t there. Or the file loads fine but every lastmod date is frozen weeks in the past. A WordPress sitemap not updating is one of the more frustrating SEO problems because nothing looks broken — the file exists, it returns a 200 status, and it validates cleanly. The stale data is hiding one layer down.

The good news is that this almost always traces back to a handful of specific, fixable causes. This guide walks through each one in the order you should check them, shows you how to force regeneration in Yoast and Rank Math, and explains how to confirm the fix actually worked rather than assuming it did.

First, Confirm the Sitemap Is Actually Stale

Before you start clearing caches, rule out the most common false alarm: you’re looking at a cached copy in your own browser.

Open your sitemap in a private or incognito window, or append a throwaway query string like ?v=123 to the URL to bypass any cache. If your newest post appears now, the file was never stale — your browser was showing you an old version. If it’s still missing, you have a genuine problem to solve.

It also helps to understand what a healthy sitemap looks like in the first place. If you’re not sure where yours lives or how it’s structured, our guide to XML sitemaps in WordPress covers the core file, the Yoast and Rank Math versions, and where to find each.

Cause 1: A Caching Plugin Is Serving a Stale Copy

This is the single most common reason for a sitemap not showing new posts. Caching plugins store a static, pre-rendered copy of pages to serve them faster — and many of them cache the sitemap XML by mistake. WordPress regenerates the file correctly in the background, but every visitor, including Googlebot, receives the frozen cached version instead.

The fix:

  1. Clear all caches from your caching plugin (WP Rocket, W3 Total Cache, LiteSpeed Cache, and similar all have a one-click purge).
  2. Reload the sitemap URL in a private window and check whether the dates and new posts appear.
  3. To stop it recurring, add an exclusion so the sitemap paths are never cached. Exclude both sitemap_index.xml and sitemap.xml (or wp-sitemap.xml if you use the core sitemap), and any *-sitemap.xml sub-files your plugin generates.

Most caching plugins have a dedicated “Never Cache URLs” or “Exclude from cache” field where you paste those paths. If your plugin uses regex, a pattern matching sitemap in the URL covers all the sub-files at once. For a rundown of how the major plugins handle exclusions, see our comparison of the best WordPress caching plugins.

Cause 2: A Server-Level or CDN Cache Is Holding the Old File

Even after you clear your plugin cache, two other layers can serve a stale sitemap: server-level caching and your CDN.

Managed WordPress hosts (Kinsta, WP Engine, SiteGround, Cloudways, and others) run their own full-page cache at the server level, independent of any plugin. A Cloudflare or other CDN edge cache adds a third layer — it can hold a copy of your sitemap at edge locations around the world for hours.

The fix:

  • Server cache: Purge it from your host’s dashboard or control panel. Most managed hosts expose a “Clear cache” button; some also add a toolbar item inside WordPress.
  • CDN cache: In Cloudflare, use Caching → Configuration → Purge Cache to purge the specific sitemap URLs, or purge everything if you’re unsure. Then create a cache rule (or page rule) that bypasses the cache for any URL containing sitemap.

After purging both, load the sitemap in a private window one more time. If the file only updates after a CDN purge, that confirms the edge was your culprit and the bypass rule will prevent a repeat.

Person working at a desk with analytics charts displayed on a laptop screen

Cause 3: Two Plugins Are Generating Competing Sitemaps

If you have two SEO plugins active — or an SEO plugin running alongside a standalone sitemap plugin, or alongside the WordPress core sitemap — they can fight over the same URL. One plugin serves the visible output while another holds the rewrite rule, and the result is a frozen file that never picks up new content.

This is one of the most overlooked causes because everything appears configured correctly. Both plugins report that sitemaps are enabled; the conflict is invisible from either settings screen.

The fix: keep exactly one sitemap source active.

  • Deactivate any redundant sitemap or SEO plugin. Running Yoast and Rank Math simultaneously, for example, is never correct.
  • If you use an SEO plugin, it disables the core wp-sitemap.xml automatically — you don’t need a separate sitemap plugin on top.
  • Confirm the URL you submitted to Search Console points at the sitemap your remaining plugin actually generates (usually sitemap_index.xml).

Plugin conflicts like this are a frequent source of odd WordPress behavior generally — our guide to common WordPress errors and fixes covers how to isolate a misbehaving plugin by selective deactivation.

Cause 4: SEO Plugin Index Settings Are Excluding Post Types

If specific types of content never appear in your sitemap — an entire custom post type is missing, or your products, or your portfolio items — the problem usually isn’t caching at all. It’s that the post type or taxonomy is excluded in your SEO plugin’s settings, or set to noindex.

A sitemap should only list indexable URLs, so any post type marked noindex is deliberately kept out. If content that should be indexed is missing, the setting is simply wrong.

In Yoast SEO: Go to Yoast SEO → Search Appearance. Under Content Types and Taxonomies, each post type and taxonomy has a “Show in search results?” toggle. If it’s set to Off, that type is noindex and excluded from the sitemap. Switch it On for anything that should be indexed.

In Rank Math: Go to Rank Math → Sitemap Settings, open the relevant tab under Post Types or Taxonomies, and make sure the type is included. Separately, check Titles & Meta to confirm the same post type isn’t set to noindex there — the two settings need to agree.

After changing these, the missing URLs should appear on the next sitemap regeneration.

WordPress uses rewrite rules to map pretty URLs like /sitemap_index.xml to the code that generates them. If those rules get out of sync — often after a plugin update, a migration, or a settings change — the sitemap URL can return a 404 or serve an outdated file.

The fix is the classic WordPress permalink flush:

  1. Go to Settings → Permalinks.
  2. Don’t change anything.
  3. Click Save Changes.

This rebuilds the rewrite rules and forces WordPress to regenerate the sitemap on the next request. It’s harmless, takes five seconds, and resolves a surprising range of sitemap and URL routing issues.

Cause 6: A Persistent Object Cache Is Storing Old Data

Sites running Redis or Memcached use a persistent object cache to store database query results in memory. It’s a big performance win, but it can also hold onto the data your sitemap is built from, so the file keeps regenerating from stale cached values even after you’ve purged page caches.

The fix:

  • Flush the object cache. Many hosts add a “Flush object cache” button to the WordPress toolbar; otherwise your host’s dashboard or a plugin like Redis Object Cache exposes one.
  • On managed hosts, the host-level cache purge often flushes the object cache at the same time — check your host’s documentation.

If your sitemap only updates after an object-cache flush, you’ve found the layer responsible.

Cause 7: Search Console Is Just Showing a Cached Copy

Sometimes the sitemap on your site is perfectly current and the “stale” data only appears inside Google Search Console. This is normal and usually needs no fix at all.

Search Console displays the sitemap as of the last time Google read it, and Google re-fetches on its own schedule — the “Last read” date can lag by days even when your file is up to date. Submitting a sitemap does not trigger an instant recrawl.

What to do:

  • Check the raw sitemap file directly in a private browser window. If it’s current there, your site is fine regardless of what Search Console shows.
  • To nudge Google, re-submit the sitemap under Indexing → Sitemaps, or use the URL Inspection tool on a new post and request indexing for that specific page.
  • Then be patient. The “Last read” date will catch up on Google’s timeline, not yours.

If you haven’t set this up yet, our walkthrough on how to submit your sitemap to Google Search Console covers the submission process end to end.

How to Force Sitemap Regeneration Per Plugin

If clearing caches didn’t help, you can force the plugin itself to rebuild the sitemap from scratch.

Force a Yoast SEO Refresh

Yoast regenerates its sitemap dynamically, so there’s no manual “rebuild” button — but you can force a clean rebuild:

  1. Go to Yoast SEO → General → Features and toggle XML sitemaps off, save, then toggle it back on and save. This resets the sitemap generation.
  2. Follow with a permalink flush (Settings → Permalinks → Save Changes).
  3. Clear all caches, then reload the sitemap in a private window.

Force a Rank Math Refresh

Rank Math caches its sitemap and gives you a direct control to clear it:

  1. Go to Rank Math → Sitemap Settings → General.
  2. Find the option to delete or rebuild the sitemap cache and trigger it. Rank Math regenerates the file on the next request.
  3. Alternatively, disable the Sitemap module under Rank Math → Dashboard, save, then re-enable it to rebuild from scratch.
  4. Clear all caches and reload the sitemap in a private window.

How to Confirm the Fix Actually Worked

Don’t assume — verify. Run through this quick check after any of the fixes above:

  1. Load the sitemap in a private/incognito window so you bypass browser and login caches entirely. Confirm your newest post appears and the lastmod dates reflect recent changes.
  2. Check a sub-sitemap directly. Open the post sitemap (for example post-sitemap.xml in Yoast, or the equivalent in Rank Math) and confirm the new URL is listed with a correct date.
  3. Add a cache-busting query string (?test=1) and compare. If both the plain URL and the busted URL now show fresh data, caching is no longer interfering.
  4. Re-submit in Search Console and watch the status. A “Success” status with an updated URL count confirms Google fetched the current file.
  5. Use URL Inspection on the new post to check its indexing status directly — this is the fastest way to confirm Google can see the page.

If the file is current everywhere except Search Console’s “Last read” date, you’re done — that date updates on Google’s schedule and needs no further action.

For the bigger picture of how sitemaps sit within crawling, indexing, and everything else Google needs to process your site, our guide to technical SEO for WordPress ties these pieces together.

FAQ

Why is my WordPress sitemap not showing new posts?

Almost always because a cache is serving a stale copy — a caching plugin, a server-level cache, a CDN edge cache, or a persistent object cache. Clear each layer in turn and reload the sitemap in a private window. If specific post types are missing rather than just recent posts, check that they aren’t set to noindex or excluded in your SEO plugin’s sitemap settings.

How do I force my WordPress sitemap to refresh?

Clear all caches (plugin, server, CDN, and object cache), then do a permalink flush under Settings → Permalinks → Save Changes. In Rank Math you can also clear the sitemap cache directly in Sitemap Settings; in Yoast, toggle the XML sitemaps feature off and back on. Then reload the sitemap in an incognito window to confirm.

Why does the sitemap look updated on my site but old in Search Console?

Search Console shows the sitemap as of the last time Google fetched it, and Google re-reads on its own schedule — the “Last read” date can lag by days even when your file is current. If the raw sitemap is up to date in a private browser window, your site is fine. Re-submit it to nudge Google, then wait.

Can two SEO plugins cause my sitemap to freeze?

Yes. Two SEO plugins, or an SEO plugin plus a standalone sitemap plugin, can compete for the same URL — one serves output while another holds the rewrite rule, leaving a frozen file. Keep exactly one sitemap source active and confirm the URL you submitted points to it.

Do I need to resubmit my sitemap every time I publish?

No. Google re-fetches your sitemap automatically once it’s submitted. You only need to resubmit after major structural changes or if you’re troubleshooting. For everyday publishing, one submission is enough — the submit your sitemap to Google Search Console guide explains the one-time setup.

Related articles

Never miss a free theme

Get new free themes and practical WordPress guides in your inbox.