All posts
Google Search ConsoleSitemapsTechnical SEO

How to Submit a Sitemap to Google Search Console

Published 19 August 2026·8 min read
Peter Claridge
Founder, KeywordHistory · Fractional CMO at Riverforge

Submitting a sitemap to Google Search Console takes about 30 seconds. Fixing one that won't process correctly can take days, mostly because the error messages are terse and the validation rules aren't obvious. Here's the full process plus the common reasons sitemaps fail to submit cleanly.

Before you can submit a sitemap, the property needs to be verified — see how to verify a site in Google Search Console for the five verification methods. If you're deciding between property types, domain property vs URL prefix covers the trade-offs.

The Short Version

  1. Create or generate your sitemap file (typically sitemap.xml)
  2. Upload it to your site's root directory so it's accessible at https://yoursite.com/sitemap.xml
  3. Open Google Search Console → Sitemaps (in the left sidebar under "Indexing")
  4. In the "Add a new sitemap" field, enter the path (e.g., sitemap.xml) — not the full URL
  5. Click Submit
  6. GSC will process the sitemap and show "Success" with the number of discovered URLs, or list errors if it failed

Once submitted, Google will recrawl the sitemap periodically — typically every few days — to pick up new URLs and changes. You don't need to resubmit each time the sitemap content changes; just keep the file at the same URL.

What Should and Shouldn't Be in a Sitemap

Include

  • All indexable, canonical URLs you want Google to know about
  • Lastmod dates that reflect actual content updates (not auto-bumped on every crawl)
  • Only URLs that return 200 status codes
  • Only URLs that aren't blocked by robots.txt
  • Only URLs that aren't tagged noindex

Exclude

  • 404 pages, redirected URLs, or URLs returning errors
  • Non-canonical duplicate URLs (paginated archives, parameter variants, etc.)
  • Noindexed pages — Google ignores them anyway, and they create cruft
  • Admin pages, login pages, internal tools
  • Pages behind authentication

A clean sitemap with 500 valid URLs is more useful than a bloated one with 2,000 URLs of which 1,500 are noindex or redirected. The latter signals carelessness to Google and can affect how aggressively the sitemap is used as a discovery source.

Sitemap Size Limits

  • Max 50,000 URLs per sitemap file
  • Max 50MB uncompressed file size
  • For sites with more than 50,000 URLs: split into multiple sitemap files and use a sitemap index that references all of them

A typical sitemap index structure for a large site:

  • /sitemap.xml — the index, referencing the child sitemaps
  • /sitemap-pages.xml — static pages
  • /sitemap-posts.xml — blog posts
  • /sitemap-products.xml — product pages (for e-commerce)
  • /sitemap-categories.xml — category pages

Submit only the top-level sitemap index to GSC. Google will discover and process the child sitemaps automatically.

Common Sitemap Errors and Their Causes

"Couldn't fetch"

GSC tried to access the sitemap URL but couldn't retrieve it. Causes:

  • The URL doesn't exist (typo in the submission)
  • The server returned an error (5xx) when Googlebot tried to fetch
  • robots.txt blocks crawling of the sitemap URL
  • The sitemap requires authentication
  • Cloudflare or another CDN is challenging Googlebot

Test by opening the sitemap URL in an incognito browser. If you can't access it without being logged in or solving a challenge, Googlebot can't either.

"Couldn't read sitemap"

GSC retrieved the file but couldn't parse it. Causes:

  • The file isn't valid XML (malformed tags, encoding issues)
  • The file is the wrong format (HTML page returned instead of XML)
  • The file has BOM (byte order mark) characters that break XML parsing
  • The XML declaration is wrong or missing

Validate your sitemap with an XML validator before submission. The first line should be exactly <?xml version="1.0" encoding="UTF-8"?> and the root element should be <urlset> or <sitemapindex>.

"URL not allowed"

The sitemap contains URLs that don't belong to the property you're submitting to. Sitemaps for example.com should only contain URLs on example.com. Cross-domain URLs in a sitemap aren't accepted (with very specific exceptions for cross-domain sitemaps, which most sites don't need).

