Skip to content

Node CLI · v1.0.0 · MIT

Bring your Screaming Frog crawl with you

crawlcove-sf-import converts a Screaming Frog SEO Spider crawl export into the Crawl Cove crawl export format. In Screaming Frog, crawl the site and export Internal, All; that writes internal_all.csv. Run this tool on it and you get a JSON export that validates against crawlcove-export-spec 1.0.0, so a Frog crawl can be loaded into the MCP server for an AI assistant to query, diffed against a Crawl Cove crawl of the same site, or fed to anything else built on the spec. The mapping report goes to stderr so the JSON on stdout stays clean, and it names every column it mapped, every field this export could not fill, and every row it skipped.

Free · MIT-licensed · README checked September 2026

Install and run

# one-off, nothing installed (Node 18+):
npx github:CrawlCove/crawlcove-sf-import internal_all.csv -o crawl.json

# global command, from the release tarball:
npm install -g https://github.com/CrawlCove/crawlcove-sf-import/archive/refs/tags/v1.0.0.tar.gz
sf-import --version

Options

# Screaming Frog: File > Export > Internal > All  (writes internal_all.csv)
sf-import <file> [options]

  -o, --out <path>     write the JSON export here (default: stdout)
  --run-id <n>         auditRunId to stamp on the export (default 1)
  --mapping            print only the mapping report (JSON), no export
  --quiet              no mapping summary on stderr

The README in the repo is the authoritative reference; the commands above are copied from it as of September 2026. If they disagree, the README is newer.

What carries over, and what does not

  • Carried over: url, finalUrl, statusCode, fetchError, contentType, depth, indexable, title and its length, meta description and its length, canonical, htmlLang, robotsMeta, xRobotsTag, h1Count, wordCount, internal and external link counts, responseTimeMs, byteSize and redirectHops.
  • Column names are matched after normalising, so the export from any recent Frog version works: Content or Content Type, H1-1 or h1 - 1, Size or Size (bytes), Redirect URI or Redirect URL.
  • indexable is read from the Indexability column, or derived from status 200 plus no noindex in Meta Robots or X-Robots-Tag when that column is missing, the same rule Crawl Cove uses.
  • Not in the Internal export, so left null and listed: imageCount, imagesMissingAlt, schemaBlocks and hreflangCount live in the Frog's Images, Structured Data and Hreflang tabs.
  • Never comparable, so left empty rather than misleading: contentFingerprint. The Frog's Hash is an MD5 of the whole response; Crawl Cove fingerprints visible content.
  • Rows whose address is not http(s), such as mailto: and tel:, are skipped and listed by line number.

Limits worth knowing

  • Internal export only. The Images, Hreflang and Structured Data tabs are separate exports the tool does not read.
  • h1Count is capped at 2, because the Frog exports at most two H1 columns; redirectHops is 1 or 0, because the Internal export records one hop. Use the Frog's Redirect Chains report for full chains.
  • rendered is always false and findingsCount is always 0: Crawl Cove's checks have not run on this data. Load the export into Crawl Cove or the MCP server to get findings.
  • Configuration files are not converted. A .seospiderconfig is Java serialisation, not text; the tool recognises one and exits 2. The README maps each setting that matters to its Crawl Cove equivalent so you can re-create them by hand.

Works with Crawl Cove

Screaming Frog import covers the checks it lists above. The desktop app runs the full site audit: every page, every finding ranked by impact, history over time and Search Console data alongside. See the desktop checker or compare the plans.

Frequently asked questions

Does this import my Screaming Frog crawl into the Crawl Cove desktop app?
It converts the crawl into the format the desktop app exports, which is the format the open-source tools around it read. Today that means you can load the result into the MCP server, validate it, diff it against a Crawl Cove crawl of the same site, or script against it. Crawl Cove itself crawls the site fresh, which is the point of switching: its checks run on live pages, not on a spreadsheet.
Which Screaming Frog export do I need?
The Internal tab with the All filter: File, Export, Internal, All in the Frog, which writes internal_all.csv. Other tabs are separate exports with different columns and are not read. Column names are normalised, so exports from any recent Frog version work.
Can it convert my .seospiderconfig?
No. A Frog configuration file is Java serialisation rather than a text format, so the tool recognises one and stops with exit code 2. The README carries a table mapping each setting that matters, from crawl limits and include or exclude patterns to user agent, speed, rendering and authentication, to where it lives in Crawl Cove, so re-creating them takes minutes rather than a rebuild.
Why is the content fingerprint empty?
Because the two tools measure different things. Screaming Frog's Hash column is an MD5 of the entire response, which changes when a timestamp in the footer does. Crawl Cove's fingerprint is a 64-bit hash of the visible content. They can never agree, so the field is left empty rather than filled with a number that looks comparable and is not.
Why does every page show zero findings?
Because Crawl Cove's checks have not run on this data; the tool converts columns, it does not audit. findingsCount is 0 and rendered is false on every page. Crawl the site in Crawl Cove, or load the converted export into the MCP server and ask it, to get findings.

Stop guessing.
Start fixing.

Crawl Cove runs on your machine, connects to your real ranking data, and tells you exactly what to fix first. No per-feature paywalls, no spreadsheets, no guesswork.

28 days risk-free · No card required