Back to Blog

How Often Should Your Sitemap Update? A Data-Backed Answer

Match sitemap cadence to content velocity — blog, e-commerce, and SaaS benchmarks with the Google Search Console signals that tell you when you are off.

I
Indexly Team
· · 5 min read

How Often Should Your Sitemap Update? A Data-Backed Answer

The honest answer to how often your sitemap should update is: as often as your content does, and no more. A sitemap that lags your content creates indexing delays; a sitemap that pretends to change when nothing did gets ignored by Google.

The tricky part is knowing what "your content changes" actually means for your site, and how to match your sitemap cadence to it without over- or under-shooting. This guide gives you a decision framework, cadence benchmarks by site type, and the Search Console signals that tell you when you're getting it wrong.

Table of contents

  1. The short answer
  2. What Google actually uses to schedule crawls
  3. The sitemap update paradox
  4. Recommended cadence by site type
  5. How to tell your current cadence is wrong
  6. Why continuous re-crawl beats scheduled batches
  7. FAQ

The short answer

Here's the one-line rule: your sitemap should update within 24 hours of content changing, and should not update when content hasn't.

If you're a blog that posts weekly, a weekly cadence is fine. If you run an e-commerce catalog with daily product changes, daily is the floor. If you're a high-volume news site, hourly. And if your sitemap regenerates every 5 minutes from a NOW() timestamp regardless of whether anything changed, you have a problem that no schedule will fix.

Most of this article is spent on how to achieve that — because setting the right cadence is the easy part, and keeping it accurate over time is where tooling matters.

What Google actually uses to schedule crawls

Google doesn't read your sitemap on your schedule. It fetches your sitemap on its schedule, decides what looks new, and queues those URLs for crawling.

The mechanism is straightforward:

  1. Google fetches your sitemap periodically.
  2. For each URL in the sitemap, Google compares <lastmod> against its record of the last time it crawled that URL.
  3. URLs with a newer <lastmod> get queued for re-crawl sooner than URLs that didn't change.

That's the whole model. Back in 2010, John Mueller confirmed the behaviour pretty bluntly in a Google Webmaster Help thread: "Google's Sitemaps crawler usually reacts to the update frequency of your Sitemap files. If we find new content there every time we crawl, we may choose to crawl more frequently."

Two takeaways fall out of this:

1. <lastmod> is the only piece of metadata that materially affects scheduling. Not <priority>. Not <changefreq>. Google officially ignores both. If you've spent time tuning priority values, you've spent that time on a ghost.

2. <lastmod> only works if it's accurate. If your sitemap says a URL changed yesterday but the page content is identical to last month's version, Google notices. Over time it stops trusting your dates and starts ignoring them — which means the signal stops working. Gaming the date is a short-term win and a long-term loss.

The full rules for getting <lastmod> right are in our XML sitemap guide. The summary: <lastmod> should reflect when the page's main content meaningfully changed, nothing else.

The sitemap update paradox

Two failure modes bracket the right answer, and most sites land on one side or the other.

Failure mode 1: Sitemap lags content

Your sitemap regenerates weekly. You publish Monday, Wednesday, and Friday. Google fetches your sitemap Thursday and sees Monday's post — no trace of Wednesday's. Wednesday's post gets discovered by Google only through internal links or external referrals, which on a newer site might not exist yet.

Result: indexing delay of anywhere from hours to weeks per post. Traffic you could have had on day one shows up on day four.

Failure mode 2: Sitemap updates when nothing changed

Your sitemap regenerates every 15 minutes. Every regeneration, the <lastmod> on every URL gets bumped to NOW() even though nothing on the pages actually changed. Google fetches the sitemap, sees every URL looks "new," re-crawls a bunch of unchanged pages, notices nothing is different, and starts distrusting the dates.

Result: crawl budget burnt on nothing. Real updates get lost in the noise. The sitemap becomes less useful, not more.

The target zone

