Export
Crawl data that stays locked inside the application is only half useful. Consuela provides four export paths, each shaped for a different deliverable: CSV for spreadsheet analysis, XML sitemaps for search engines, a printable punch list for client handoff, and a dedicated extraction CSV for custom rules.
CSV export
The results table offers two buttons for CSV export. Both produce the same columns in the same order regardless of which columns are currently visible in the table — hiding a column is a display choice, and silently dropping data from an export would mean getting different files depending on view settings.
Export selected
When one or more rows are checked, the Export selected button appears in the table footer. It builds the CSV client-side from the checked rows and prompts you to save the file. Use this when you need a subset of the crawl — a batch of pages with a particular status code, a group of URLs you have filtered down to, or the handful of rows you want to hand to a colleague.
Export all
The Export all button is always visible in the table footer, regardless of selection. For completed crawl sessions it streams the CSV directly from the Rust backend, which writes the file in batches without loading the entire dataset into memory. A crawl of a hundred thousand pages exports without issue because the backend never holds more than one batch at a time.
For a live crawl that has not yet been persisted to a session, there is nothing in the database for the backend to stream, so the export falls back to the same client-side path that Export selected uses. The result is identical; only the mechanism differs.
Column parity
Both export paths produce exactly the same columns. A CI check
(lint:csv) compares the two column lists position
by position and fails the build if they diverge. This exists because the two
exporters are maintained separately — one in the React frontend, one in the
Rust consuela-export crate — and a column added to
only one of them would mean that pressing a different button produces a
different file.
XML Sitemap
The Generate sitemap button is in the analysis panel header. It opens a dialog where you choose a save location and configure generation options, then writes a standards-compliant XML sitemap from the crawled pages.
What gets included
Only pages that returned a 2xx status code are included by default. Pages that returned 4xx or 5xx responses are excluded — a sitemap that advertises error pages actively harms the site it describes.
Options
Large sites
The sitemaps.org specification limits a single sitemap file to 50,000 URLs.
When a crawl exceeds that threshold, Consuela automatically generates
multiple sitemap files and a sitemap index that references them. The
individual files are named with a numeric suffix
(sitemap_1.xml,
sitemap_2.xml, and so on) and the index is saved
as sitemap_index.xml alongside them.
Punch list
The Punch List tab in the analysis panel produces a printable deliverable — a structured summary of every finding from the crawl, ready to hand to a client or attach to a report. Use the Print or save as PDF button at the top of the tab, which opens the browser's native print dialog. On macOS, Windows, and Linux desktops, that same dialog offers a "Save as PDF" option, so no separate PDF export is needed.
Structure
The printed punch list follows a fixed layout:
The sheet always prints on a white background regardless of the app's current theme. Print-specific token overrides handle the colour switch, so the punch list reads cleanly on paper without manual adjustment.
Custom extraction export
The Custom Extraction tab in the analysis panel has its own Export CSV button. This export is separate from the main results table CSV because the data shape is different: extraction results use one row per extracted value rather than one column per rule.
The one-row-per-value layout exists because a single extraction rule can
match multiple elements on the same page. A CSS selector targeting every
<h2> on a page with six of them produces six
values, and a spreadsheet cell cannot hold a list without introducing a
separator that occurs in real extracted text. Each row in the CSV identifies
the page URL, the rule that matched, and the extracted value, so
multi-match results expand naturally into rows rather than being flattened
into a single cell.
The default filename is
consuela-extractions.csv. The export runs through
the Rust backend, so it handles large result sets without loading everything
into the frontend's memory.