Schema Spaghetti untangle your @ids
Home / Screaming Frog CSV

Using a Screaming Frog CSV Upload

Learn how to crawl your site, pull out the JSON-LD from every page, and drop the CSV straight in.

1

Set up a custom extraction

In Screaming Frog, go to Configuration > Custom > Extraction and add an extractor with these settings:

  • Type: XPath
  • Expression: //script[@type="application/ld+json"]
  • Extract: Extract Text

or if you want a more robust solution, you can use this Regex instead:

  • Type: Regex
  • Expression: <script type="application/ld\+json">([\s\S]*?)</script>
  • If a page has more than one JSON-LD block, Screaming Frog puts each one in its own column. That's fine, you'll tick all of them later.

    Menu names can differ slightly between Screaming Frog versions.

2

Crawl the site

Run your crawl as normal. Make sure JavaScript rendering is on if your schema is added by JavaScript.

3

Export the CSV

Open the Custom Extraction tab, then use Export to save the results as a CSV. It will include an Address column (the page URL) and one column per extractor result. If there are lots of schema blocks on the same page, linked using a @graph, then this can sometimes run into tens of rows for things like reviews or products.

4

Upload it here

Open the tool, choose the Screaming Frog CSV tab and upload the file. Pick the column that holds the page URL and tick the columns that hold JSON-LD. The tool will guess these for you. Then click the Start Untangling button.

Upload a CSV now

Rules for CSV files

A CSV is just text, but files can be disguised, so every upload goes through checks before anything is read:

  • The file must end in .csv and be no bigger than 10 MB.
  • Files that contain binary data, or that start like a zip, PDF, program or image, are rejected.
  • The text must be valid UTF-8 and contain no hidden control characters.
  • Files that look like web pages or scripts are rejected.
  • There are limits on rows (5,000), columns (200) and the size of any one cell.
  • Only page URLs starting with http:// or https:// are accepted.
  • Nothing from a CSV is ever run as code or inserted as HTML. It is only ever shown as plain text.
  • The file is read inside your browser and is never uploaded anywhere.
Tip: if a file is rejected, re-export it from Screaming Frog as a plain .csv (not Excel) in UTF-8 format. If you get really stuck, then reach out to me on LinkedIn and I'll help you figure it out.