{"product_id":"compare-xml-sitemap-snapshots-in-apify-added-removed-urls","title":"Compare XML Sitemap Snapshots in Apify | Added\/Removed URLs","description":"\u003ch3\u003eCompare XML Sitemap Snapshots in Apify — Added\/Removed URLs Report\u003c\/h3\u003e\n\u003cp\u003eInstantly compare two complete, saved XML sitemap snapshots (same scope, before vs. after a release) and get a clear report of \u003cstrong\u003eadded\u003c\/strong\u003e, \u003cstrong\u003eremoved\u003c\/strong\u003e, and \u003cstrong\u003emetadata-changed\u003c\/strong\u003e URLs—without fetching any sitemaps or page URLs.\u003c\/p\u003e\n\n\u003ch3\u003eWhat this workflow does\u003c\/h3\u003e\n\u003cp\u003eThis n8n automation runs an Apify actor to diff two XML \u003ccode\u003eurlset\u003c\/code\u003e snapshots and produce an audit-ready comparison:\u003c\/p\u003e\n\u003cul\u003e\n  \u003cli\u003eStarts on manual trigger and verifies the provided XML strings are nonempty.\u003c\/li\u003e\n  \u003cli\u003eValidates snapshot constraints, including the \u003cstrong\u003e2,000,000 UTF-8 byte limit\u003c\/strong\u003e per snapshot, and rejects prohibited \u003cstrong\u003eDTD\/custom entities\u003c\/strong\u003e.\u003c\/li\u003e\n  \u003cli\u003eChecks the \u003cstrong\u003eurlset\u003c\/strong\u003e structure and ensures the \u003cstrong\u003e5,000-entry limit\u003c\/strong\u003e.\u003c\/li\u003e\n  \u003cli\u003eIf \u003ccode\u003eexistingRunId\u003c\/code\u003e is set, it reads the selected existing Apify run; otherwise it starts one capped run of \u003cstrong\u003eecomopskits\/sitemap-snapshot-diff\u003c\/strong\u003e with the supplied XML pair.\u003c\/li\u003e\n  \u003cli\u003ePolls the same Apify run until it finishes successfully, or stops with an error if it fails or exceeds allowed checks.\u003c\/li\u003e\n  \u003cli\u003eConfirms both XML strings exactly match the snapshots tied to the chosen run before accepting results.\u003c\/li\u003e\n  \u003cli\u003eReads Apify run \u003cstrong\u003eINPUT\u003c\/strong\u003e, \u003cstrong\u003eSUMMARY\u003c\/strong\u003e, and the result dataset, then outputs final counts and per-URL changes (including unchanged totals).\u003c\/li\u003e\n\u003c\/ul\u003e\n\n\u003ch3\u003eUse cases\u003c\/h3\u003e\n\u003cul\u003e\n  \u003cli\u003eVerify SEO impact after a deployment by identifying which URLs were added or removed.\u003c\/li\u003e\n  \u003cli\u003eMonitor CMS migrations by detecting sitemap metadata changes (e.g., attributes reflected in the snapshot).\u003c\/li\u003e\n  \u003cli\u003eRun change reviews for SaaS website operators who need deterministic sitemap diffing before\/after releases.\u003c\/li\u003e\n\u003c\/ul\u003e\n\n\u003ch3\u003eTechnical details\u003c\/h3\u003e\n\u003cul\u003e\n  \u003cli\u003e\n\u003cstrong\u003eApify integration:\u003c\/strong\u003e Requires HTTP Header Auth (Authorization: Bearer YOUR_APIFY_TOKEN).\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003en8n nodes:\u003c\/strong\u003e if, set, code, sticky note, HTTP Request, manual trigger.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eCore output:\u003c\/strong\u003e counts of added\/removed\/metadata-changed plus unchanged URLs and per-URL change details.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eImportant:\u003c\/strong\u003e No sitemap\/page URLs are fetched—only the provided XML snapshot strings are compared.\u003c\/li\u003e\n\u003c\/ul\u003e","brand":"N8N Commerce","offers":[{"title":"Default Title","offer_id":46157918634163,"sku":"N8N-20370","price":32.99,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0749\/6279\/6723\/files\/XfIET7zGos4kdEGo9x_SF_TXu5avi8.png?v=1791018245","url":"https:\/\/buyflowscripts.com\/products\/compare-xml-sitemap-snapshots-in-apify-added-removed-urls","provider":"N8N Commerce","version":"1.0","type":"link"}