"Submitted URL not found (404)"

Some URLs in the sitemap return 404. Clean these out — the rest of the sitemap will still process, but the affected URLs won't be indexed. Many sitemap generators fail to detect when pages are deleted from the CMS, leaving stale URLs in the sitemap.

"Submitted URL marked 'noindex'"

Pages in the sitemap have a noindex tag. Either remove the noindex (if you want them indexed) or remove them from the sitemap (if noindex is intentional). The contradiction signals confused intent to Google.

The Sitemap Status Report

In GSC → Sitemaps, each submitted sitemap shows:

  • Discovered URLs: How many URLs Google found in the sitemap (should match what you put in it)
  • Last read: When Google last fetched and processed the sitemap
  • Status: Success, has issues, or couldn't fetch

The discovered count is your sanity check. If you submit a sitemap with 10,000 URLs and GSC shows 8,500 discovered, 1,500 URLs failed parsing — investigate which ones and why.

How to Generate a Sitemap

WordPress

Use Yoast SEO, Rank Math, or All in One SEO. Each plugin generates a sitemap automatically and keeps it updated. The default URL is usually /sitemap.xml or /sitemap_index.xml.

Next.js / React / Modern Frameworks

Most frameworks support sitemap generation via a build-time plugin (Next.js hasnext-sitemap as a popular option). The sitemap regenerates on each deployment. For large sites, use server-rendered dynamic sitemaps that query the database for current page lists.

Static Site Generators

Hugo, Jekyll, Astro, etc. all have sitemap plugins or built-in generation. Configure once; the sitemap rebuilds on each site build.

Custom / Manual

For small static sites, you can hand-write the sitemap XML. For anything more than 50-100 pages, automate it — manual maintenance always lags behind site changes.

How Often to Update

The sitemap should regenerate whenever content changes. The lastmod date should reflect actual content modifications, not crawl timestamps. Inaccurate lastmod dates (everything always shows yesterday's date) reduce the sitemap's usefulness as a signal to Google.

Google rechecks sitemaps every few days for active sites and less frequently for sites with infrequent updates. There's rarely a need to resubmit manually — keep the file fresh and Google will pick up changes.

What Sitemaps Don't Do

A few common misconceptions worth correcting:

  • Sitemaps don't guarantee indexing. Including a URL in your sitemap tells Google about the page; it doesn't compel indexing. Indexing depends on content quality, internal links, and Google's evaluation.
  • Sitemaps don't determine rankings. Once a page is indexed, where it ranks depends on many factors, none of which are influenced by sitemap inclusion.
  • Sitemaps aren't a substitute for internal linking. Pages that appear only in sitemaps but have no internal links pointing to them are often treated as low-priority. Sitemaps complement good internal linking; they don't replace it.
  • Sitemap priority values are mostly ignored. The <priority> and <changefreq> elements have been deprecated in practice for years. Don't waste time tuning them.
Sitemaps are most useful as a discovery aid for URLs that aren't easily found through internal links — orphan pages, new content, deep archive pages. They're not a ranking lever; they're a "make sure Google knows this URL exists" mechanism.

One Specific Workflow Worth Adopting

After any major site change (migration, structural reorganization, batch content update), submit a fresh sitemap immediately. Then monitor the Page Indexing report for 2-3 weeks. The sitemap-driven discovery accelerates Google's recognition of the changes — particularly important during migrations where URLs are changing en masse.

For everything else: set the sitemap up once, automate its regeneration, and stop thinking about it. It's foundational infrastructure that should run quietly in the background, not something you fiddle with weekly.

Peter Claridge

Written by

Peter Claridge

Founder, KeywordHistory · Fractional CMO at Riverforge

Led organic growth at Unmetric, eG Innovations, and StreamAlive over 13+ years. Built KeywordHistory after rebuilding the same Google Data Studio dashboards one too many times.

Connect on LinkedIn

Keep your keyword history forever.

Every day you wait, Google deletes another day of your GSC data. KeywordHistory backs up to BigQuery automatically and surfaces the insights that matter.

Start free