The right cadence is the one where:

  • Every genuine content change makes it into the sitemap within ~24 hours
  • No URL gets a new <lastmod> unless its content actually changed
  • The sitemap is reachable, valid, and under Google's size limits at all times

Achieving this manually is harder than it sounds. A sitemap regenerated by a cron job that diffs the previous version and only bumps <lastmod> on changed URLs is rare — most sitemap tools just rewrite everything on a schedule. This is one of the cases where automation pays back quickly.

Recommended cadence by site type

There's no one-size cadence. Below are reasonable starting points based on content velocity — the rate at which URLs on your site are added, removed, or materially changed.

Site type Content velocity Recommended sitemap update cadence
Static brochure site <1 change/month Monthly or on-deploy
Small business, low-volume blog 1–4 changes/month Weekly
Active blog, docs site, portfolio Several changes/week Weekly, or daily once you're beyond ~5 posts/week
SaaS marketing site with programmatic pages Continuous Daily
E-commerce (under 10k products) Daily Daily
E-commerce (10k+ products, fast-moving inventory) Hourly Multiple times/day
News / publishing Hourly+ Hourly or event-driven
User-generated content platform Continuous Hourly or event-driven

A few notes on reading this table:

"Content velocity" is the key input, not "site size." A 50,000-page catalog that hasn't changed in six months needs a monthly sitemap refresh at most. A 200-page SaaS site with a changelog that updates three times a week needs a daily one.

More frequent than daily almost always needs event-driven updates, not scheduled ones. If your sitemap updates every hour but nothing changed between 3pm and 4pm, you're back in failure mode 2. Truly high-velocity sites should regenerate the sitemap on publish/unpublish events, not on a fixed interval.

"On deploy" is a legitimate cadence for JAMstack sites. If every content change triggers a Netlify/Vercel rebuild, your build pipeline is already an event-driven sitemap generator. This works right up until your content update rhythm decouples from your deploy rhythm — which happens the moment you add a CMS, a comments system, or a user-generated layer. More on this trade-off in dynamic vs static sitemaps for SaaS.

How Indexly's plans map to these cadences

For context — Indexly's plans are structured around these real-world cadences rather than arbitrary tiers:

  • Free — manual crawl. You click "Crawl now" whenever you want. Good for the static-brochure / "update when I remember" profile.
  • Starter ($7/mo) — weekly automatic crawl. Matches small blogs and low-velocity sites.
  • Pro ($24/mo) — daily automatic crawl. Matches active blogs, docs, marketing sites, and small-to-mid e-commerce.
  • Agency ($69/mo) — daily crawl across unlimited sites. Matches the "daily" column above, at scale.

If your content velocity is genuinely hourly or event-driven, hosted sitemap tooling alone usually isn't enough — you'll want a pipeline that pings your sitemap tool (or Search Console directly) on publish. We cover that pattern in the continuous re-crawl section below.

How to tell your current cadence is wrong

Don't guess. Open Search Console and look.

Signal 1: indexing lag on new content

In GSC → Pages → Indexed, sort by most recently indexed and compare to your publish schedule. If Wednesday's post didn't get indexed until the following Monday, your sitemap wasn't telling Google about it fast enough.

Fast fix: submit the specific URL via URL Inspection. Real fix: faster sitemap cadence so Google finds the next one on its own.

Signal 2: "Crawled but not in sitemap" entries

If Google is finding URLs via internal links that should have been in your sitemap but aren't, your sitemap is missing content it should contain. Often means the sitemap tool doesn't support your new section, a new route type, or a dynamic URL pattern.

Signal 3: sitemap last-read date stays stale

In GSC → Sitemaps, each submitted sitemap shows a "last read" date. If Google is reading your sitemap weekly when you update it daily, Google doesn't think the extra refreshes are worth the round-trip. That's fine — but confirm your <lastmod> dates are actually changing when content changes, otherwise Google may have given up on them.

Signal 4: many "Page with redirect" or "Not found (404)" in coverage

A sitemap that's stale contains URLs that no longer exist. Every one of those is a flag on your sitemap's reliability. Past a certain threshold (roughly 5–10% junk), Google starts discounting the whole file.

