XML Sitemap Generator
Generate valid XML sitemaps from a list of URLs with changefreq and priority.
Reviewed by Aygul Dovletova · Last reviewed
How to Use the XML Sitemap Generator
Paste the list of URLs you want search engines to discover, pick a change frequency and priority, and the generator builds a valid Sitemap 0.9 XML file in your browser. Nothing is uploaded — your URL list never leaves your device.
- Paste your URLs — One absolute URL per line, each starting with
https://orhttp://. Include the full canonical form of every page you want indexed, without tracking parameters. - Set change frequency — Choose
always,hourly,daily,weekly,monthly,yearlyornever. The value is a hint about how often the page actually changes, not a promise. - Set priority — A decimal from 0.0 to 1.0 expressing relative importance within your own site. The default when omitted is 0.5.
- Generate the file — Copy the XML or download
sitemap.xmldirectly. Each entry is wrapped in a<url>element with<loc>,<lastmod>,<changefreq>and<priority>children. - Publish and submit — Upload the file to the root of your site and reference it from
robots.txtwith aSitemap:line. Optionally submit it inside Google Search Console and Bing Webmaster Tools to trigger a faster first fetch.
About the Sitemap Protocol
The Sitemap Protocol 0.9 was introduced by Google in 2005 and adopted jointly by Yahoo and Microsoft in 2006, creating the first cross-engine standard for URL discovery. The schema lives at http://www.sitemaps.org/schemas/sitemap/0.9 and defines two root elements: <urlset> for a single sitemap and <sitemapindex> for an index that references other sitemaps.
A single sitemap can contain up to 50,000 URLs and must be no larger than 50 MB uncompressed. When either limit is exceeded you split the URLs across multiple sitemaps and expose them through a sitemap index, which itself can reference up to 50,000 child sitemaps. Compression with gzip is supported and counts against the 50 MB figure in its uncompressed form.
The file must be encoded as UTF-8 and all URL values must be properly entity-escaped for &, <, >, " and \'. Every URL listed must be on the same host as the sitemap file unless cross-submission is verified in the relevant webmaster tool.
Examples
A minimal sitemap with a single URL entry:
<?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-01-15</lastmod>
<changefreq>weekly</changefreq>
<priority>1.0</priority>
</url>
</urlset>
A sitemap index that points to three child sitemaps:
<?xml version="1.0" encoding="UTF-8"?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<sitemap><loc>https://example.com/sitemap-pages.xml</loc></sitemap>
<sitemap><loc>https://example.com/sitemap-posts.xml</loc></sitemap>
<sitemap><loc>https://example.com/sitemap-products.xml</loc></sitemap>
</sitemapindex>
Reading lastmod, changefreq and priority Correctly
Of the three optional child elements, <lastmod> is the one modern engines actually act on. Google uses an accurate <lastmod> to decide what to refetch and discounts it entirely if it sees the same date on every URL. Stamp it with the genuine last-content-change date, not the build timestamp, so a CSS-only deploy does not falsely advertise every page as updated. The <changefreq> and <priority> fields carry far less weight - Google largely ignores both - so set them honestly but do not expect them to move rankings.
A Worked Multi-Sitemap Setup
Suppose a store has 8,000 product URLs, 1,200 blog posts, and 60 static pages. Rather than one 9,260-URL file, split it into sitemap-products.xml, sitemap-posts.xml and sitemap-pages.xml, then list all three in a sitemap-index.xml at the root. The split makes the coverage report readable per content type and lets you regenerate only the section that changed - posts daily, products on inventory sync, static pages rarely. Reference the index file, not the children, from the Sitemap: line in robots.txt; crawlers expand it automatically.
When to Use a Sitemap
- Large sites — Any site with more than a few hundred URLs benefits from a sitemap so crawlers do not have to rely only on internal link discovery.
- New sites with few backlinks — A brand-new domain often has no inbound links, so submitting a sitemap is the fastest route to initial indexing.
- Rich content archives — Blogs, news sites and wikis with deep chronological archives expose old posts that might otherwise sit many clicks from the homepage.
- JavaScript-heavy single-page apps — When internal links are rendered client-side, a sitemap is the reliable way to enumerate every crawlable route.
- Frequent updates — News outlets, event listings and e-commerce catalogs use
<lastmod>to signal which pages changed since the last crawl. - Multi-language sites — Use
<xhtml:link rel="alternate" hreflang="...">inside each URL entry to advertise language and regional variants.
Frequently Asked Questions
What is an XML sitemap?
An XML sitemap is a structured file, conforming to the Sitemap Protocol 0.9 schema, that lists the URLs on a website you want search engines to know about. Each entry can include the URL itself, a last-modified timestamp, an expected change frequency and a priority hint. Sitemaps accelerate discovery and help crawlers allocate their budget toward the pages you consider important.
Where should I place my sitemap?
The conventional location is <code>https://yourdomain.com/sitemap.xml</code>, but any path on the same host is acceptable as long as you reference it. Add a <code>Sitemap: https://yourdomain.com/sitemap.xml</code> line to your <code>robots.txt</code> so every compliant crawler finds it automatically. You can also submit the URL explicitly in Google Search Console and Bing Webmaster Tools for a faster first crawl.
Does priority affect my rankings?
No. The <code><priority></code> value is a within-site hint that helps a crawler order its work when it has limited time. It does not influence how your pages rank against other websites, because priority is not comparable across domains. Google has publicly stated that it mostly ignores the priority field today. Set realistic values (homepage at 1.0, key sections at 0.8, leaf pages at 0.5) but do not expect ranking impact.
What does changefreq actually mean?
The <code><changefreq></code> value is a hint, not a directive. It tells the crawler how often the content at that URL is expected to change, so the bot can schedule re-crawls appropriately. Valid values are <code>always</code>, <code>hourly</code>, <code>daily</code>, <code>weekly</code>, <code>monthly</code>, <code>yearly</code> and <code>never</code>. Setting <code>daily</code> on a page that changes yearly does not speed up re-crawl; modern engines rely primarily on <code><lastmod></code> and historical change rates instead.
How often should I update my sitemap?
Regenerate the sitemap whenever pages are added, removed, or substantively changed. For small static sites a weekly rebuild is usually enough; for active blogs or e-commerce catalogs, rebuild on every publish. Keep <code><lastmod></code> accurate — crawlers use it to decide what to refetch. Most CMSes (WordPress, Shopify, Webflow) and static-site generators (Astro, Next.js, Hugo) build sitemaps automatically on every deploy.
What is the 50,000 URL limit?
A single sitemap file can contain at most 50,000 <code><url></code> entries and must not exceed 50 MB uncompressed. If your site is larger, split the URLs across multiple sitemap files and expose them through a <code><sitemapindex></code>. The index itself can list up to 50,000 child sitemaps, giving a practical ceiling of 2.5 billion URLs. Compression with gzip is allowed and reduces bandwidth but the uncompressed size still counts toward the limit.
Should I include URLs that are blocked by robots.txt?
No. Listing a URL in your sitemap tells crawlers "I want this indexed," while a Disallow rule in robots.txt says "do not fetch this." The two signals conflict and Google flags the URL as a warning in Search Console. Either remove the entry from the sitemap or lift the Disallow rule. The same applies to URLs that respond with <code>noindex</code>, <code>canonical</code> pointing elsewhere, HTTP 4xx or HTTP 5xx — keep only clean, canonical, indexable URLs.
What is the difference between sitemap.xml and robots.txt?
Robots.txt is a crawl-control file that tells bots which paths they may or may not fetch. Sitemap.xml is a discovery file that tells bots which URLs exist and are worth visiting. They work together: robots.txt references the sitemap location, and the sitemap should only list URLs that robots.txt does not block. Robots.txt is about restriction, sitemap.xml is about invitation.
Does adding a sitemap guarantee my pages get indexed?
No. A sitemap is a discovery aid, not an indexing command. Google treats sitemap entries as hints about which URLs exist and how fresh they are, then still decides whether each URL is worth fetching and whether the content merits indexing. Thin or duplicate pages can sit in a sitemap for months unindexed. Submitting one removes the discovery bottleneck but does not override quality, canonical, or crawl-budget judgments.
More SEO & Web Tools
Google SERP Preview
Preview how your page appears in Google search results with character count indicators.
Open toolHeading Structure Analyzer
Extract and visualize H1-H6 heading hierarchy with SEO issue detection.
Open toolHreflang Tag Generator
Generate hreflang link tags for multilingual websites with x-default support.
Open toolKeyword Density Checker
Analyze word frequency with single words, bigrams and trigrams with density percentages.
Open toolMeta Tag Generator
Generate complete HTML meta tags including Open Graph and Twitter Card tags.
Open toolOpen Graph Preview
Preview how your page looks when shared on Facebook and LinkedIn.
Open tool