Sitemap generator. One route list, two formats.

Generate XML and Next.js app/sitemap.ts from your canonical routes. Validate a pasted sitemap and extract its URLs — free, no sign-up.

Loading the tool…

List and paste modes only. Generator: 1,000 routes. Validator: XML under 1 MB. No URL fetching, crawling or indexing guarantees.

How to use

  1. Enter a site origin and one route per line, up to 1,000 routes. Optionally supply a real last-modified date.
  2. Generate the sitemap and switch between sitemap.xml and app/sitemap.ts. Duplicate routes are removed; invalid lines are listed with reasons while valid routes are generated. Use Validate pasted sitemap for existing XML under 1 MB.
  3. Download the file, include only public indexable canonical pages, deploy it in your own project and submit its URL through your search-engine tools.

Reference documentation

Frequently asked questions

Is this free, and do I need an account?

It is free, no sign-up. Tool processing happens locally in your browser. Inputs and outputs are not uploaded to a processing API. Usage events contain only the tool name and action.

Can this crawl a sitemap from a URL?

No. This version generates from a route list or validates pasted XML only. It does not make server fetches, follow redirects or crawl a website.

What does the validator check?

XML well-formedness, the sitemap 0.9 namespace, urlset or sitemapindex entries, one absolute loc per entry, duplicates, URL length, dates, changefreq values and priority bounds. DOCTYPE and entity declarations are rejected. It does not fetch pages or confirm indexing.

What should I put in a sitemap?

Public canonical pages you want indexed. Exclude redirects, error pages, private dashboards and noindex URLs. Generating a file cannot determine which routes meet those criteria for your application.

Where does the Next.js file go?

Save the TypeScript output as app/sitemap.ts or src/app/sitemap.ts, matching your App Router structure. Next.js serves it as /sitemap.xml. Review your existing sitemap route before replacing it.

Does lastmod mean the time I generated the file?

No. Use the date of a significant content change. Leave it empty if you do not know. The generator intentionally does not use the current date as a substitute for a real update.

Related tools

All free tools

Read this page as Markdown