URL Extractor from Sitemap
Turn an XML sitemap into a list you can actually use. Paste it, upload it, or give us the address — page URLs come out separated from child sitemap files, with lastmod kept when the file provides it.
- You provide
- A public sitemap address, an uploaded .xml or .xml.gz file, or pasted XML.
- You receive
- Page URLs separated from child sitemap files, with lastmod when the file provides it, ready to copy or export.
- Use it when
- Use it before a migration, for a content inventory, or whenever you need a URL list as a spreadsheet.
“Read this sitemap” fetches one file. “Follow child sitemaps” walks an index in short steps and can be paused and resumed. “Find the sitemap” checks robots.txt and a few conventional paths, and tells you exactly what it looked at.
Uploaded and pasted XML is parsed in this browser tab. Fetching a sitemap address, or following the child files inside an index, is a separate server request you start yourself.
A sitemap is a list of addresses a site chose to publish. It is not proof that every page exists, is reachable, or is indexed.
What this tool cannot do
- A sitemap is a list a site chose to publish. It is not proof that every address exists, is reachable, or is indexed — and a site can leave pages out of it.
- Documents that declare a DOCTYPE are refused. Entity definitions in XML are a well-known way to read local files or expand into an enormous document, so we do not process them at all.
- Compressed files are accepted up to 25 MB, expanding to at most 100 MB.
- Following an index is capped at 200 child files and depth 4. Cycles are detected and a child that fails does not discard the URLs already read.
- Single files are read up to 60,000 entries; beyond that, truncation is reported.
A sitemap is not one kind of thing
Two different files both end in sitemap.xml:
- A urlset lists pages. Each
<url>has a<loc>, and optionally<lastmod>,<changefreq>and<priority>. - A sitemap index lists other sitemap files. Each
<sitemap>has a<loc>too — but that address is another XML file, not a page.
Treating those the same way is the single most common mistake in sitemap tools, and it produces a "URL list" full of .xml addresses. This tool labels every entry by what it is, tells you which kind of file you gave it, and lets you choose what appears in the table.
Namespaces, and the second common mistake
A sitemap can carry entries from other namespaces alongside its page URLs:
<url>
<loc>https://example.com/guides/extract-links/</loc>
<image:image>
<image:loc>https://cdn.example.com/cover.png</image:loc>
</image:image>
</url>There are two loc elements there and they mean completely different things. Most XML helpers "simplify" this by stripping namespace prefixes, which merges the image into the page list. We keep the prefixes and walk the tree explicitly, so image entries, video entries and hreflang alternates each get their own labelled category — and page URLs stay clean.
| Type | What it is | Shown by default |
|---|---|---|
| Page | A `<loc>` inside `<url>` — an actual page on the site | Yes |
| Child sitemap file | A `<loc>` inside `<sitemap>` — another XML file | Only for an index |
| Image | An `image:loc` inside `image:image`, belonging to a page | No — opt in |
| Video | A `video:content_loc` or `video:player_loc` | No — opt in |
| hreflang alternate | An `xhtml:link` pointing at a translation of the same page | No — opt in |
Three ways in
- 1
Give us the address
We fetch that one file and parse it. Gzipped sitemaps (
.xml.gz) are expanded automatically. - 2
Upload or paste the XML
Parsed entirely in your browser — including
.gz, which is expanded locally. Nothing is uploaded. - 3
Let us look for it
"Find the sitemap" reads the domain’s robots.txt for a
Sitemap:line and tries a short list of conventional paths. It tells you every address it checked, so you know what a null result actually means.
Frequently asked questions
Does a sitemap contain every page on a site?
Not necessarily. A sitemap is a list the site publishes to help search engines; it can omit pages, include pages that no longer work, and go out of date. It is a very good starting point and it is not an audit.
Why are the child files listed separately from the pages?
Because a sitemap index contains no pages of its own — only pointers to other files. Mixing them would give you a list of .xml addresses labelled as pages. Use “Follow child sitemaps” to read the pages inside them.
Why do some rows have no lastmod?
Because that entry in the file does not have one. `<lastmod>` is optional, and we show it only where it is genuinely present rather than substituting today’s date.
What happens if one child sitemap is broken?
It is reported as an error against that specific file, and every URL already read from the other files is kept. One bad file does not discard the rest of the run.
Can I get this as an Excel file?
The CSV export opens directly in Excel and is prepared for it. We do not generate .xlsx files, and we would rather say so than label a CSV as something it is not.
Related tools
- You provide:
- A public page address. Choose single page, or a bounded same-site crawl.
- You receive:
- Source page, destination, anchor text, internal/external label, and any rel="nofollow", ugc or sponsored values.
- Use it when:
- Use it to audit the links on a page, or to collect the linked URLs across a small, defined part of a site.
- You provide:
- A list of URLs, one per line.
- You receive:
- The de-duplicated list, plus a preview of exactly which entries were removed and which entry they matched.
- Use it when:
- Use it after combining exports from several sources, or before importing a list somewhere that rejects duplicates.
- You provide:
- A list of URLs, or mixed text containing them.
- You receive:
- The hostname, or the registrable root domain, for each entry — with counts and an option to keep only unique values.
- Use it when:
- Use it to see which sites a link list actually points at, or to group thousands of URLs by domain.
- You provide:
- A list of URLs, one per line.
- You receive:
- The cleaned list, with a before/after view of every address that changed.
- Use it when:
- Use it before sharing links, publishing a reference list, or importing URLs that would otherwise carry campaign parameters.
Guides for this tool
- How to Extract Links from a Website or a Single PageWhen to fetch one page, when to crawl, how to set a scope that finishes, and what a crawler structurally cannot find — including the pages it will always miss.
- How to Extract URLs from a Sitemap and Export ThemPaste, upload or fetch an XML sitemap and turn it into a URL list you can open in Excel — keeping page URLs separate from child sitemap files, and knowing when the list is incomplete.