sitemap.xml Generator — Free Online Tool

Generate XML sitemaps for search engines. Add URLs, priority and lastmod dates, validate the structure, and download sitemap.xml instantly.

Use this free online sitemap.xml Generator directly in your browser. No signup required, no data leaves your device. Part of Utilier — a collection of 133+ developer utilities.

What is XML Sitemap Generator?

An XML sitemap is a file that lists all important pages on a website to help search engines (Google, Bing, Yandex) discover and crawl them efficiently. This tool generates a sitemap.xml file from a list of URLs with optional priority values, lastmod (last modified) dates, and changefreq hints. The output follows the sitemap.org protocol and can be submitted to Google Search Console, Bing Webmaster Tools, or hosted at yourdomain.com/sitemap.xml.

  • URL list input: Paste or type a list of URLs (one per line) to include in the sitemap. Supports up to 50,000 URLs per sitemap file (protocol limit).
  • Priority values: Assign priority (0.0 to 1.0) to each URL indicating its importance relative to other pages on your site. Default is 0.5. Homepage often gets 1.0.
  • Last modified dates: Add <lastmod> dates (YYYY-MM-DD or ISO 8601 format) to tell search engines when each page was last updated. Helps with crawl efficiency.
  • Change frequency: Optional <changefreq> hint (always, hourly, daily, weekly, monthly, yearly, never) suggesting how often the page changes. Search engines may ignore this.
  • Validation: Validates URLs, checks XML syntax, and ensures compliance with sitemap.org schema before download.

Why use sitemap.xml generator?

Search engines can discover pages by crawling links, but an XML sitemap ensures important pages are found, especially for large sites, new sites, or sites with poor internal linking.

  • Ensure new pages are indexed: If you publish a new page but it is not linked from existing pages, search engines may take weeks to discover it. A sitemap lists the URL explicitly, speeding up discovery.
  • Large sites (1000+ pages): For sites with thousands of pages, crawlers may miss deep pages. A sitemap guarantees every important page is listed and discoverable.
  • JavaScript-rendered sites (SPAs): Single-page apps (React, Vue, Angular) often lack server-rendered HTML. Search engine crawlers may struggle to discover client-rendered routes. A sitemap lists all routes explicitly.
  • Control crawl priority: The <priority> attribute suggests which pages are most important (1.0 = highest). Search engines use this as a hint when allocating crawl budget.
  • Signal content freshness: The <lastmod> date tells search engines when a page was updated. If lastmod is recent, crawlers may prioritize re-crawling that page.
  • Required for some CMS and hosting platforms: Some platforms (WordPress, Shopify, Wix) auto-generate sitemaps, but if you have a custom site or static generator, you must create one manually.

When to use sitemap.xml generator

Use when setting up a new website or optimizing an existing site for search engines.

  • Launching a new website to ensure all pages are indexed quickly by Google and Bing.
  • Large sites (e-commerce, blogs, documentation) with hundreds or thousands of pages.
  • Single-page apps (SPAs) or JavaScript-heavy sites where crawlers need explicit URL lists.
  • Sites with poor internal linking where some pages are hard to discover by crawling alone.
  • After publishing many new pages (blog posts, product listings) to notify search engines.
  • When you want to control crawl priority or provide last-modified dates for better crawl efficiency.
  • Submitting a sitemap to Google Search Console or Bing Webmaster Tools for indexing verification.

How to use sitemap.xml generator