Why continuous re-crawl beats scheduled batches

"Update your sitemap daily" sounds simple until you remember it's 3am and nothing is watching your cron job.

A sitemap that updates on a fixed schedule has three failure modes you can't easily detect:

  1. The cron job silently stopped running after a dependency upgrade.
  2. The regeneration script OOMs past a certain URL count.
  3. The deploy that ships a new content section doesn't know to also regenerate the sitemap.

This is why hosted sitemap services exist: not because "a cron job" is technically hard, but because a cron job that's still running correctly 14 months later is hard. Indexly crawls on a schedule from external infrastructure, stores the sitemap on a CDN that doesn't share fate with your app, diffs each crawl against the last, and emails you when something unexpected changes. If the daily crawl fails, you know about it. If 400 pages silently disappeared from your site overnight, you know about it.

The alternative — "I'll regenerate it manually when I remember" — works fine for a month. Past that, every site we've ever looked at drifts. This is the single reason we built the product.

For a deeper look at the crawl-budget side of this equation, see crawl budget explained. And if your site is approaching 50k+ URLs, cadence intersects with sharding — covered in sitemaps for large sites.

FAQ

How often should a sitemap update?

As often as your content changes, within a 24-hour target. Blogs and SaaS sites benefit from daily updates; static sites can get by with monthly. What matters is that the sitemap reflects reality — stale sitemaps full of removed URLs hurt more than infrequent ones, and sitemaps that update when nothing changed train Google to ignore them.

Does updating my sitemap more often make Google crawl faster?

Up to a point. Google adjusts its fetch frequency based on how often your sitemap shows genuinely new content. If every fetch turns up real changes with accurate <lastmod> dates, crawl frequency goes up. If every fetch turns up churn without real changes, crawl frequency eventually drops. Accuracy matters more than raw frequency.

Should I update <lastmod> every time I regenerate the sitemap?

No. <lastmod> should reflect when the page's content changed, not when the sitemap file was rewritten. If a URL's content is unchanged since the last crawl, its <lastmod> should also be unchanged. Bumping every <lastmod> on every regeneration is one of the fastest ways to lose Google's trust in your dates.

Is a daily sitemap overkill for a small site?

Usually, yes — if your site genuinely changes weekly, a daily sitemap just re-publishes the same content. The cost isn't technical, it's signal quality: daily fetches that reveal no real changes train Google to weight your sitemap less over time. Match the cadence to the content, not the other way around.

What if my sitemap is generated at build time but content changes between builds?

You have a drift problem. Any CMS content, user-generated pages, or dynamic routes that change between deploys will be stale until the next build. Options: trigger builds on content change (webhooks from your CMS), split the sitemap between build-time static content and a runtime-generated dynamic portion, or offload sitemap generation to a tool that crawls your live site on a schedule independent of deploys.

Does Google still support sitemap ping URLs?

No. Google officially deprecated the google.com/ping?sitemap=... endpoint in mid-2023. The official way to notify Google of a new sitemap is either to list it in robots.txt, submit it via Search Console, or include it in an RSS/Atom feed. Most sitemap tools updated their behaviour to simply rely on Google re-fetching on its own schedule.


The bottom line

Pick the cadence that matches your content velocity, make sure <lastmod> reflects real changes, and monitor Search Console for the signals that tell you it's off. Those three habits cover 95% of what "how often should my sitemap update" actually means in practice.

What's hard isn't picking the schedule — it's keeping it running correctly for the next three years without anyone touching it. If that sounds like a chore, try Indexly free. Paste your site URL, pick a cadence that matches your content, and get a hosted sitemap that stays current without a cron job on your server or a plugin in your CMS. Every page found. Every page indexed.

I

Indexly Team

Writing about SEO, sitemaps, and how to get every page indexed by Google.

Enjoyed this post?

Get our next one delivered to your inbox — no spam, ever.

Back to Blog

Ready to get your site fully indexed?

Get started free