August 14, 2026 · 7 min read

Sitemap URL Extractor: Practical Workflows and Playbooks

By Crawlerbros Engineering Team

Direct answer

Extract every URL from any site's sitemap.xml with handles sitemap index files (nested sitemaps), gzipped sitemaps, and robots.txt discovery. Returns URL, lastmod, changefreq, priority, and optional image/video/alternate-language fields. No proxy, no cookies, no login. To succeed, define your exact filtering rules before running the tool, inspect the initial dataset for missing metadata, and keep your ingestion scope narrow.

Define the operational scope first

Before running any collection job, write down the specific questions your team needs to answer. Determine whether you require every child sitemap or only a top-level summary. List any URL patterns you intend to include or exclude using regular expressions so that your output remains manageable and directly tied to your project objectives.

Practical use cases

These use cases come from Sitemap URL Extractor's published documentation. Each is expanded into an operating pattern so the Sitemap URL Extractor output has a purpose beyond collection.

Use case 1: SEO audits

Outcome: pull every indexable URL a site exposes, then cross-check against Google Search Console coverage.

Question to answer: Which records satisfy the decision rule clearly enough to act on, and which need a second look?

Configure: Start with startUrls (One or more URLs. Accepts: a direct sitemap.xml URL (e.g., https://example.com/sitemap.xml), a sitemap index file, a gzipped sitemap (.xml.gz), or a bare domain (e.g., https://example.com) - the actor will auto-discover the sitemap via robots.txt and common paths.), followSitemapIndexes (If the input points to a sitemap index (), fetch and merge every child sitemap.), urlFilterInclude (Only emit URLs matching this Python regex (case-insensitive). Leave blank to include everything.). Use the narrowest Sitemap URL Extractor values that represent the real task, keep the first result set small, and record why each selected input matters to the Sitemap URL Extractor outcome.

Working method: Write the acceptance rule down before the first record is reviewed, apply it consistently across the batch, and change only one rule or input between batches so any shift in the result has a clear cause.

Deliverable: Create a decision-ready review queue that preserves each raw record and its inclusion or exclusion reason. Include the Sitemap URL Extractor source identifier and the collected fields behind every Sitemap URL Extractor decision.

Stop condition: Pause when the acceptance rule cannot be applied consistently, required fields are frequently missing, or two reviewers reach different conclusions on the same record. Fix the Sitemap URL Extractor question, comparison rule, or configuration before expanding the Sitemap URL Extractor run.

Use case 2: Competitive research

Outcome: map a competitor's product catalog, blog, or news archive.

Question to answer: Where do these groups genuinely differ, and is the difference large enough to change a decision?

Configure: Start with startUrls (One or more URLs. Accepts: a direct sitemap.xml URL (e.g., https://example.com/sitemap.xml), a sitemap index file, a gzipped sitemap (.xml.gz), or a bare domain (e.g., https://example.com) - the actor will auto-discover the sitemap via robots.txt and common paths.), followSitemapIndexes (If the input points to a sitemap index (), fetch and merge every child sitemap.), maxUrls (Maximum number of URLs to extract across all sitemaps. Set to 0 for no limit.). Use the narrowest Sitemap URL Extractor values that represent the real task, keep the first result set small, and record why each selected input matters to the Sitemap URL Extractor outcome.

Working method: Set the comparison rule before seeing the results, group records against that rule rather than after the fact, and treat any record that resists grouping as information, not noise to discard.

Deliverable: Create a comparison matrix with cohort definitions, comparable fields, notable gaps, and decision implications. Include the Sitemap URL Extractor source identifier and the collected fields behind every Sitemap URL Extractor decision.

Stop condition: Pause when a cohort has too few records to compare fairly, the normalization hides a real difference, or the comparison is being driven by one outlier. Fix the Sitemap URL Extractor question, comparison rule, or configuration before expanding the Sitemap URL Extractor run.

Use case 3: Content crawling seed list

Outcome: feed the extracted URLs into a downstream scraper or LLM ingestion pipeline.

Question to answer: Which items are worth the audience's attention, and what would make each one worth sharing over a near-duplicate?

Configure: Start with startUrls (One or more URLs. Accepts: a direct sitemap.xml URL (e.g., https://example.com/sitemap.xml), a sitemap index file, a gzipped sitemap (.xml.gz), or a bare domain (e.g., https://example.com) - the actor will auto-discover the sitemap via robots.txt and common paths.), urlFilterExclude (Drop URLs matching this Python regex (case-insensitive). Applied after the include filter.), followSitemapIndexes (If the input points to a sitemap index (), fetch and merge every child sitemap.). Use the narrowest Sitemap URL Extractor values that represent the real task, keep the first result set small, and record why each selected input matters to the Sitemap URL Extractor outcome.

Working method: Cluster near-duplicate coverage first so the queue is not dominated by one story, then score what remains on audience fit and freshness before making any selection.

Deliverable: Create an editorial brief with selected items, proposed angles, duplicate clusters, source balance, and rejected-item reasons. Include the Sitemap URL Extractor source identifier and the collected fields behind every Sitemap URL Extractor decision.

Stop condition: Pause when the same handful of sources dominate every batch, novelty cannot be judged against recent history, or duplicate stories are being counted as separate items. Fix the Sitemap URL Extractor question, comparison rule, or configuration before expanding the Sitemap URL Extractor run.

Step-by-step workflow for URL extraction

  1. Navigate to Sitemap URL Extractor and prepare your target input list.
  2. Configure your parameters including start URLs, index following preferences, and regex filters.
  3. Execute a small test run to verify that records are parsed correctly before scaling up to full production volumes.

Configure input parameters

  • startUrls: One or more URLs. Accepts: a direct sitemap.xml URL (e.g., https://example.com/sitemap.xml), a sitemap index file, a gzipped sitemap (.xml.gz), or a bare domain (e.g., https://example.com) - the actor will auto-discover the sitemap via robots.txt and common paths.
  • maxUrls: Maximum number of URLs to extract across all sitemaps. Set to 0 for no limit.
  • followSitemapIndexes: If the input points to a sitemap index (), fetch and merge every child sitemap.
  • urlFilterInclude: Only emit URLs matching this Python regex (case-insensitive). Leave blank to include everything.
  • urlFilterExclude: Drop URLs matching this Python regex (case-insensitive). Applied after the include filter.

Understand output fields

  • url: the page URL listed in the sitemap.
  • lastmod: last-modified timestamp reported by the sitemap, if present.
  • changefreq: publisher-declared change frequency (daily, weekly, monthly, …).
  • priority: publisher-declared priority hint (0.0-1.0).
  • source: the sitemap file this URL was extracted from (useful with nested indexes).
  • images: image sitemap entries attached to the URL (when present).
  • videos: video sitemap entries attached to the URL (when present).
  • alternates: hreflang alternate-language URLs (when present).

Operating limitations

  • HTML-only websites with no sitemap cannot be mapped. If robots.txt does not declare a sitemap and common fallback paths are empty, the actor has nothing to parse. Use a full crawler for those cases.
  • JavaScript-built sitemap pages (rare - some single-page apps render /sitemap as HTML) are not XML and are not supported.
  • Extremely deep nested indexes - sitemap trees are expanded recursively, but the total URL count is still bounded by maxUrls to keep runs predictable.
  • Sitemap accuracy depends on the publisher - if the site forgets to list a URL in its sitemap, this actor cannot discover it (there is no HTML fallback crawling here by design).

Frequently asked questions

Do I need proxy configurations?

No. Public sitemaps do not require authentication or proxy routing for retrieval.

How are gzipped files processed?

Compressed .xml.gz sitemaps are unpacked automatically during execution.

What happens if a sitemap returns a 404 error?

An error record is logged, and the actor proceeds with any remaining inputs.

Can I extract specific media links?

Yes, image and video entries are retained when included in the sitemap source data.

How do I limit total extraction volume?

Configure the integer parameter to set an upper bound on returned records.

Resources

● Featured actors

Sitemap URL Extractor

Extract every URL from any site's sitemap.xml with handles sitemap index files (nested sitemaps), gzipped sitemaps, and robots.txt discovery. Returns URL, lastmod, changefreq, priority, and optional image/video/alternate-language fields. No proxy, no cookies, no login.

Run on Apify ↗