SEO TOOLS XML Sitemap Studio

XML Sitemap Generator

Sitemaps 0.9 Protocol
100% Client-Side. Private & Offline-Ready.
Total URLs: 0
Valid: 0 Valid
Est. Size: 0 KB
Autosaved
⚠️
Sitemap Protocol Limit Exceeded: Your list exceeds the standard 50,000 URLs / 50MB per sitemap limit.

Paste your URLs below, one per line. This is the most reliable input method with zero CORS restrictions.

📄
Drag & drop your .TXT or .CSV file here
Supports one URL per line (.txt) or table with columns: url, lastmod, changefreq, priority (.csv)
Browser CORS Limitation Notice (Client-Side Only)

Direct in-browser crawling relies on standard JavaScript fetch() requests and is subject to the browser's Same-Origin Policy. This mode only works if the target website explicitly enables cross-origin access (via Access-Control-Allow-Origin: *). Because most websites block cross-origin browser requests by default, fetch errors are expected for non-CORS websites. For complete reliability on any website, please use the Manual Entry or Bulk Import tabs.

Live Crawler Console: Idle
[Ready] Enter a CORS-permissive starting URL and click Start Crawl.

Upload or paste an existing sitemap.xml or sitemap_index.xml to load, modify, and re-export your URLs and metadata.

Bulk Set:
:: Status URL (loc) Lastmod Changefreq Priority Media Actions

          

Sitemap Protocol 0.9 & Browser Architecture Guide

Everything you need to know about XML sitemaps, protocol constraints, browser limitations, and search engine best practices.

1. Sitemap Protocol 0.9 Hard Limits & Specifications
  • Maximum 50,000 URLs per Sitemap: A single sitemap.xml file must contain no more than 50,000 <url> entries. If your site has more pages, you must split them into multiple sitemaps and reference them inside a sitemap_index.xml file.
  • Maximum 50MB Uncompressed File Size: Sitemaps cannot exceed 50 megabytes when uncompressed.
  • UTF-8 Character Encoding: All XML sitemaps must be encoded in UTF-8. Special XML characters (&, <, >, ", ') must be escaped as entities.
  • Canonical, Fully-Qualified Absolute URLs: All <loc> tags must include the protocol (e.g. https://) and full hostname. Relative URLs are invalid.
2. Why In-Browser Crawlers Face CORS Restrictions

Unlike backend crawlers (like Googlebot or desktop software), web applications running in a browser are bound by the Same-Origin Policy. When a web app attempts to fetch() a third-party webpage, the browser blocks the response unless the server explicitly responds with the HTTP header:

Access-Control-Allow-Origin: *

Because standard production websites do not serve HTML with permissive CORS headers, automated client-side crawling will fail with a network error. This is why our Manual Entry and Bulk CSV/TXT upload modes are the primary, 100% reliable workflow — all processing happens instantly in your browser with zero data leaving your computer.

3. How Google & Search Engines Use Sitemaps, Lastmod & Priority
  • <lastmod>: Google actively uses accurate <lastmod> dates to prioritize re-crawling updated pages. Ensure this date is only updated when meaningful content changes occur.
  • <priority> and <changefreq>: While part of the protocol, Googlebot generally disregards <priority> and <changefreq> in favor of its own machine learning crawl budget algorithms. However, other search engines (like Bing and Yandex) still utilize these hints.
  • Discovery via robots.txt: Adding Sitemap: https://yourdomain.com/sitemap.xml to your robots.txt allows any compliant search bot to automatically discover your sitemap index.
4. Google Image & Video Sitemap Extensions

Google supports extended XML schemas that associate media items with their parent page:

  • Image Sitemaps: Use <image:image> with <image:loc>, <image:title>, and <image:caption> to help Google Images discover images rendered via JavaScript or CDNs.
  • Video Sitemaps: Use <video:video> with required <video:thumbnail_loc>, <video:title>, <video:description>, and <video:content_loc> to enable rich video search snippets.
Copied to clipboard!