Start here

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

Option Default Description
Include image sitemap entries On Adds <image:image> elements to each URL entry, listing the image URLs found on that page along with their alt text. Uses the Google Image Sitemap extension namespace.

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:

Section Contents
Header The crawled site URL, the date the crawl ran, and a one-line summary of finding counts by severity.
Findings Grouped by issue category. Each item shows a severity badge (critical, warning, or neutral), a label describing the finding, and the count of affected items. Items within a group include a checkbox for working through the list on paper.
Footer A note that counts are affected items, not pages — one page can appear under several findings, so the numbers do not sum to a page count.

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.