Free Sitemap URL Extractor: Extract URLs From Sitemap Files
Pull every page URL out of an XML sitemap, sitemap index or .xml.gz file, then filter it and export it to CSV or TXT. Free, no sign-up.
Pasted text and files stay in your browser. Sitemap URLs you enter are fetched through our server and not stored.
0 child sitemaps found
0 URLs shown 0 extracted 0 duplicates removed 0 sitemaps read 0 with lastmod
URL counts per sitemap and per path
| Sitemap | URLs |
|---|
| Path | URLs |
|---|
How to Extract URLs From a Sitemap
Load the sitemap
Enter the sitemap’s address and press Fetch, paste the XML into the box, or drop one or more .xml, .xml.gz or .txt files onto the drop area. A bare domain works too: the tool checks robots.txt and the usual sitemap addresses for you.
Follow the sitemap index
If the file is a sitemap index, the tool lists every child sitemap it points to. Press “Fetch all child sitemaps” to read up to 50 of them in one go, or drop the child files you saved yourself.
Filter the list
Type a path such as /blog/ to keep matching URLs, or a regular expression between slashes such as /\/(products|collections)\//. Add an exclude pattern or a lastmod date range, and keep “Remove duplicates” ticked.
Check the counts
The summary shows how many URLs each sitemap holds and how they split across top-level paths, so you can see at a glance which sections of the site are listed.
Export or open
Copy the URLs, download them as TXT, CSV or a bookmarks.html file, or open them in batches of 5, 10 or 20 tabs to review the pages one by one.
How the Sitemap URL Extractor Works
The tool reads the sitemap the same way a search engine does: it looks for the root element, then walks every entry inside it. Pasted text and dropped files are processed entirely in your browser. Compressed .xml.gz files are unpacked with the browser’s built-in DecompressionStream, so nothing is uploaded to do that either.
When you enter a sitemap URL, your browser can’t download it directly, because most sites don’t allow other websites to read their files (a browser rule called CORS). So that one request goes through our own server, which fetches the file and passes the text straight back. We don’t store the sitemap, the URL you entered or the results. If you’d rather nothing touched a server at all, open the sitemap in a new tab, save it with Ctrl+S or Cmd+S and drop the file here.
Well-formed XML is parsed with the browser’s own XML parser, matching elements by their local name so that prefixed tags such as sm:loc work as well as plain loc. If the XML is broken, which happens with truncated downloads and hand-edited files, a lenient reader takes over, recovers every URL it can and tells you what was wrong. Files of 50MB and 50,000 URLs are processed in chunks so the page stays responsive.
| Input | What the tool reads |
|---|---|
| <urlset> sitemap | loc, lastmod, changefreq, priority, image:image locations, xhtml:link hreflang alternates, news:news title and date |
| <sitemapindex> | Every child sitemap loc and lastmod, with an option to fetch the children |
| .xml.gz file | Decompressed in the browser, then read as above |
| Text sitemap | One absolute URL per line; blank lines and # comments are skipped |
| robots.txt | Every Sitemap: line, listed as sitemaps to fetch |
| RSS 2.0 or Atom feed | Each item or entry link, with pubDate or updated as the date |
What Is an XML Sitemap?
An XML sitemap is a file that lists the pages of a website a search engine should know about. The format is defined by the Sitemaps protocol at sitemaps.org, which Google, Bing and other search engines support. It doesn’t decide whether a page ranks or even gets indexed. It’s a hint about which URLs exist and when they last changed.
Every sitemap has a <urlset> root. Inside it, each page gets a <url> entry with one required child, <loc>, holding the full address including https://. The protocol limits a loc to 2,048 characters and requires special characters such as & to be escaped as &. Three optional children add detail: <lastmod>, <changefreq> and <priority>.
Extensions add more. Image sitemaps nest image:image entries inside a URL. International sites list language versions with xhtml:link rel="alternate" hreflang elements. News sitemaps add a news:news block with the publication name, date and headline. This tool reads all three, although only the page URLs go into the exported list.
| Tag | Required? | Format and rules |
|---|---|---|
| <loc> | Yes | Absolute URL starting with the protocol, under 2,048 characters, entity-escaped |
| <lastmod> | No | W3C Datetime, e.g. 2026-09-24 or 2026-09-24T10:30:00+00:00 |
| <changefreq> | No | always, hourly, daily, weekly, monthly, yearly or never. Google ignores it |
| <priority> | No | 0.0 to 1.0, default 0.5, relative to other pages on the same site. Google ignores it |
| File limits | Rule | 50,000 URLs and 50MB uncompressed per sitemap; gzip allowed; UTF-8 encoding |
A sitemap can only list URLs at or below its own folder. A file at example.com/catalog/sitemap.xml may list example.com/catalog/ pages but not example.com/about/. That’s why most sitemaps live at the site root.
Where Do I Find a Website’s Sitemap?
Start with the root: most sites answer at /sitemap.xml. If that returns a 404, open /robots.txt. The Sitemaps protocol lets a site declare its sitemaps there with a line such as “Sitemap: https://example.com/sitemap_index.xml”, and a site can list several. The tool does both checks when you enter a bare domain.
Content management systems each have a default. The table below lists the ones we checked against each platform’s own documentation. Plugins and apps can change these addresses, so treat robots.txt as the final word.
| Platform | Default sitemap address | Notes |
|---|---|---|
| WordPress 5.5 and later (core) | /wp-sitemap.xml | An index of sitemaps for posts, pages, taxonomies and authors; up to 2,000 URLs per sitemap by default |
| WordPress with Yoast SEO | /sitemap_index.xml | /sitemap.xml redirects to it; replaces the core sitemap |
| Shopify | /sitemap.xml | An index linking separate sitemaps for products, collections, blogs and pages; other languages are added automatically |
| Wix | /sitemap.xml | A sitemap index, updated automatically when you edit the site |
| Squarespace | /sitemap.xml | Generated automatically; not available on trial sites, and hidden or password-protected pages are left out |
| Anything else | /robots.txt | Look for Sitemap: lines, or check the Sitemaps report in Google Search Console if you own the site |
How Do Sitemap Index Files Work?
A sitemap index is a sitemap of sitemaps. Its root is <sitemapindex>, and each <sitemap> child holds the loc of one sitemap file plus an optional lastmod. Large sites need one because of the 50,000-URL and 50MB limit per file, and many CMSs use one anyway to split posts, pages and products into separate files.
Google’s documentation allows up to 50,000 loc entries in one index file and up to 500 index files per site in Search Console. The sitemaps an index lists must be on the same site and in the same directory as the index, or lower.
When you paste or fetch an index, the tool shows the child sitemaps instead of pretending the index has no URLs. In URL mode, “Fetch all child sitemaps” reads up to 50 of them, three at a time, and merges the results. Each URL keeps a source column naming the sitemap it came from, so after the merge you can still see that /products/red-shoe came from sitemap_products_1.xml.
Can You Trust the Lastmod Date?
Sometimes. Google says it uses lastmod when the value is consistently and verifiably accurate, and that it ignores changefreq and priority completely. A “significant” change means the main content, structured data or links changed. Updating a copyright year in the footer doesn’t count.
In practice, many sitemaps set every lastmod to the moment the file was generated, or to the date a plugin was last updated. When you filter by date, watch for this pattern: if a date range from yesterday to today keeps almost every URL, the dates are generation times, not edit times. Filtering then tells you nothing about which pages changed.
When lastmod is honest, it’s one of the most useful fields in the file. Filter to the last 30 days to see what a competitor published or updated this month, or to the last week to check that your own edits reached the sitemap. URLs with no lastmod are dropped from a date filter unless you tick “Keep URLs without lastmod”.
Sitemap URL Extractor Use Cases for SEO Audits
The sitemap is the list of pages a site says matter. Comparing that claim with reality is the start of most technical SEO audits. These are the jobs people use a sitemap URL extractor for most often.
- Compare the sitemap with a crawl. Export to TXT, crawl the list, and look for URLs that redirect, return 404 or carry a noindex tag. Google recommends listing only the canonical URLs you want in search results.
- Find orphan pages. URLs that are in the sitemap but not reachable through internal links show up when you compare this list with a crawl of the site’s links.
- Check a migration. Extract the old sitemap before launch, then run every old URL through a redirect checker afterwards to confirm each one lands on the right new page.
- Spot mistakes in the file. Filter for http://, for staging hostnames, for ?utm= parameters or for /page/2/ archives. None of these usually belong in a sitemap.
- Size up a site. When you extract URLs from sitemap files, the per-path counts show how a site is split, for example 4,812 URLs under /products/, 311 under /blog/ and 40 under /pages/, before you plan a content audit.
- Audit hreflang. The CSV notes nothing about alternates, but the tool reads them, so you can see which pages list language versions in the result details.
- Review pages by hand. Open the filtered list 10 or 20 tabs at a time to check titles, layouts or broken images across a section.
How to Convert a Sitemap to CSV
Load the sitemap, apply any filters, then press “Download CSV”. The file has one row per URL and five columns: loc, lastmod, changefreq, priority and source. Empty fields stay empty rather than being filled with defaults, so you can tell a missing priority from a stated 0.5.
The CSV is UTF-8 with a header row and standard quoting, so it opens directly in Excel, Google Sheets, Numbers or LibreOffice. A value that starts with =, +, - or @ is prefixed with an apostrophe so a spreadsheet can’t run it as a formula. Sort by lastmod to find stale pages, or use a pivot table on the source column to count URLs per child sitemap.
If you only need the addresses, TXT is lighter: one URL per line, ready for a crawler’s list mode, a redirect checker or our bulk URL opener. The bookmarks.html export imports into any browser as a folder of bookmarks, grouped by source sitemap.
Other Ways to Extract URLs From a Sitemap
There’s no single best method. It depends on how often you do it and whether you need the result inside another tool.
| Method | How | Verdict |
|---|---|---|
| This page | Paste, drop or fetch; filter; export TXT, CSV or bookmarks | Fastest for one-off jobs; no install; follows indexes and .gz files |
| Screaming Frog SEO Spider | List mode, then Upload > Download XML Sitemap | Best when you also want to crawl each URL; free version limited to 500 URLs |
| Python | requests plus xml.etree, or the advertools sitemap_to_df function | Best for scheduled or repeated jobs; needs a Python setup |
| Command line | curl -s URL | grep -oE "<loc>[^<]+" | sed "s/<loc>//" | Quick on Mac or Linux; breaks on CDATA, escaped & and image locs; add gunzip for .gz |
| Browser view source | Open the sitemap, press Ctrl+U or Cmd+Option+U, copy | Fine for a handful of URLs; no filtering or export |
| BelayTab | Open a batch of URLs, then save the open tabs as a named session | For reviewing pages over several days; it doesn’t read sitemaps itself |
Limits and Troubleshooting
- “Fetching by URL isn’t available yet”: the fetch service isn’t reachable. Open the sitemap in a new tab, save it with Ctrl+S or Cmd+S and drop the saved file here.
- “Couldn’t fetch” with a 403 or 503: the site blocks automated requests, often through a bot-protection service. Saving the file from your own browser usually works.
- “This is a web page, not a sitemap”: the address returned HTML. It may be an HTML site map meant for visitors, or a login page. Use the URL extractor to pull links from HTML.
- A sitemap looks like a styled web page in the browser: an XSL stylesheet is formatting it. View the source to see and copy the raw XML.
- Warnings about unclosed entries: the file was cut off or edited by hand. Recovered URLs are included, but check the source file.
- Only 500 URLs are listed on the page: the preview is capped to keep the page fast. Every matching URL is included in copies, downloads and batches.
- Only the first tab opened: your browser blocked the rest as pop-ups. Allow pop-ups for belaytab.com and press Open again.
“Fetch all child sitemaps” stops after 50 files per run, so a very large site may need several runs or its child sitemaps dropped as files. The tool never follows the page URLs themselves, only sitemap files.
Frequently Asked Questions
How do I extract all URLs from a sitemap?
Paste the sitemap XML, drop the file or enter its URL in the sitemap URL extractor, then copy or download the list. If it’s a sitemap index, fetch the child sitemaps too, because the index itself only lists other sitemaps, not pages.
How do I convert a sitemap to CSV?
Load the sitemap in the tool and press Download CSV. You get one row per URL with loc, lastmod, changefreq, priority and source columns, ready for Excel or Google Sheets.
Can I extract URLs from a sitemap.xml.gz file?
Yes. Drop the .xml.gz file and the tool decompresses it in your browser before reading it. Compressed sitemaps fetched by URL are unpacked the same way.
What’s the difference between a sitemap and a sitemap index?
A sitemap lists page URLs inside a <urlset> element. A sitemap index lists other sitemap files inside a <sitemapindex> element, which lets large sites split their pages across many files.
How many URLs can a sitemap contain?
Up to 50,000 URLs, and no more than 50MB uncompressed. Sites with more pages split them across several sitemaps and list those in a sitemap index.
How do I find a website’s sitemap?
Try the domain followed by /sitemap.xml, then check /robots.txt for Sitemap: lines. WordPress uses /wp-sitemap.xml by default and Yoast SEO uses /sitemap_index.xml.
Does Google use changefreq and priority?
No. Google says it ignores both. It uses lastmod only when the dates are consistently accurate.
Is the sitemap URL extractor private?
Pasted text and dropped files never leave your browser. Sitemap URLs you enter are fetched through our server so your browser can read them, and neither the URL nor the file is stored.
Why does the tool say my sitemap is malformed?
The XML has an error, such as an unescaped & in a URL, a missing closing tag or a download that was cut off. The tool still recovers every URL it can find and lists what went wrong so you can fix the source.
How can I open the URLs from a sitemap in batches?
Pick a batch size and press Open; each press opens the next set of tabs. To come back to a batch later, a session manager such as BelayTab can save the open tabs as a named session.
Related
- ToolsURL ExtractorPull every link out of text, HTML, Markdown or an email. Dedupe, filter by domain, export TXT or CSV.
- ToolsBulk URL OpenerPaste a list of links and open them all at once, or save them as a session.
- ToolsRemove Duplicate LinesDelete repeated lines from any list, sort what’s left, and merge URLs that point to the same page.
- ToolsURL ExpanderExpand bit.ly, t.co and other short links to see every redirect and the final page before you click.
Keep Your Tabs Safe, Too
BelayTab saves and snapshots your tabs automatically, in every browser. Free.