Sitemap.xml Generator

Build a valid XML sitemap from a URL list. Set per-URL priority, change frequency, and last-modified date. Supports sitemap-index for >50 000 URLs. Validates against the sitemaps.org spec β€” all in your browser.

URL list

One URL per line. Optional inline metadata: url,priority,changefreq,lastmod

Defaults (used when URL row doesn’t specify)

Stats

8
valid URLs
1
sitemap
0
errors

XML output

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url>
    <loc>https://example.com</loc>
    <lastmod>2026-05-01</lastmod>
    <changefreq>daily</changefreq>
    <priority>1.0</priority>
  </url>
  <url>
    <loc>https://example.com/about</loc>
    <lastmod>2026-04-15</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://example.com/blog</loc>
    <lastmod>2026-05-01</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.9</priority>
  </url>
  <url>
    <loc>https://example.com/blog/first-post</loc>
    <lastmod>2026-04-20</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://example.com/contact</loc>
    <lastmod>2026-01-10</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://example.com/products</loc>
    <lastmod>2026-04-30</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.9</priority>
  </url>
  <url>
    <loc>https://example.com/products/widget</loc>
    <lastmod>2026-04-25</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://example.com/products/gadget</loc>
    <lastmod>2026-04-26</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
</urlset>
100% client-side Β· your URL list never leaves the device

About Sitemap.xml Generator

The Sitemap.xml Generator turns a list of URLs into a valid sitemaps.org-compliant XML sitemap, with per-URL priority, change frequency, and last-modified date. For sites with more than 50 000 URLs (the per-sitemap cap), it can split the input across multiple sitemaps and emit a sitemap-index that ties them together. Inputs accept one URL per line, with optional inline metadata (priority, changefreq, lastmod) parsed automatically. The output is a copy-or-download XML block that drops directly into your site root and gets registered with Google Search Console + Bing Webmaster.

Why use a Sitemap.xml Generator?

An accurate sitemap.xml is the single most reliable way to tell search engines which URLs on your site matter, when they were last updated, and how often they change. Without one, crawlers discover pages only via internal links β€” which means new pages, deep pages, and orphaned pages can stay un-indexed for weeks. Most CMSes generate sitemaps automatically, but you often need a manual one when migrating, building a static site, or curating which pages are worth indexing (e.g. exclude tag/archive pages, include canonical product URLs only). Hand-writing the XML is error-prone (one malformed `<lastmod>` and Google rejects the whole file); this tool guarantees a valid output.

Who is it for?

Built for SEO specialists building or auditing sitemaps for client sites, web developers shipping static-site generators or custom CMSes that need a sitemap output, e-commerce managers curating product URLs for indexing, content marketers ensuring their key pages are submitted to search engines, and migration teams generating new sitemaps after URL restructuring. Pairs with the existing robots-txt-tester and meta-tag-generator tools for a complete pre-launch SEO checklist.

How to use the tool

1

Paste your URL list into the input β€” one URL per line. Optionally include priority and changefreq inline (e.g. 'https://example.com/page,0.8,daily,2026-04-15')

2

Adjust the default priority and changefreq for URLs that don't specify their own

3

Set the default last-modified date (or use 'now')

4

Watch the XML update live as you edit

5

Copy the output or click Download to save as sitemap.xml

6

For sites with more than 50 000 URLs, switch to 'Sitemap index' mode β€” the tool splits the URLs across multiple sitemaps and emits an index file referencing them

7

Upload sitemap.xml to your site root and submit to Google Search Console and Bing Webmaster Tools

Key Features

Sitemaps.org spec-compliant XML

Output validates against the sitemaps.org/protocol XSD. Proper escaping of ampersands, quotes, and apostrophes in URLs.

Per-URL metadata

Each URL can have its own priority (0.0-1.0), changefreq (always/hourly/daily/weekly/monthly/yearly/never), and lastmod (W3C date). Defaults apply when not specified.

Inline metadata parsing

URL list accepts inline CSV-style metadata: 'url,priority,changefreq,lastmod' β€” useful when bulk-importing from a spreadsheet or CMS export.

Sitemap-index for large sites

Sites with >50 000 URLs hit Google's per-sitemap cap. The tool splits the input across multiple sitemaps and generates a sitemap-index file referencing all of them.

URL validation

Flags malformed URLs, duplicate entries, and URLs missing a protocol β€” all common reasons sitemaps get rejected.

Copy + download

Copy the XML to clipboard or download as sitemap.xml directly. For sitemap-index mode, downloads as a single zip with the index plus each child sitemap.

100% client-side

URL parsing, validation, and XML generation all run in your browser. Your URL list never leaves the device β€” verifiable in DevTools (zero network requests).

Common Use Cases

Generating sitemap for a static site

Scenario: You build with Astro / Hugo / 11ty and need a sitemap.xml in your output directory.

βœ“ Paste your built URL list (or run a quick `find` over your output), set sensible priorities (1.0 for homepage, 0.8 for major sections, 0.5 for blog posts), download, drop into your output dir.

Migration from one URL structure to another

Scenario: You're moving from /blog/post-name to /articles/post-name and need a fresh sitemap reflecting the new URLs so Google reindexes them faster.

βœ“ Paste the new URL list with lastmod=today, priority=0.8, changefreq=monthly. Submit immediately after launch β€” Google reprioritizes recrawl based on the new sitemap.

Curating which URLs Google should index

Scenario: Your CMS auto-generates 5,000 tag-archive pages that thin-content the index; you want only the canonical 800 pages submitted.

