{{ summaryTitle }} · {{ summaryValue }} · {{ summaryLine }}
Sitemap extraction setup
No request runs on page load. Fetch follows a bounded number of public child sitemap files.
XML is parsed locally. Non-XML text falls back to absolute HTTP(S) URLs.
{{ sourceStatus }}
Pasted and local-file content stays in this browser. Fetch sends only the public sitemap URL to the retrieval service.
Blank includes every otherwise valid row.
Blank leaves included rows unchanged.
On is recommended for crawl seeds and migration inventories.
Keep the first normalized occurrence
This affects normalization, duplicate detection, and exported URLs.
Compare and export page URLs without #fragments
{{ summaryLine }}
Off is neutral for a normal page sitemap and keeps index loc values as evidence.
{{ params.include_index_entries ? 'Enabled' : 'Disabled' }}
Off is neutral while patterns are blank and matches ordinary audit expectations.
{{ params.case_sensitive ? 'Enabled' : 'Disabled' }}
The chart and its CSV always use the same included rows.
{{ handoffAnnouncement }}
{{ urlListText || 'No included page URLs. Review filters or child sitemap handling.' }}
{{ tableExportAnnouncement }}
#URLHostSource roleLast modifiedStatusCopy
{{ row.position }}{{ row.url }}{{ row.host || '—' }}{{ row.role }}{{ row.lastmod || '—' }}{{ row.status }}
{{ tableExportAnnouncement }}
SignalValueReviewEvidenceCopy
{{ row.signal }}{{ row.value }}{{ row.review }}{{ row.evidence }}
{{ chartExportAnnouncement }}
{{ summaryAnnouncement }}

A sitemap is a site owner’s declared URL inventory. Search engines can discover pages through links without one, but a sitemap gives migrations, crawl audits, launch checks, and content reviews a deliberate list to compare against the live site. That list is evidence of intent, not proof that every URL is reachable, canonical, indexable, or indexed.

Two XML shapes solve different jobs. A urlset contains page entries, with each loc naming a page URL. A sitemapindex points to child sitemap files instead. Confusing the two often produces an apparently empty page list even though the index is valid and contains useful child addresses.

Sitemap fields and their interpretation
Field or shape What it contributes What it cannot establish
urlset Page URLs for a crawl or coverage inventory That the pages return a successful status or are allowed to index
sitemapindex Addresses of child sitemap files The page URLs inside those child files until they are fetched or opened
lastmod An optional date for a meaningful page or sitemap change That the date is accurate or that a crawler will revisit immediately
Host and path Scope clues for subdomains, sections, and migrations Canonical ownership, redirects, robots rules, or page quality

Extraction makes the inventory easier to inspect by turning each candidate URL into a row with its host, path, depth, source role, and optional date. Normalization matters before counting. Host and scheme case do not create distinct destinations, fragments can make the same page look different, and repeated entries can inflate coverage if duplicates are not handled consistently.

Filters are most useful after the full source has been preserved as evidence. An include pattern can isolate a documentation section, while an exclude pattern can remove archives or campaign URLs from the clean list. The excluded rows still matter because they explain why the handoff count differs from the number of loc values in the source.

The final inventory should lead to live checks, not replace them. Sample the included URLs for HTTP status, redirects, canonical targets, robots directives, and search-console feedback. A well-formed sitemap can still describe the wrong site state, while a useful audit often begins with the discrepancy between the declared inventory and what a crawler actually finds.

How to Use This Tool:

Choose a local or public source first, then narrow the resulting inventory without losing the reason each row was kept or excluded.

  1. Set Start from to Paste or load sitemap for XML, plain URL text, or one local XML or text file. Choose Fetch public sitemap URL only for a public HTTP or HTTPS address that may be requested remotely.
  2. Paste or load the source, or enter the Sitemap URL and choose Fetch sitemap. A local file must be no larger than 1 MiB and must be decompressed before loading.
  3. Add Include URL patterns only when a subset is needed. Add Exclude URL patterns for rows that should be removed after inclusion. Commas or line breaks separate patterns, and * matches any run of characters.
  4. Leave De-duplicate URLs and Strip URL fragments on for a normal page inventory. Turn on Include child sitemap URLs only when the desired list contains sitemap-file addresses rather than pages.
  5. Read Coverage audit and inspect excluded or normalized rows in Extraction ledger. Use Plain URL list as the handoff only after host scope, duplicate handling, filters, invalid rows, and protocol limits match the audit purpose.

