Extract all URLs, lastmod timestamps, change frequencies, and priority hints from XML sitemaps and nested sitemap indexes with streaming memory safety and dual-engine WAF escalation.
Extract all URLs, lastmod timestamps, change frequencies, and priority hints from XML sitemaps and nested sitemap indexes with streaming memory safety and dual-engine WAF escalation.
Processes enterprise sitemaps up to 50,000 URLs with a sub-25MB memory footprint, preventing heap exhaustion and V8 Out-Of-Memory crashes.
Recursively crawls nested sitemap indexes up to 4 levels deep with built-in loop-prevention shielding and run-level URL deduplication."
Combines sub-300ms native HTTP requests with automatic stealth Playwright Chromium browser escalation to clear Cloudflare Turnstile blocks.
Reads Sitemap directives from robots.txt according to RFC 9309 and probes curated universal and CMS sitemap paths automatically.
Decompresses .xml.gz payloads in-memory using native Node.js zlib with zero external dependencies and zero temporary disk overhead.
Emits clean domain records grouping all URLs under their respective sitemap source without redundant per-URL field repetition.
Templates & workflows
Directly fetch, decompress, and extract all URLs with publisher lastmod and priority metadata from a target sitemap link.
{
"urls": "https://example.com/sitemap.xml",
"maxResults": 1000,
"scrapeMode": "auto",
"autoDiscover": false,
"includeImages": false,
"includeLastmod": true
}Auto-discover sitemaps via robots.txt and universal paths for a root domain, follow nested sitemap indexes, and extract image assets.
{
"urls": "https://example.com",
"maxDepth": 4,
"maxResults": 5000,
"scrapeMode": "auto",
"autoDiscover": true,
"includeImages": true,
"includeLastmod": true
}Extract only newly created or updated URLs published since a specified cutoff date to monitor publishing velocity or seed ingestion queues.
{
"urls": "https://example.com",
"maxResults": 2000,
"scrapeMode": "http",
"autoDiscover": true,
"includeImages": false,
"modifiedSince": "2025-01-01",
"includeLastmod": true
}Sitemap Extractor & URL Inventory Audit Engine
An enterprise-grade, memory-safe XML sitemap parser, nested sitemap index crawler, and technical SEO URL extraction engine for BrowserMesh.
Point it at any website domain or direct sitemap link. Automatically inspects robots.txt (IETF RFC 9309), resolves sitemap directives, probes high-probability CMS paths, recursively traverses multi-level sitemap indexes, transparently decompresses .xml.gz payloads, and streams clean itemized page URLs with publisher metadata (lastmod, changefreq, priority, image sitemaps) alongside an aggregated site audit summary.
The premier high-throughput, memory-safe alternative to Apify Sitemap Extractor, Screaming Frog XML Sitemap Crawls, and memory-heavy DOM XML parsers.
<lastmod> reliability, and seed deep architectural crawls.<lastmod> timestamps over recurring scheduled runs.Enterprise eCommerce and media websites frequently publish XML sitemaps containing up to 50,000 URLs per file (up to 50MB uncompressed). Traditional XML parsers parse the entire document into massive Document Object Model (DOM) AST trees, creating severe memory spikes and risking V8 Out-Of-Memory (OOM) crashes.
<url>...</url> blocks sequentially via high-performance RegExp streaming.type: 'url') so downstream queues process records without waiting for massive jobs to finish.<sitemapindex> roots and enqueues all declared child <sitemap><loc> paths up to 4 levels deep.visitedSitemaps set to neutralize recursive indexing loops (e.g. Sitemap A referencing Sitemap B which references Sitemap A).auto mode, when an endpoint returns 403 Forbidden, 503 Service Unavailable, Cloudflare Turnstile, or DataDome challenge signatures, the plugin automatically escalates the request to a stealth Chromium page to bypass the bot wall..xml, .xml.gz, .txt, .atom, or /sitemap link is provided.Sitemap: directives./sitemap.xml, /sitemap_index.xml, /wp-sitemap.xml, /sitemap_products_1.xml) if no robots.txt directives exist.<lastmod>, <changefreq>, and <priority> values when present.modifiedSince): Excludes URLs with parseable dates older than a specified cutoff date, while retaining unknown/undated entries per RFC guidelines.<image:loc> image assets when includeImages: true.type: 'url'): Granular, individual records streamed for each discovered URL.type: 'summary'): An executive-level aggregated record emitted upon completing each target website, reporting total unique URLs, sitemaps processed, breakdown by sitemap file, total images, and crawl execution duration.sitemaps Item Format:{
"sitemapSource": "https://example.com/sitemap.xml",
"sitemapType": "urlset",
"urlsCount": 54,
"urls": [
{
"url": "https://example.com/page-1",
"lastModified": "2026-10-11T15:16:42.991Z",
"changeFreq": "daily",
"priority": "0.8",
"imagesCount": 0
}
]
}
https://example.com/sitemap_products_1.xml) to bypass robots.txt discovery and path probing.maxResults:
maxResults at 100–1000. Set to -1 only when conducting complete domain inventory audits.modifiedSince (e.g. 2025-01-01) to extract only newly added or updated pages, drastically accelerating recurring ingestion pipelines.scrapeMode on 'auto'. It consumes zero browser resources on normal sites, but seamlessly escalates to stealth Chromium when WAF challenges appear.Q: How does this plugin handle compressed .xml.gz sitemaps?
Transparently. The plugin inspects response headers and gzip magic bytes (0x1f, 0x8b), decompressing payloads in-memory using native Node.js zlib before passing strings to the streaming parser.
Q: What happens if a website does not publish any sitemap?
The plugin does not crash or silently omit the domain. It yields one diagnostic record with status: 'error' and error: 'No usable sitemap found...' so input records align cleanly in downstream CSV/Excel exports. If includeSummary is enabled, a diagnostic summary record is also yielded.
Q: Does date filtering discard pages with missing <lastmod> tags?
No. Following RFC standards and search engine best practices, entries with missing or unparseable <lastmod> tags are retained because their modification date is unknown. Only entries with an explicitly parseable date older than the cutoff are filtered.
Q: Can I run this plugin without installing Playwright or extra dependencies?
Yes. The plugin is configured with "needOwnDependencies": false. It uses native Node.js fetch and zlib, keeping deployment instant and dependency-free. Stealth browser fallback is only activated if Playwright page context is supplied by the runtime.
This workflow executes natively within your local or peer BrowserMesh node using real Chromium browser automation. It navigates dynamically rendered single-page applications, executes interaction logic, avoids cloud proxy fees, and extracts clean structured datasets directly to your local machine with complete security and privacy.
Unlike legacy cloud scraping APIs that impose expensive per-request markups and risk IP bans, BrowserMesh routes execution through authentic residential environments. You pay zero cloud data transfer fees, experience full anti-bot stealth emulation, and retain 100% ownership of your extracted datasets without vendor lock-in.
1 record · 11 nested fields · real execution preview
Combine complementary browser automation and auditing workflows to verify site health, infrastructure, and search engine crawlability with 100% local execution.
Scan websites and XML sitemaps to detect 404 dead links, broken anchors, and redirect loops with zero cloud markups.
Discover who hosts any website. Detect cloud infrastructure, CDN edge networks, IP geo, and DNS routing instantly.
Audit on-page SEO factors, meta tags, heading structures, Core Web Vitals, and SERP snippet previews with local privacy.
Explore our comprehensive guides or reach out directly to our engineering support team.