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.
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.
Crawl the site
Run your crawl as normal. Make sure JavaScript rendering is on if your schema is added by JavaScript.
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.
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.
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
.csvand 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://orhttps://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.