Interpreting Results:

Included URLs is the count after URL validation, normalization, optional fragment removal, filtering, and duplicate handling. It is not the raw number of loc elements, and it is not an indexation count.

  • Multiple hosts deserves review because a normal sitemap inventory is usually scoped deliberately. Confirm any cross-host or subdomain mix.
  • Lastmod coverage measures presence only. Compare dates with deployment or content records before using them as freshness evidence.
  • Source evidence on a child sitemap means the address was found in an index but was not included as a page URL under the current setting.
  • Blocked on protocol limits means the measured source exceeds 50,000 included URLs or 52,428,800 uncompressed bytes for one sitemap-sized artifact.

Technical Details:

Sitemap extraction is a staged transformation. Source recognition establishes whether rows represent pages, child sitemaps, generic XML locations, or plain text. Every candidate then passes through URL normalization and ordered inclusion rules before the audit and distribution counts are calculated.

Transformation Core:

Sitemap URL extraction stages
Stage Rule Recorded result
Recognize source Read url blocks from urlset, sitemap blocks from sitemapindex, generic loc elements from other XML, or absolute-looking URLs from non-XML text. Source kind, source label, parser warnings
Decode and normalize Decode XML entities, require HTTP or HTTPS, lowercase the scheme and host, preserve the path and query, and optionally remove the fragment. Normalized URL, original URL, host, path, depth, section, file type
Apply inclusion rules Reject invalid URLs, then apply duplicate handling, the include patterns, and finally the exclude patterns. Included status or the first exclusion reason
Build audit Count included and excluded rows, unique hosts, duplicates, invalid URLs, and included rows carrying lastmod. Coverage audit and clean URL list

Rule Core:

Pattern matching examines the normalized URL, host, and path together. It is case-insensitive by default. Include patterns are optional; when present, a row must match at least one. Exclude patterns run afterward and remove a matching row even if it passed inclusion. With de-duplication on, the first normalized occurrence is kept and later occurrences are excluded.

Sitemap limits and retrieval boundaries
Boundary Exact behavior
Local editor At least one character and no more than 1,000,000 characters
Local file One XML or text file up to 1 MiB; local .gz files are rejected
Protocol audit At most 50,000 URLs and 52,428,800 uncompressed bytes for one sitemap or sitemap index
Public fetch HTTP and HTTPS only; private, localhost, and non-public address targets are blocked; redirects and child traversal are bounded
Fetch breadth Up to 12 sitemap files and 50,000 URL rows for one submitted fetch

Formula Core:

The distribution chart groups only included rows. A group’s share is its row count divided by the total included count.

Pg = Ng Nincluded × 100 %

Ng is the included count for a host, top path section, path depth, or file type. Nincluded changes whenever filters, fragment handling, duplicate handling, or child-sitemap inclusion changes, so comparisons need the same settings.

Privacy Notes:

Pasted text and local files are parsed in the browser. Fetch mode is different: it sends the public sitemap URL to a retrieval service, which requests public sitemap content and may follow child sitemap links.

  • Use the local path for confidential inventories, staging URLs, signed links, or internal hostnames.
  • Public fetch rejects private-network and localhost targets, but requesting a public sitemap can still disclose interest in that address to the host and retrieval service.
  • No request runs merely because the page loads; fetching starts only after the public URL is submitted.

Worked Examples:

Fragment and duplicate cleanup

A urlset contains two addresses with the same scheme, host, and /docs path, but the first also ends in #top. With fragment stripping and de-duplication on, the first row normalizes to the page URL and the second becomes a duplicate. The clean list contains one URL while the ledger retains both source rows.

Index without page URLs

A pasted sitemapindex lists three child files. With child sitemap inclusion off, the included page count is zero and the three child addresses remain source evidence. Turn the option on only when those sitemap-file URLs are the intended output; otherwise open or fetch the child files to reach their page entries.

References: