A sitemap URL extractor for audits, migrations and reports
This sitemap URL extractor reads a sitemap — or a whole sitemap index — and lists every page address it contains, with its lastmod date and any image URLs. Filter the list by text, regular expression or date range, remove duplicates, see how the URLs split across folders, and export exactly what you need as TXT, CSV or JSON.
SEO audits, site migrations, redirect maps and content inventories all start with “give me every URL on the site”. A sitemap is the quickest honest answer, because it lists what the site itself asks search engines to index. Enter the sitemap’s address and it is fetched for you, gzipped files included; for a sitemap index, child sitemaps are followed up to the limit you choose. You can also paste a sitemap or upload several files at once — they are read in your browser.
How to extract URLs from a sitemap
- Enter the address under Sitemap URL — try
/sitemap.xml,/sitemap_index.xmlor theSitemap:line in robots.txt — or switch to Paste or Upload. - Keep Follow child sitemaps of an index ticked and choose how many to read: 3, 10, 25 or 50.
- Press Extract URLs. If an index lists more children than the limit, press Read the next to continue.
- Narrow the list with URL contains, URL does not contain, the lastmod dates, Only URLs with images or regular expressions.
- Switch to By folder to see which sections hold the most pages; Show URLs jumps to one folder.
- Copy the URLs, or download TXT, CSV, JSON or the image URLs — exports contain exactly the filtered list.
Sitemap URL Extractor features
Sitemap indexes followed
Child sitemaps are fetched one after another with a short pause, repeated entries are skipped, and nested indexes are followed too, within your limit.
Every format sitemaps come in
XML sitemaps, sitemap indexes, .xml.gz files, plain-text sitemaps and RSS or Atom feeds. A file that isn’t well-formed XML is still read leniently, with a warning.
lastmod and images kept
Each URL keeps its lastmod date and the image:loc addresses from the image extension, so you can filter recent pages or export every image URL.
Filters that match how people work
Plain “contains” text, case-insensitive regular expressions, an inclusive lastmod date range and an images-only switch, applied as you type.
Folder breakdown
URLs grouped by their first one, two or three path segments, with counts, share and the newest lastmod in each section.
Clean exports
TXT with one URL per line, CSV with url, lastmod, image_count, image_urls and sitemap columns, and JSON for scripts.
Worked example: recent blog posts only
The built-in example sitemap has 14 entries, but the rye bread post is listed twice, so Remove duplicates leaves 13 URLs. Type /blog/ into URL contains and five remain: the blog home, three posts and a tag page. Add /tag/ to URL does not contain to drop the tag archive, then set lastmod from to 1 August 2026: the oven-temperatures post, last changed on 27 May, disappears and three URLs are left.
Clear the filters and switch to By folder: /blog/ has 5 URLs, /shop/ 4 and /help/ 2, plus the home page and /about/. Tick Only URLs with images and two pages remain; Image URLs downloads their three pictures.
Which export to choose
| Format | Contains | Good for |
|---|---|---|
| TXT | One URL per line | Crawlers, redirect maps, the HTTP Status Checker, comparing two lists |
| CSV | url, lastmod, image_count, image_urls, sitemap | Audits and content inventories in Excel or Google Sheets |
| JSON | An array of {url, lastmod, images, sitemap} | Scripts and data pipelines |
| Image URLs | Every image:loc, once | Image audits, alt-text reviews, CDN moves |
Good to know
- A sitemap shows what a site asks to have indexed, not every page that exists — compare it with a crawl to find orphan pages or forgotten sections.
- Regular expressions use JavaScript syntax and ignore case; escape a dot (
\.) when you mean a literal dot. - URLs without a lastmod are hidden while a date filter is set; the count line says how many.
- Relative
<loc>values are skipped and counted, because sitemaps must use absolute URLs — check the file with the XML Sitemap Validator. - To compare two exports, paste them into the Diff Checker.
Sitemap URL Extractor FAQ
How do I extract all URLs from a sitemap?
Enter the sitemap address in this sitemap URL extractor and press Extract URLs. Every <loc> is listed with its lastmod date and image links; press TXT, CSV or JSON to download the list.
How do I get the URLs from a sitemap index?
Enter the index address and keep “Follow child sitemaps of an index” ticked. The child sitemaps are read in order up to the limit you pick; if there are more, “Read the next” continues where it stopped.
Can I open the list in Excel?
Yes. Download the CSV — it is UTF-8 with a byte-order mark, so Excel shows accented and non-Latin characters correctly — or copy the URLs and paste them into a column.
Does it work with .xml.gz sitemaps?
Yes. Gzipped sitemaps are unpacked by the fetcher when you enter an address, and in your browser when you upload a .gz file.
Why are some URLs missing?
Check the filters and the count line first. Otherwise the index may list more child sitemaps than the limit (press “Read the next”), a child may have failed to load (see “Sitemaps read”), or the URL was relative and skipped.
Is there a limit on the number of URLs?
No fixed one. A single sitemap may hold 50,000 URLs and an index can list thousands of sitemaps. The table shows 500 rows at a time, but copying and exports include every filtered URL.