A sitemap URL extractor turns the loc values inside a urlset or sitemapindex XML file into a deduplicated, one-URL-per-line list you can paste into a spreadsheet, crawler queue, or audit checklist. The extraction happens entirely in the browser — you paste XML text into an editor, the parser reads the loc children, normalizes each value through the browser's URL implementation, and returns the unique entries in first-seen order. The Sitemap URL Extractor follows the Sitemaps protocol strictly: it accepts only the two core structures (urlset and sitemapindex), ignores XML declarations and comments, supports a consistent namespace prefix such as sm:urlset, and refuses to repair malformed input. The first-seen order is preserved so you can compare the output line-for-line against the source. Because nothing is uploaded, pre-launch URL inventories and staging sitemaps stay on your device unless you copy the result somewhere yourself.
When you are auditing a site that has grown over several years, the sitemap is usually the most authoritative inventory of pages the site itself wants crawled. Pulling it into a flat list is the starting point for redirect maps, content reviews, indexation studies, and migration checks. The tool described here is built for exactly that first step — getting a clean list you can hand to another process.

What the Sitemap URL Extractor Does
The tool is built around a single input format: one complete XML document at a time, pasted as text, in either the urlset form or the sitemapindex form defined by the Sitemaps protocol. For urlset input, every page entry must contain a direct loc child; for sitemapindex input, every sitemap entry must contain a direct loc child. Optional children such as lastmod are read but do not change the extracted location, and extension elements like image:loc are never substituted for a missing page loc because they describe a different resource.
After extraction the result panel reports four things you can act on: the detected root type, the number of unique URLs accepted, the number of normalized duplicates removed, and the complete deduplicated list itself. A copy button places that list on the clipboard for downstream use — a crawler queue, a spreadsheet import, a redirect audit, or a comparison against a previous release. Parsing is local: the XML text never leaves the browser, and the widget makes no network request. This matters when the sitemap points at internal staging hosts, draft directories, or pre-launch URL inventories that you do not want leaving the device.
Extract Links From a Sitemap in Three Steps
- Paste the XML. Open the sitemap file in a text editor, select the complete XML text from one urlset or sitemapindex document, and paste it into the editor. Do not paste a remote URL — the widget does not fetch anything, and pasted text gives you full control over what is parsed.
- Extract and review the metrics. Run the extraction. The result panel shows which root type was found (urlset or sitemapindex), how many unique URLs were accepted, how many normalized duplicates were removed, and the complete deduplicated list in first-seen order. If the run fails, the error points to a specific numbered loc or item so you can correct the source instead of silently skipping it.
- Copy the list and run the downstream checks. Use the copy button to put the one-URL-per-line list on the clipboard, then feed it into a live status checker, canonical comparison, robots review, or indexing query. Extraction confirms only what the sitemap says; the rest is a separate live-site pass.
What the Output Actually Shows You
The extractor surfaces a small set of reliable facts about each run. Knowing which root you parsed decides whether your list contains page URLs or sitemap file URLs — the two behave very differently downstream.
| Aspect | urlset input | sitemapindex input |
|---|---|---|
| Root element | urlset | sitemapindex |
| Loc path inside each entry | url → loc | sitemap → loc |
| What the list represents | Page URLs to crawl or audit | Sitemap file URLs to fetch and parse separately |
| Optional children honored | lastmod, changefreq, priority (read only) | lastmod (read only) |
| Recursion handled by the tool | Not applicable | None — child files are not fetched or expanded |
| Common next step | Compare against canonical, analytics, or indexation data | Paste each child sitemap back into the same tool |
The duplicate count line is more useful than it looks. It counts URLs that the browser normalized to the same value — for example, a host spelled in mixed case, an explicit default port like :80 on an http URL, or two percent-encoded variants of the same path. A surprisingly high duplicate count usually points at inconsistent canonicalization in the source sitemap.
When the Extracted List Pays for Itself
The output is most useful when you treat it as one input to a larger audit rather than the answer. Common downstream uses include:
- Redirect audits during migrations. Sort the list against your redirect map to find pages that map to the same destination, pages with no mapping at all, and pages mapping to themselves.
- Crawler checklists. Hand the list to a headless crawler, a log file, or a server-side script that needs every URL the site claims.
- Spreadsheet imports. One-URL-per-line is the format most spreadsheets and CSVs expect for a single-column import.
- Comparison with previous releases. Diff the current list against the previous release's list to find newly added, removed, or changed locations.
- Cross-check with canonical and analytics sources. Comparing against canonical URLs from your database, crawl results, or analytics landing pages surfaces gaps where the sitemap and the site disagree.
What the Tool Does Not Check
Extraction confirms that a valid loc appeared in the pasted XML and passed the tool's disclosed validation. It does not confirm any of the following, all of which need a live request against the site:
- HTTP status, redirects, or response codes
- Canonical tags, robots directives, or noindex rules
- Whether a search engine accepted the source file
- Whether the URL is crawlable, valuable, indexed, or ranked
- On-disk UTF-8 byte size, ownership, or content quality
The Sitemaps protocol and Google documentation describe sitemaps as discovery hints, not indexing guarantees. Per the Google Search Central sitemap guide, a correctly formed sitemap helps crawlers discover URLs but does not promise indexation. Treat the extracted list as evidence in a larger audit, not as a verdict.
Preparing a Sitemap Before You Paste
A few edge cases bite people who paste real-world sitemaps without preparation. Addressing them ahead of time turns a confusing failure into a clean run.
- Compressed .gz files must be decompressed first. The parser reads text, so gunzip the file in a terminal or with a local archive tool before pasting.
- Paste one document at a time. A sitemap index is a directory of sitemap files, not a recursive bundle. Paste the index to get the child sitemap URLs, then paste each child separately to get the page URLs.
- Custom DTDs and entity declarations will fail the run. The parser rejects DTD declarations and custom entity declarations on purpose, so entity expansion cannot become hidden product logic. Strip these from the source if you control it.
- Watch the size limits. The widget accepts at most 50,000 unique URLs and five million UTF-16 input code units. Crossing either bound fails the entire run without truncation. If a production sitemap sits close to the protocol's 50 MB uncompressed limit, validate the actual uncompressed byte size and consider splitting it into smaller files referenced by a sitemap index.
- Invalid loc values fail the whole run. Each decoded loc must be an absolute HTTP or HTTPS URL shorter than 2,048 characters, with no credentials, fragments, raw whitespace, malformed percent escapes, or backslashes. URLs that the browser cannot parse cause a fail-fast error pointing at the numbered entry, not a silent skip.
If you need the XML text from a remote sitemap before you paste, the practical approach is to download it through your browser's View Source or Save Page As, decompress it locally, and then paste the file contents. A separate guide on getting a website sitemap XML as plain text walks through the download step for sitemaps that are reachable, behind authentication, or compressed.