βœ“ Build a URL list of only the 800 canonical URLs, generate a manual sitemap, submit it as the authoritative one. Combined with `noindex` on the archive pages, this resolves the thin-content issue.

Sitemap index for a 200 000-URL e-commerce site

Scenario: Your e-commerce site has 200 000 product URLs β€” over Google's 50 000 per-sitemap cap.

βœ“ Switch to Sitemap-index mode, the tool splits into 4 child sitemaps (50K each) and an index referencing them. Upload the index URL to Search Console; Google fetches each child.

Pre-launch SEO checklist

Scenario: You're shipping a new site and need a sitemap.xml in the deploy artifact alongside robots.txt and meta tags.

βœ“ Build the sitemap here, the robots.txt with the existing tester, the meta tags with the meta-tag-generator. Drop all three into your deploy and you've covered the SEO basics.

Sitemaps.org
spec-compliant output, validated against the protocol XSD.
100%
client-side β€” your URL list never leaves the device. No upload, no API call.
Static
site β€” no backend dependency.

Frequently Asked Questions

What's the maximum size of a single sitemap?

Google and the sitemaps.org spec cap each sitemap at 50,000 URLs OR 50 MB uncompressed (whichever is hit first). For sites larger than that, you split into multiple sitemaps and submit a sitemap-index file. This tool's Sitemap-index mode handles the split automatically.

Should priority and changefreq actually matter?

Less than people think. Google has publicly stated that they largely ignore these hints β€” relying instead on actual crawl signals like internal linking and content change rates. Bing and other engines do still use them. They don't hurt to include and they help with smaller / less-crawled engines, so set them sensibly but don't agonize.

What's the right priority for my homepage vs blog post?

Common convention: homepage = 1.0, top-level sections (about/products/blog) = 0.9, individual products / important content = 0.8, blog posts = 0.5-0.7, tag/archive pages = 0.1-0.3. These are relative within your sitemap, not absolute β€” Google compares them against each other on your site.

What changefreq should I use?

Match it to actual update cadence. Homepage / category pages that change daily = `daily`. Blog posts that don't change after publication = `monthly` or `yearly`. Static pages (about, contact) = `yearly`. Don't use `always` unless the URL literally regenerates per request β€” search engines flag implausible values.

Do I need lastmod?

Yes β€” Google has explicitly confirmed `lastmod` is the most important hint in a sitemap. It tells the crawler 'this page changed since last visit, please recrawl.' Use accurate dates; setting everything to 'today' to force recrawl is detected and ignored.

Can I include image and video metadata?

Sitemap protocol supports image-sitemap and video-sitemap extensions, but they're niche β€” most sites don't need them since structured data on the page covers the same ground. This tool focuses on the standard URL sitemap; for image/video sitemaps, hand-edit the output to add the relevant `<image:image>` or `<video:video>` blocks.

Where do I put the sitemap.xml file?

At your site root: https://example.com/sitemap.xml. Then add a `Sitemap:` directive to your robots.txt: `Sitemap: https://example.com/sitemap.xml`. Submit the URL in Google Search Console (Sitemaps > Add a new sitemap). Bing Webmaster Tools auto-discovers via robots.txt but you can manually submit too.

Does this tool send my URLs anywhere?

No. URL parsing, validation, and XML generation run in your browser. Verifiable in DevTools β€” using the tool produces zero outbound requests with your URL list.

Technical Specifications

Supported Formats

  • βœ“Sitemap protocol 0.9 (sitemaps.org/protocol.html)
  • βœ“URL elements: loc, lastmod, changefreq, priority
  • βœ“Sitemap-index for >50 000 URLs (auto-split into 50 000-URL child sitemaps)
  • βœ“Inline CSV-style URL list parsing: url,priority,changefreq,lastmod
  • βœ“Default priority + changefreq + lastmod fallback for URLs without explicit values
  • βœ“URL validation: malformed URL detection, duplicate detection, missing-protocol detection

Limits & Performance

  • β€’File Size: 50,000 URLs per sitemap (auto-split into multiple in index mode); no hard cap on total URLs
  • β€’Validations: Live URL parsing; XML re-render is sub-100ms for 1000s of URLs
  • β€’Response Time: Synchronous, in-browser
  • β€’Browsers: All modern browsers (Chrome, Firefox, Safari, Edge); works offline once loaded

Pro Tips

  • Always include `lastmod` β€” Google has called it the most important sitemap hint. Use the actual modification date, not today's.
  • Don't include URLs that are noindex, blocked by robots.txt, or behind auth. They confuse crawlers and waste your sitemap budget.
  • Sitemap URLs must be canonical β€” match exactly what's in your `<link rel=canonical>`. Trailing slashes, http vs https, www vs non-www all matter.
  • Compress sitemap.xml as sitemap.xml.gz before uploading β€” Google supports gzipped sitemaps and the file is much smaller. (Most CDNs serve .xml.gz automatically.)
  • Limit to 50,000 URLs per file. If close to the cap, switch to Sitemap-index mode now β€” easier than refactoring later when you cross the line.
  • Add the sitemap location to robots.txt: `Sitemap: https://example.com/sitemap.xml`. Bing and other crawlers discover sitemaps this way.
  • Submit the sitemap URL via Search Console even if you've added it to robots.txt β€” it lets you see crawl/index stats per URL in the Search Console UI.
  • Re-generate after major content changes. A stale sitemap (where lastmod doesn't reflect actual changes) is worse than no sitemap at all.

Share This Tool

Found this tool helpful? Share it with others who might benefit from it!

πŸ’‘ Help others discover useful tools! Sharing helps us keep these tools free and accessible to everyone.

Support This Project

Buy Me a Coffee