What this article helps answer
What a sitemap is, and how to think about it (discovery hint, not a ranking dial).
Which sitemap types exist: XML, text, RSS/Atom, sitemap index, news, image, video, and how HTML sitemaps differ.
What must be in the file, and what must stay out.
How to find or create a sitemap on WordPress, Voog, Shopify, Wix, or a hand-built site.
How to submit it in Google Search Console and list it in robots.txt.
How to check that it works, and how to fix "Couldn't fetch".
How to handle languages (hreflang) and signal real page changes.
Download the Sitemap skill knowledge file (counted download): SKILL.md via /api/skills/seo-sitemaps/download. Or open the skill page under Resources. Agents can also fetch the raw file at /resources/llm-seo-skills/seo-sitemaps/SKILL.md.
What a sitemap is (how to think about it)
A sitemap is a file where you list the URLs you want search engines to know about. Google reads it to crawl your site more efficiently. It is a focus list and a discovery hint, not a guarantee that every URL will be crawled or indexed, and not a ranking dial.
Google still crawls your site through normal links. The sitemap helps when pages are new, deep, weakly linked, rich in media, or hard to discover. Small, well-linked sites sometimes need one less; large, new, or frequently changing sites benefit more. In practice, leave CMS sitemaps on even for small sites. There is no harm in a clean map.
Sitemap types
Google supports the formats defined by the sitemaps protocol. It has no preference among supported formats. Pick what fits your stack.
XML sitemap: the most versatile. Can include lastmod and extensions for images, video, news, and hreflang. Usual default for websites.
Text sitemap: a .txt file with one absolute URL per line and nothing else. Simple for large URL lists when you only need page URLs.
RSS 2.0, mRSS, and Atom 1.0: often auto-generated by a CMS. Good for recently changed URLs. You can submit a feed URL as a sitemap in Search Console. Feeds usually cover only recent items, not the whole site.
Sitemap index: a file that lists other sitemap files when you exceed size limits. Nest one level only (index → sitemaps). Do not nest indexes inside indexes.
News sitemap: for Google News style freshness. Keep only recent article URLs (Google: articles from about the last two days; max about 1,000 news URLs in the file). Update the same file as you publish; do not mint a new news sitemap file every time.
Image sitemap (or image tags in your XML sitemap): helps Google find images it might otherwise miss (for example images loaded in ways that are hard to discover). Still supported.
Video sitemap (or video tags): can supply title, thumbnail, content or player URL, and related metadata. Still supported; useful when video discovery on the page is weak.
HTML sitemap: a normal web page of links for people. Crawlers can follow those links like any other links. It is not a structured sitemap you submit as XML, and it often does not list every product or article.
llms.txt: a markdown-style link list aimed at AI systems. Treat it like a curated HTML map, not as a Google sitemap substitute. Keep a real XML or text sitemap for search engines.
What must be in a sitemap
Absolute, fully qualified URLs in the form you want indexed (canonical). Example: https://www.example.com/page, not /page.
UTF-8 encoding. In XML, escape special characters in values (&, ', ", <, >).
Only URLs that should appear in search results. One preferred URL per piece of content.
Scheme and host consistency with the sitemap file location (https vs http, www vs bare), unless you use Search Console cross-site submission correctly.
Size limits per file: 50,000 URLs or 50 MB uncompressed. Gzip is allowed; the limit is on the uncompressed size. Split and use a sitemap index when larger.
Host the file where Google can fetch it without login. Prefer the site root so the map can cover the whole site. Without Search Console submission, a sitemap only covers descendants of its parent directory.
lastmod when you know a real significant update date (main content, structured data, or important links). Use W3C datetime. If you include a time, include a timezone. Omit lastmod when you are unsure.
What should not be in a sitemap
Do not rely on priority or changefreq. Google documents that it ignores both.
Do not fake lastmod (everything set to today when you regenerate). Google stops trusting the dates. That is not treated as a spam penalty; the signal simply dies.
Do not list relative URLs, redirect chains, tracking parameters, session IDs, or temporary variants.
Do not list URLs that are blocked by robots.txt, marked noindex, login-only, thin utility pages, or soft-404 junk you do not want indexed.
Do not nest sitemap indexes. Do not exceed 50k URLs / 50 MB per file.
Do not mix http/https or www/non-www between the sitemap URL and the URLs inside it (Search Console reports path mismatch / URL not allowed).
Do not treat an HTML sitemap page or llms.txt as the file you submit instead of XML/text/RSS.
How to find or create a sitemap by platform
Most modern CMS tools generate a sitemap automatically. The usual public address is yourdomain.com/sitemap.xml (or a sitemap index such as sitemap_index.xml).
WordPress: Yoast SEO or Rank Math generate XML sitemaps. In plugin settings, confirm the XML sitemap option is on. Open the URL the plugin shows (often /sitemap_index.xml or /sitemap.xml).
Voog, Shopify, Wix: these platforms create and update the sitemap for you. Find the public URL in their SEO or domain docs, then submit that URL.
Hand-built or static sites: generate from your build pipeline or database so new pages are not forgotten. One-off tools (for example XML-Sitemaps.com) can produce a starter file you place in the server root; for a living site, automate generation.
For a few dozen URLs you can maintain a text or XML file by hand. Beyond that, generate it.
How to submit a sitemap to Google
1. Sign in to Google Search Console for the correct property (same scheme and host as the live site).
2. Open Sitemaps in the left menu.
3. Enter the sitemap path or full URL as the report accepts (for example sitemap.xml or https://www.example.com/sitemap.xml).
4. Click Submit.
Also add this line anywhere in robots.txt (full URL):
Sitemap: https://www.example.com/sitemap.xml
You can list multiple Sitemap: lines. Search Console needs owner permission to submit in the report; robots.txt discovery does not. Use both when you want error tracking in the report.
Submitting is a hint. Google may still choose not to fetch the sitemap or crawl every URL, for capacity or quality reasons.
Resubmit after a real fix or a large restructure. Routine tiny edits do not need constant resubmits if Google already knows the sitemap URL.
How to check that it works
Browser: open yourdomain.com/sitemap.xml (or your real sitemap URL). If you see XML, a URL list, or an index of sitemaps, the file is reachable. 404 means missing or wrong path.
Search Console Sitemaps report: Success means fetched and parsed without errors. "Has errors" means some URLs may still queue while you fix listed problems. "Couldn't fetch" means Google did not retrieve the file.
Common Couldn't fetch causes: robots.txt blocking the sitemap URL; wrong URL or 404 (the report does not follow redirects for the submitted sitemap URL); server, DNS, or timeout; unresolved manual action; low crawl demand when Google does not want much from the site yet.
Debug: open the sitemap URL in Search Console URL Inspection, run a live test, and confirm Crawl allowed = Yes and Page fetch = Successful. Fix the cause, then resubmit. If fetch keeps failing for days, Google stops retrying until you fix and resubmit.
Languages (hreflang) and signaling changes
For language or region variants, use hreflang in HTML link tags, HTTP headers, or the XML sitemap. Pick one primary method and keep it consistent. In a sitemap, each language URL gets its own entry, and every entry lists all alternates including itself. Use codes such as et, en, en-GB, plus x-default when you have a fallback. Google detects page language from content; hreflang maps which URL is for which audience.
There is no useful sitemap ping endpoint anymore. Signal change with honest lastmod, new URLs when pages go live, RSS/Atom for recent items, and a news sitemap when you publish news. Listing a changed product or article URL with a true lastmod helps Google prioritise a recrawl sooner than waiting for a deep organic crawl.
Short checklist
Absolute canonical HTTPS URLs only; scheme and host match the sitemap location.
UTF-8; valid XML with escaped entities (or a clean .txt URL list).
Honest lastmod or omit the date. No priority or changefreq reliance.
Under 50,000 URLs / 50 MB uncompressed; sitemap index if split; no nested indexes.
Root or Search Console submitted; robots.txt allows the sitemap and the listed URLs.
Submit in Search Console for error tracking; live-test the sitemap URL when status fails.
hreflang complete if you serve more than one language.
News/RSS for freshness when you publish often; full XML for coverage.
HTML sitemap and llms.txt are optional extras, not XML replacements.