Skip to content

Sitemap URL Extractor

Turn a pasted XML sitemap or sitemap index into a clean, deduplicated, one-URL-per-line list without uploading the file.

Privacy: your files never leave your device. All processing happens locally in your browser.

How to use

  1. 1.Paste the complete XML text from one urlset or sitemapindex document into the editor.
  2. 2.Extract the direct loc values and review the root type, unique count, duplicate count, and complete output.
  3. 3.Copy the one-URL-per-line list, then perform separate live status, canonical, robots, and indexing checks as needed.

About Sitemap URL Extractor

A Sitemap URL Extractor turns Sitemap XML into a plain one-URL-per-line list. Paste the contents of a standard urlset or sitemapindex document and run the extraction. The result reports which root type was found, how many unique URLs were accepted, and how many normalized duplicates were removed. The first-seen order is preserved, so the output remains easy to compare with the source. A copy button places the complete list on the clipboard for a crawler checklist, spreadsheet import, redirect audit, log comparison, or migration review. All parsing happens in this browser and the XML is not uploaded.

The tool recognizes the two core structures defined by the Sitemaps protocol. In a urlset, each url entry must contain its direct loc child. In a sitemapindex, each sitemap entry must contain its direct loc child. A consistent namespace prefix such as sm:urlset, sm:url, and sm:loc is supported as well as the common default namespace form. XML declarations and comments are ignored. Other optional children, such as lastmod, do not alter the extracted location. Extension locations such as image:loc are not substituted for a missing page loc because they describe a different resource role.

XML text is decoded conservatively. The five built-in named XML entities and valid decimal or hexadecimal numeric character references are accepted. Unknown entities, invalid Unicode scalar values, nested markup inside loc, DTD declarations, and custom entity declarations cause the extraction to fail. Rejecting DTDs keeps the widget's behavior small and predictable and prevents entity expansion from becoming hidden product logic. The parser does not repair malformed XML or guess where a missing closing tag belongs. If an item or root is incomplete, the whole run fails rather than presenting a partial list as complete.

Every decoded loc must be an absolute HTTP or HTTPS URL. Browser-standard serialization lowercases and validates hosts, removes default ports, and percent-encodes non-ASCII path characters when required. Credentials, fragments, raw whitespace, malformed percent escapes, backslashes, relative paths, and other schemes are rejected. Each serialized URL must contain fewer than 2,048 characters, matching the protocol's loc constraint. URLs that serialize to the same value are duplicates; only the first is returned. The browser tool accepts at most 50,000 unique URLs and five million UTF-16 input code units. Crossing either bound fails without truncation.

A sitemap index is a directory of sitemap files, not a recursive bundle. This tool extracts the direct sitemap file locations in that index, but it does not fetch those files or expand their page URLs. Likewise, pasting a remote URL into the editor does not download anything; paste XML text instead. Compressed .gz data must be decompressed outside the tool before use. The parser does not check HTTP status, redirects, canonical tags, robots directives, noindex directives, page content, ownership, sitemap placement, UTF-8 bytes on disk, or whether a search engine accepted the source file. Those are separate live-site checks.

Use the output as evidence in a larger audit rather than as proof of indexation. Compare it with canonical URLs from your database, crawl results, analytics landing pages, or a previous release. Unexpected duplicates can reveal default-port or host-case variants. A parser error is intentionally specific to the numbered loc or item so the source can be corrected instead of silently skipped. If a production sitemap is close to protocol limits, validate the actual uncompressed byte size and consider splitting it into smaller files referenced by a sitemap index.

The Sitemaps protocol and Google documentation describe sitemaps as discovery hints, not indexing guarantees. Extracting a URL confirms only that the location appeared in the pasted structure and passed this tool's disclosed validation. It does not mean the URL is crawlable, canonical, valuable, indexed, or ranked. After using the list, inspect the live sitemap response and relevant pages separately. Because the widget is client-only, private staging locations or prelaunch URL inventories remain on the device unless the user copies them elsewhere.

Methodology & sources

Remove a leading byte-order mark, XML declarations, and comments; reject DTD or custom entity declarations. Require a closed urlset/url/loc or sitemapindex/sitemap/loc structure with one consistent optional namespace prefix. Decode only the five predefined XML entities and valid decimal or hexadecimal Unicode scalar references. Reject nested loc markup, unknown entities, missing loc children, incomplete items, and malformed roots. Parse each decoded value with the browser WHATWG URL implementation; accept only absolute HTTP/HTTPS URLs shorter than 2,048 characters without credentials, fragments, raw whitespace, malformed percent escapes, or backslashes. Deduplicate serialized href values in first-seen order. Enforce 50,000 unique URLs and five million UTF-16 input code units, failing the entire operation instead of truncating.

Frequently asked questions

Does this tool download a sitemap from a URL?
No. Paste XML text into the editor. The widget makes no network request and does not fetch, decompress, or follow sitemap files.
Will a sitemap index be expanded into all page URLs?
No. For sitemapindex input, the result contains the direct sitemap file locations. Each child file must be obtained and checked separately.
Does an extracted URL mean the page is indexed?
No. Extraction only confirms that a valid loc appeared in the pasted XML. It does not test crawlability, canonical selection, indexing, ranking, or page status.

SEO & Webmaster guides

View all