Skip to the tool
URLExtractor

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.

Give us a sitemap address, or paste the XML, and the URL list appears here.

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:

xml
<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.

What each entry type means
TypeWhat it isShown by default
PageA `<loc>` inside `<url>` — an actual page on the siteYes
Child sitemap fileA `<loc>` inside `<sitemap>` — another XML fileOnly for an index
ImageAn `image:loc` inside `image:image`, belonging to a pageNo — opt in
VideoA `video:content_loc` or `video:player_loc`No — opt in
hreflang alternateAn `xhtml:link` pointing at a translation of the same pageNo — opt in

Three ways in

  1. 1

    Give us the address

    We fetch that one file and parse it. Gzipped sitemaps (.xml.gz) are expanded automatically.

  2. 2

    Upload or paste the XML

    Parsed entirely in your browser — including .gz, which is expanded locally. Nothing is uploaded.

  3. 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.

Duplicate URL RemoverCombined several sitemaps? Strip the repeats.

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

Guides for this tool

Share this pageWhatsAppXLinkedInFacebook