Enter URLs, set optional metadata, and download the sitemap.xml file.

  1. Enter URLs: Paste a list of URLs (one per line) into the input box. Example: https://example.com/page1, https://example.com/page2. URLs must be absolute (include https://).
  2. Set priority (optional): For each URL, assign a priority between 0.0 (lowest) and 1.0 (highest). Default is 0.5. Homepage often gets 1.0, less important pages get 0.3-0.4.
  3. Add lastmod dates (optional): Provide the last modified date for each URL in YYYY-MM-DD format (e.g., 2024-08-15). Tells search engines when the page was last updated.
  4. Set changefreq (optional): Choose how often the page changes: always, hourly, daily, weekly, monthly, yearly, never. This is a hint; search engines may ignore it.
  5. Generate sitemap: Click 'Generate Sitemap'. The tool validates URLs, checks for duplicates, and creates an XML file following the sitemap.org schema.
  6. Download sitemap.xml: Download the generated sitemap.xml file. Upload it to the root of your website (https://yourdomain.com/sitemap.xml) and submit the URL to Google Search Console and Bing Webmaster Tools.

Key features

  • 50,000 URL support: Supports up to 50,000 URLs per sitemap file (protocol maximum). For larger sites, split into multiple sitemaps and use a sitemap index.
  • Priority and lastmod metadata: Add <priority> (0.0-1.0) and <lastmod> dates to signal page importance and freshness to search engines.
  • Changefreq hints: Optional <changefreq> attribute (always, hourly, daily, weekly, monthly, yearly, never) suggests update frequency.
  • XML validation: Validates URLs, checks for duplicates, and ensures XML syntax compliance with sitemap.org schema before download.
  • Bulk URL input: Paste hundreds or thousands of URLs at once. The tool parses and formats them automatically.
  • Search Console ready: Generated sitemaps are ready to submit to Google Search Console, Bing Webmaster Tools, or Yandex Webmaster.
  • Instant download: Download the sitemap.xml file instantly. No account, no upload, 100% client-side generation.

Common use cases

  • New website launch: Generate a sitemap for a new site and submit it to Google Search Console to speed up indexing of all pages.
  • E-commerce product listings: List all product URLs with priority based on inventory or popularity. Update lastmod when products change.
  • Blog with many posts: Include all blog post URLs with lastmod dates. Set higher priority for cornerstone content, lower for old posts.
  • SPA (React, Vue, Angular): List all client-side routes explicitly since crawlers cannot discover them by following server-rendered links.
  • Documentation sites: Include all docs pages with changefreq='weekly' or 'monthly' to signal update patterns.
  • Sitemap after content migration: Generate a new sitemap after migrating content to a new domain or restructuring URLs to ensure search engines re-crawl everything.

Examples

Sitemaps generated for different site types.

Basic sitemap (homepage + pages)

https://example.com/, https://example.com/about, https://example.com/contact
<?xml version='1.0' encoding='UTF-8'?><urlset xmlns='http://www.sitemaps.org/schemas/sitemap/0.9'><url><loc>https://example.com/</loc></url><url><loc>https://example.com/about</loc></url><url><loc>https://example.com/contact</loc></url></urlset>

Minimal sitemap with just <loc> tags. No priority or lastmod. Good for small sites.

Sitemap with priority values

https://example.com/ (priority: 1.0), https://example.com/products (priority: 0.8), https://example.com/old-post (priority: 0.3)
<url><loc>https://example.com/</loc><priority>1.0</priority></url><url><loc>https://example.com/products</loc><priority>0.8</priority></url><url><loc>https://example.com/old-post</loc><priority>0.3</priority></url>

Homepage gets highest priority (1.0), product pages 0.8, old blog posts 0.3. Search engines use this as a crawl hint.

Sitemap with lastmod dates

https://example.com/blog/post1 (lastmod: 2024-08-10), https://example.com/blog/post2 (lastmod: 2024-08-15)
<url><loc>https://example.com/blog/post1</loc><lastmod>2024-08-10</lastmod></url><url><loc>https://example.com/blog/post2</loc><lastmod>2024-08-15</lastmod></url>

lastmod tells search engines when the page was last updated. Recent dates may trigger re-crawling.

Sitemap with changefreq

https://example.com/blog (changefreq: weekly), https://example.com/terms (changefreq: yearly)
<url><loc>https://example.com/blog</loc><changefreq>weekly</changefreq></url><url><loc>https://example.com/terms</loc><changefreq>yearly</changefreq></url>

Blog updates weekly, terms of service updates yearly. Search engines may adjust crawl frequency based on this hint.

Large site (1000+ URLs)

1500 product URLs from an e-commerce site
(Generated: 1500 <url> entries. File size: 150 KB. Under 50K URL and 50MB limits.)

For sites with 1500+ URLs, consider splitting into category-based sitemaps (sitemap_products.xml, sitemap_blog.xml) and using a sitemap index.

Technical reference

The sitemap.xml format and protocol limits:

Protocol
sitemap.org XML schema. Supported by Google, Bing, Yahoo, Yandex, and all major search engines
Max URLs per sitemap
50,000 URLs. For larger sites, split into multiple sitemaps and use a sitemap index file
Max file size
50 MB (uncompressed). If larger, split into multiple files. Compression (gzip) is supported
URL format
Must be absolute URLs with protocol (https://example.com/page). Relative URLs (/page) are not allowed
<loc> (required)
The page URL. Example: <loc>https://example.com/page</loc>
<lastmod> (optional)
Last modified date in W3C Datetime format (YYYY-MM-DD or ISO 8601). Example: <lastmod>2024-08-15</lastmod>
<priority> (optional)
0.0 to 1.0. Default is 0.5. 1.0 = highest priority. This is a hint; search engines may ignore it
<changefreq> (optional)
always, hourly, daily, weekly, monthly, yearly, never. Suggests how often the page changes. Search engines may ignore this
Submission
Upload to https://yourdomain.com/sitemap.xml and submit to Google Search Console, Bing Webmaster Tools
Comparison to robots.txt
robots.txt controls what crawlers can access. sitemap.xml suggests what to crawl. Both are complementary, not alternatives

Common mistakes to avoid

Exceeding the 50,000 URL limit in a single sitemap file

Why it happens: The sitemap.org protocol limits each sitemap.xml file to 50,000 URLs and 50MB uncompressed size. If you exceed this limit, search engines may refuse to parse the file or only index the first 50,000 URLs, leaving the rest undiscovered. Large e-commerce sites (100,000+ products) often hit this limit.

How to avoid it: Split the sitemap into multiple files: sitemap_1.xml (first 50K URLs), sitemap_2.xml (next 50K), etc. Create a sitemap index file (sitemap_index.xml) that lists all individual sitemaps: <sitemap><loc>https://example.com/sitemap_1.xml</loc></sitemap>. Submit the index file to Google Search Console.

Using relative URLs (/page) instead of absolute URLs (https://example.com/page)

Why it happens: The sitemap.org protocol requires absolute URLs with the protocol (https:// or http://). Relative URLs like /about or ../contact are invalid and will be rejected by search engines. Google Search Console shows an error: 'Invalid URL format' if you submit a sitemap with relative URLs.

How to avoid it: Always use full absolute URLs: https://example.com/about, not /about. If you are generating sitemaps programmatically, prepend the domain and protocol to all paths. For multi-domain sites, each sitemap must contain URLs from only one domain (no mixing example.com and sub.example.com).

Including URLs with trailing slashes inconsistently (https://example.com/page vs /page/)

Why it happens: Search engines treat https://example.com/page and https://example.com/page/ as two different URLs. If your site uses /page/ (with trailing slash) but the sitemap lists /page (without), search engines may crawl both versions, split ranking signals, and report duplicate content. This wastes crawl budget and dilutes SEO.

How to avoid it: Be consistent. If your site uses trailing slashes, include them in the sitemap. If not, omit them. Check your canonical URLs (inspect live pages) and match the sitemap format exactly. For CMS sites, configure the CMS to enforce trailing slashes or remove them sitewide.

Setting priority='1.0' on every URL, making the priority attribute useless

Why it happens: The <priority> attribute is relative — it tells search engines which pages on your site are more important than others. If every page has priority='1.0', the attribute conveys no information, and search engines ignore it. Priority is not a ranking factor; it is a crawl budget hint. Setting everything to 1.0 defeats the purpose.

How to avoid it: Use priority strategically. Homepage and key landing pages: 1.0. Important category pages: 0.8. Blog posts and product pages: 0.5-0.7. Old or less important pages: 0.3-0.4. This helps search engines prioritize crawl resources. Do not overthink it — priority is a minor signal.

Not updating the sitemap after adding or removing pages

Why it happens: If you add new pages but do not update the sitemap, search engines may take weeks to discover them by crawling links. If you remove pages but leave them in the sitemap, search engines waste crawl budget on 404 errors. An outdated sitemap misleads crawlers and slows down indexing.

How to avoid it: Regenerate the sitemap whenever you add, remove, or significantly update pages. For dynamic sites (blogs, e-commerce), automate sitemap generation (WordPress plugins, Next.js sitemap libraries, CMS integrations). Submit the updated sitemap to Google Search Console to notify Google of changes.

Frequently asked questions

Do I need a sitemap if my site is small (under 100 pages)?

Not strictly required, but recommended. Search engines can discover pages by crawling links, but a sitemap ensures every page is found, even if internal linking is weak. For small sites, creating a sitemap takes minutes and removes any indexing uncertainty. Submit it to Google Search Console for peace of mind.

How often should I update my sitemap?

Update the sitemap whenever you add, remove, or significantly update pages. For blogs or e-commerce sites with frequent updates, automate sitemap generation (WordPress plugins, Next.js sitemap libraries). After updating, ping Google Search Console or wait for the next scheduled crawl (Google recrawls sitemaps every few days).

What is the difference between a sitemap and robots.txt?

robots.txt tells search engines which pages NOT to crawl (Disallow: /admin/). A sitemap tells search engines which pages TO crawl. They are complementary: use robots.txt to block unwanted pages (login, admin) and a sitemap to ensure important pages are indexed. Both should be at the root: example.com/robots.txt and example.com/sitemap.xml.

Can I have multiple sitemaps for one website?

Yes. Split sitemaps by content type (products, blog posts, pages) or language/region. Create a sitemap index file (sitemap_index.xml) that lists all sitemaps: <sitemap><loc>https://example.com/sitemap_products.xml</loc></sitemap>. Submit the index to Google Search Console. This is required for sites exceeding 50,000 URLs.

Does Google guarantee to index all URLs in my sitemap?

No. A sitemap is a suggestion, not a guarantee. Google crawls URLs in the sitemap but may choose not to index them if they are low-quality, duplicates, or violate guidelines. Check Google Search Console → Coverage report to see which URLs were discovered via the sitemap and which were indexed or excluded.

Should I include images or videos in the sitemap?

Yes, if you want them indexed. Use <image:image> tags within <url> entries to list images, or create a separate video sitemap with <video:video> tags. Image and video sitemaps help Google discover media files, especially if they are loaded via JavaScript or not linked directly. See Google's image sitemap and video sitemap docs for schema details.

Where do I upload the sitemap.xml file?

Upload it to the root of your website: https://yourdomain.com/sitemap.xml. Most hosting platforms (Netlify, Vercel, cPanel) allow you to place files in the public/ or root directory. After uploading, submit the URL to Google Search Console (Sitemaps section) and Bing Webmaster Tools. Verify it is accessible by visiting the URL in a browser.

References

Privacy and availability

  • Runs entirely in your browser — zero server processing
  • No signup or account required
  • Works offline once loaded
  • Fast, lightweight, no external dependencies
  • Available as a browser extension for Chrome and Firefox