XConvert
Downloads
Pricing

Generate Sitemap Online

Create a SITEMAP file quickly in your browser and download it instantly—no installs needed.

URLs
0 URLs parsed
Per-URL options
Generated sitemap.xml0 URLs
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
</urlset>

How to Generate a sitemap.xml Online

  1. Paste Your URL List: Drop one URL per line into the input — full URLs with protocol (https://www.example.com/page), absolute paths only. Paste an exported list from your CMS, a crawler (Screaming Frog, Sitebulb), or find . -name '*.html'. A single sitemap holds up to 50,000 URLs and 50 MB uncompressed per the sitemaps.org spec.
  2. Set lastmod, changefreq, and priority defaults: Apply lastmod (W3C date YYYY-MM-DD or full ISO 8601) to every URL, or leave blank to omit. Pick a default changefreq (always, hourly, daily, weekly, monthly, yearly, never) and priority (0.0–1.0, default 0.5). Note: Google ignores changefreq and priority — only lastmod is read, and only if it's verifiably accurate across crawls.
  3. Generate and Preview the XML: Click "Generate" to build a <urlset> document declaring xmlns="http://www.sitemaps.org/schemas/sitemap/0.9". The preview shows the full XML — one <url> block per entry with <loc> (required), plus any <lastmod>, <changefreq>, <priority> you set.
  4. Copy or Download sitemap.xml: Click Copy for the clipboard or Download to save the file. Upload to your site root so it's reachable at https://yourdomain.com/sitemap.xml, then add Sitemap: https://yourdomain.com/sitemap.xml to your robots.txt and submit the URL in Google Search Console → Sitemaps. Bing Webmaster Tools accepts the same file.

Why Generate an XML Sitemap?

A sitemap.xml is a machine-readable index of the URLs you want indexed. It doesn't replace good internal linking, but it tells Google and Bing which pages exist (especially orphan pages, deep pagination, and newly-published URLs) and when they last changed — Google explicitly uses <lastmod> to schedule re-crawls when the date is trustworthy. Common reasons to maintain one:

  • New sites with thin backlink profiles — Googlebot discovers pages by following links; if no one links to your "About" or "/blog/post-3" yet, the sitemap is how Google finds them. Critical in the first 3-6 months after launch.
  • Large sites with deep pagination or faceted navigation — E-commerce stores with 10,000+ product URLs, news archives, or marketplace listings rely on sitemaps so Google doesn't have to traverse 5+ click-depth paths to every leaf page.
  • Headless / JavaScript-rendered sites — If your site is a SPA where bots see an empty shell until JS executes, the sitemap is the only reliable way to enumerate routes. Next.js, Nuxt, Remix, and Astro all generate sitemaps for this reason.
  • Multilingual sites — Pair each canonical URL with <xhtml:link rel="alternate" hreflang="…"> entries in the sitemap (namespace xmlns:xhtml="http://www.w3.org/1999/xhtml") to declare en-US / en-GB / fr-FR / es-MX variants in one file. Easier to maintain than <link rel="alternate"> tags on every page.
  • Image, video, and news content — Image sitemaps (namespace http://www.google.com/schemas/sitemap-image/1.1) let you declare up to 1,000 <image:image> entries per <url>. Video sitemaps surface playable content to Google Video; News sitemaps push fresh articles to Google News (publishers only, articles ≤2 days old).
  • Crawl-budget management on large sites — Accurate <lastmod> on pages that actually changed signals Googlebot to re-crawl those specifically and skip the rest. Sites with 100K+ URLs see real bot-budget savings from getting lastmod right.

Pair your sitemap with a robots.txt declaring Disallow rules and a Sitemap: line pointing at the file — crawlers fetch robots.txt first and follow the sitemap reference automatically.

sitemap.xml Elements — What Google Actually Reads

Element Required Format Google behavior (as of 2023+)
<loc> Yes Absolute URL, max 2,048 characters, URL-encoded Read — the URL to crawl
<lastmod> No W3C Datetime: YYYY-MM-DD or full ISO 8601 (2026-05-25T14:30:00+00:00) Read — used to schedule re-crawls when consistently accurate. Don't auto-stamp it on every publish or Google starts ignoring it.
<changefreq> No always, hourly, daily, weekly, monthly, yearly, never Ignored. Confirmed by Google Search Central — no effect on crawl schedule.
<priority> No 0.0 to 1.0 (default 0.5) Ignored. Google does not use it to rank or prioritize crawl. Bing also publicly downweighted it years ago.

The practical implication: omit changefreq and priority to keep your sitemap small. A 50,000-URL sitemap with just <loc> and <lastmod> is roughly 4–6 MB; adding the two ignored fields can push it past 10 MB with zero SEO upside.

Sitemap Index Files — When You Exceed 50,000 URLs or 50 MB

Per the sitemaps.org protocol, a single sitemap is capped at 50,000 URLs and 50 MB uncompressed (gzip is allowed for transit; the uncompressed size still has to fit). Above that, you split into multiple sitemaps under one index file.

File type Schema namespace Caps Purpose
Sitemap http://www.sitemaps.org/schemas/sitemap/0.9 50,000 URLs, 50 MB uncompressed Lists actual page URLs
Sitemap index Same namespace, <sitemapindex> root 50,000 child sitemaps, 50 MB Lists sitemap files; each <sitemap> has <loc> + optional <lastmod>
Image extension http://www.google.com/schemas/sitemap-image/1.1 Up to 1,000 <image:image> per <url> Declares images for Google Images
Video extension http://www.google.com/schemas/sitemap-video/1.1 One <video:video> per <url> (multiple <url>s OK) Declares playable video for Google Video
News extension http://www.google.com/schemas/sitemap-news/0.9 Articles published in the last 2 days only Push to Google News (approved publishers only)
hreflang xmlns:xhtml="http://www.w3.org/1999/xhtml" <xhtml:link rel="alternate" hreflang="…"> per <url> Declare language/region variants

A site with 200,000 URLs typically ships sitemap.xml (the index) pointing to sitemap-1.xml through sitemap-4.xml, each with 50,000 URLs. Submit only the index URL in Search Console — Google fetches the children automatically.

Frequently Asked Questions

How many URLs can a single sitemap.xml hold?

Per the sitemaps.org protocol (the spec Google, Bing, and Yandex all honor), one sitemap file is capped at 50,000 URLs and 50 MB uncompressed — whichever you hit first. The 50 MB cap is the uncompressed byte size; you can serve a gzipped file (sitemap.xml.gz) but the file decompresses below 50 MB. Above either cap, split into multiple sitemaps and reference them from a sitemap index file. A sitemap index can itself list up to 50,000 child sitemaps, so a single index points to up to 2.5 billion URLs in theory.

Does Google actually honor priority and changefreq?

No. Google Search Central has confirmed publicly (and Gary Illyes has reiterated on the search-off-the-record podcast) that <priority> and <changefreq> are ignored. They were optional hints from the 2005 spec era; modern Googlebot uses its own crawl-scheduling model based on observed update frequency, link signals, and <lastmod> accuracy. The only sitemap field Google actively reads is <lastmod>, and only when it's verifiably accurate — auto-stamping today's date on every URL trains Google to ignore your lastmod too.

How do I submit my sitemap to Google and Bing?

Three options, in descending order of recommendation:

  1. Google Search Console → Sitemaps (most visibility): paste the full URL of your sitemap file, click Submit. You get crawl status, URL-discovered counts, and error reports.
  2. robots.txt (passive): add Sitemap: https://yourdomain.com/sitemap.xml on its own line. Every crawler that fetches robots.txt picks it up — Googlebot, Bingbot, DuckDuckBot, Yandex, plus SEO tools like Screaming Frog and Ahrefs.
  3. Bing Webmaster Tools → Sitemaps mirrors Search Console; same submission flow. The Bing ping endpoint (bing.com/ping?sitemap=…) was deprecated in 2023.

Google's /ping endpoint was retired in 2023 — submission via Search Console or robots.txt is the only supported path now.

Can I use an RSS or Atom feed as a sitemap instead?

Yes, technically — Google accepts RSS 2.0 and Atom 1.0 feeds as sitemap submissions, and many CMS platforms (WordPress, Ghost) expose feeds at /feed/. The catch: a feed only carries your most recent 10–25 items, so it works as a complement to a full XML sitemap (faster fresh-content discovery) but not a replacement. If your goal is to enumerate every page on the site, you need the XML sitemap.

What's the format for an image or video sitemap?

For images, add the namespace xmlns:image="http://www.google.com/schemas/sitemap-image/1.1" to the root <urlset> and nest <image:image><image:loc>https://…</image:loc></image:image> inside each <url> — up to 1,000 images per URL. For videos, use xmlns:video="http://www.google.com/schemas/sitemap-video/1.1" and include <video:video> with required <video:thumbnail_loc>, <video:title>, <video:description>, and one of <video:content_loc> or <video:player_loc>. Both extensions live inside a normal sitemap — no separate file needed unless you want logical separation.

How do I add hreflang language tags to my sitemap?

Declare the namespace xmlns:xhtml="http://www.w3.org/1999/xhtml" on <urlset>, then inside each <url> block list every language variant (including the URL itself) as <xhtml:link rel="alternate" hreflang="en-US" href="https://…" />. Use ISO 639-1 language codes (en, fr, es, ar) optionally paired with ISO 3166-1 alpha-2 region codes (en-US, en-GB, fr-CA, es-MX). Add hreflang="x-default" for the fallback URL. Google strongly prefers hreflang in the sitemap for sites with 1,000+ pages — less risk of inconsistent on-page <link> tags drifting out of sync.

Should I include URLs with query strings or only canonical pages?

Only canonical URLs — the version you want Google to index. Don't list ?utm_source=… tracking variants, faceted-search permutations (?color=blue&size=L), or session-ID URLs. Including non-canonicals wastes crawl budget and risks Google indexing the parameterized version instead of the clean one. If a URL has a <link rel="canonical"> pointing elsewhere, list the canonical target in the sitemap, not the source.

How often should I regenerate my sitemap?

Whenever your URL inventory changes — new pages, deleted pages, or substantive content updates. Static sites can regenerate on every deploy (most static-site generators do this automatically: Hugo, 11ty, Next.js, Astro). Dynamic sites typically regenerate nightly via cron or on-publish hook. Don't regenerate hourly with stamped lastmod="today" on every URL — that's the fastest way to teach Google to ignore your lastmod entirely.

Related Generate tools
Robots Txt GeneratorMeta Tag GeneratorJson Ld Schema GeneratorHtaccess GeneratorOg Image Generator

Image Tools

Image CompressorCompress JPEGCompress PNGCompress GIFCompress WebPImage ConverterJPG ConverterImage Resizer

Video Tools

Video CompressorCompress MP4MP4 to GIFVideo to GIFVideo ConverterMP4 ConverterVideo Cutter

Audio Tools

Audio CompressorCompress MP3Compress WAVAudio ConverterMP3 ConverterFLAC to MP3Audio Cutter

Document Tools

Compress PDFMerge Images to PDFSplit PDFPDF to JPGUnzip FilesRAR Extractor
© 2026 XConvert.com. All Rights Reserved.
About UsPrivacy PolicyTerms of ServiceContactHelp Us Grow