XML Sitemap Parser

Extract URLs and source metadata from a sitemap XML file. Review its entries and download CSV or a plain-text URL list.

An XML sitemap parser turns sitemap markup into a readable list of entries. Screpy extracts the listed URLs and their optional metadata from one XML document, then lets you download CSV or TXT. Use the list as an inventory for your next check; extraction alone does not tell you whether those pages work or appear in search results.

How to extract URLs from a sitemap

Choose the URL input when you have the exact address of a publicly accessible XML file. For example, https://example.com/sitemap.xml illustrates the address format; replace it with your own sitemap. A homepage address may return HTML instead. If you need to locate the file first, use Sitemap Checker.

Choose pasted XML when you already have the document's contents. Copy the raw XML, including its root element, rather than a browser's styled table or an HTML page linking to the sitemap. A local file can be opened in a text editor and copied into this input; there is no file-upload control.

Submit the source, then review the document type, entries and coverage notice before downloading. The parser reads this document only. If the result identifies entries as sitemaps, open one of those child file addresses and parse it separately to obtain page URLs.

A sitemap index returns sitemap URLs, not page URLs

The root element determines what a row represents. A urlset contains url entries for pages. A sitemapindex contains sitemap entries pointing to other sitemap files. Both use the namespace defined in the Sitemaps protocol.

This illustrative page sitemap produces one page entry:

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url>
    <loc>https://example.com/products/blue-mug/</loc>
    <lastmod>2026-09-01</lastmod>
  </url>
</urlset>

Now imagine an index listing products-sitemap.xml and blog-sitemap.xml. Parsing the index returns two sitemap rows, even if those files together contain thousands of page URLs. Two is the number of index entries, not a count of the website's pages.

Parse each child independently and keep its filename with the exported inventory. Screpy does not automatically expand an index into a combined page list. That distinction also matters when downloading TXT: an index export contains sitemap file addresses, which should not be mistaken for pages to audit.

What the extracted fields mean

The table reads the source's standard sitemap fields. Missing optional values remain empty in the export; the parser does not supply dates or calculate importance scores.

CSV column Meaning How to interpret it
kind page or sitemap Distinguishes page inventory from index entries.
loc Listed address A source value, not proof that the destination responds.
lastmod Declared modification date For an index, it refers to the sitemap file rather than a listed page.
changefreq Declared change frequency Copied when present, not measured by this tool.
priority Declared relative priority A source hint, not a search ranking or SEO score.
line Source line for the entry Helps locate the corresponding XML entry.

Google says it ignores changefreq and priority, and uses lastmod when the date consistently reflects a verifiable significant update. Extracting these values does not establish their accuracy. See Google's sitemap guidance.

Repeated addresses remain repeated rows. The duplicate count helps you notice repetition; exporting does not remove it. An unusual date or priority value should be checked with Sitemap Validator, because reading a field and validating it are separate tasks.

Convert sitemap XML to CSV or a URL list

Download CSV when you need the metadata beside each address. Import the file into a spreadsheet with the URL column treated as text, then use spreadsheet filters to group paths such as /products/ and /blog/. Those filters belong to your spreadsheet; the parser does not apply them for you.

Download TXT when the next tool needs one URL per line. This removes the surrounding XML and metadata columns. Check the entry type first so you pass page URLs, rather than child sitemap URLs, to a page-checking tool.

Keep an unchanged copy of the download before editing or deduplicating it. Record the sitemap address and extraction date alongside it. Both formats contain only retained rows, so a partial report also means a partial export.

Build an inventory for audits and migrations

For a migration, save the old site's relevant sitemap exports before changing URLs. Add your proposed destination beside each old address to create a mapping sheet. After the move, extract the corresponding new sitemaps and compare the two lists. A missing address is a difference to investigate, not automatic evidence of a broken page: the site may have intentionally removed it from the sitemap.

When combining child files, add a source-sitemap column yourself. Compare equivalent sections and confirm that each extraction finished completely. Otherwise, a capped export or an omitted child file can look like a content loss.

Use Bulk HTTP Status Checker to request page URLs in batches of up to 50 and investigate response codes or redirects. Sitemap membership alone cannot confirm indexing, discover every URL on a website, or prove that a page has no internal links. Those questions need separate evidence.

Why extraction fails or returns a partial list

If extraction fails, first confirm that the supplied address returns XML rather than a login page, an access challenge or a normal HTML page. For pasted input, check for missing closing tags and copy the complete document again. The supported root is urlset or sitemapindex, with the standard sitemap namespace. A plain-text URL list or an RSS feed is not this parser's XML sitemap input.

In XML, an ampersand inside a URL must be escaped: write ?color=blue&amp;size=m in loc. The extracted address contains the decoded &. Documents using a DOCTYPE declaration are not supported.

Pasted XML is limited to 256 KiB. Remote XML is limited to 50 MiB after decompression. The parser retains up to 5,000 entries; response-size limits can reduce the displayed list further. Check the coverage notice instead of assuming the last visible row is the end of the file. If reading stopped at a limit, the complete entry total may be unavailable.

The sitemap protocol permits up to 50,000 entries in a file, but that is not a promise that this extractor can return all of them. For large inventories, process smaller source sitemaps separately and keep track of every part. A partial extract should never be presented as a complete website inventory.

Frequently asked questions

Extract URLs and source metadata from a sitemap XML file. Review its entries and download CSV or a plain-text URL list.

Can this give me every URL on a website?

Only URLs contained in the document you supply are extracted, subject to coverage limits. Pages omitted from that file and pages inside unprocessed child sitemaps are not discovered.

Does the parser extract image URLs or hreflang alternates?

The export covers standard page or sitemap entries and their loc, lastmod, changefreq and priority fields. Image, video, news and hreflang extension data are not included as separate extracted entries.

Can I parse an XML sitemap saved on my computer?

Open the file in a text editor and paste its complete XML into the pasted-XML input, within the 256 KiB limit. There is no file upload. URL mode requires a publicly accessible document.

Does a successful extraction mean Google has indexed the pages?

No. It means the tool read supported entries from the supplied document. It does not request the listed pages or check Google’s index. Use Search Console data for indexing evidence.