Sitemap Comparison Tool

Compare two sitemap versions. Find added, removed and shared URLs, then review date changes and export the results.

Previous sitemap
Current sitemap

A sitemap comparison tool shows how two XML sitemap lists differ. Screpy identifies URLs found only in the current source, URLs found only in the previous source, and locations shared by both. It also compares the supplied lastmod strings for shared URLs. Use it after a release, during a migration or when investigating an unexpected change in your published URL inventory.

Choose the two versions you want to compare

Enter the previous and current sitemap addresses, or select pasted XML independently for either side. A saved XML copy is useful when the old address now serves the new sitemap. Screpy does not retrieve historical versions. If both inputs point to the same current file, the comparison cannot reconstruct what that file contained before deployment.

Use a public XML URL such as https://example.com/sitemap.xml. This address is illustrative. To locate your site's sitemap first, use Sitemap Checker. Each pasted document can contain up to 256 KiB of UTF-8 XML.

Read additions and removals as list differences

An added URL appears in the current list but not in the previous complete list. A removed URL appears in the previous list but not in the current complete list. Shared URLs occur in both. Hostname normalization does not merge distinct paths, query strings or trailing-slash variants: /products/, /Products/ and /products can remain separate addresses.

A removal is not automatically an SEO error. A deleted product may have been intentionally removed from the sitemap; an active landing page may have been omitted accidentally. Investigate the affected address before deciding what to change. Bulk HTTP Status Checker helps check page responses and redirects separately.

Check dates without treating them as proof of updates

For shared URLs, the table displays the previous and current lastmod values. The change count compares supplied strings, including adding or removing a value. It does not verify when the underlying page changed or decide whether two timestamp formats describe the same instant.

Keep modification dates tied to meaningful content changes. A sitemap generator that replaces every date on each build can create many differences without a corresponding content update. Use Sitemap Validator to investigate XML structure and supported field values. The Sitemaps protocol describes sitemap and index formats.

Read coverage before trusting an absent URL

For remote indexes, Screpy follows same-origin child files within a two-level depth limit. Each side is bounded to ten files, 10,000 unique page URLs and 20,000 processed entries. A remote file can contain up to 5 MiB of downloaded and decoded content, with a 10 MiB decoded total per side. Pasted indexes do not fetch their children, because those live files might not represent the saved version.

A timeout, inaccessible child, unsupported scope or processing limit can leave a source incomplete. In that case, an address seen only on one side is not proof that the other side lacks it. Read observed-only labels and unknown totals literally; unknown does not mean zero. Duplicate page locations are merged, while invalid locations and repeated fields are reported.

Export the evidence you actually reviewed

Filter by change type or URL text, then export the retained matching rows as CSV. JSON includes the bounded report and source observations. At most 1,000 detail rows are returned, so summary counts can exceed the table or export. Large analyses may require comparing smaller source files separately.

This report does not request every listed page, identify Google's selected canonical or establish indexing. Use Canonical Tag Checker for declared canonical evidence and Search Console for Google's recorded indexing state. A clean list comparison proves only the reported comparison within its stated scope.

Sitemap comparison questions

Compare two sitemap versions. Find added, removed and shared URLs, then review date changes and export the results.

Are query strings and trailing slashes ignored?

No. Path case, query strings and trailing-slash differences are preserved. The tool does not silently combine potentially distinct pages.

Does a changed lastmod prove that the page changed?

No. Screpy compares the supplied lastmod strings. Verify dates against actual content changes; equivalent timestamp formats may also differ as strings.

What happens when an index cannot be read completely?

The report shows partial coverage and observed-only differences where absence cannot be established. Added and removed totals remain unknown if either input is incomplete.

Can Screpy recover an older sitemap automatically?

No. Supply an old sitemap URL that still serves the old version, or paste a saved XML copy. A live address may already contain the new version.

Why can an export have fewer URLs than the summary?

The response retains at most 1,000 detail rows. CSV contains retained rows matching your filters, and JSON contains the bounded report, not an unlimited URL inventory.

Does a removed URL mean the page is broken or deindexed?

No. It means the address is absent from the compared complete current list. Page availability and Google's indexing state need separate checks.