Christopher Abraham home
Christopher Abraham

SEO consultant: technical SEO, indexing, schema, and AI search

Screaming Frog custom extraction recipes for sitewide SEO audits

The standard Screaming Frog tabs answer the standard questions. Custom extraction answers yours. With a few lines of XPath or regex, every URL in a crawl gets a new column holding exactly the fact you need, and a question like "which templates are missing a canonical?" becomes a sort and a filter. These are the extractors I load into almost every audit.

Setting it up

Custom extraction needs a paid licence. Open Configuration > Custom > Custom Extraction and click Add. Each extractor gets a name, which becomes its column heading, a type, and an expression. You can run up to 100 extractors in one crawl.

There are three types:

For XPath and CSSPath you then choose what to return: the whole element, its inner HTML, its text, or, with Function Value, the result of a function such as a count. If you'd rather not write expressions at all, the visual extraction browser lets you click an element on a sample page and suggests the expression for you.

One setting matters more than any recipe. Screaming Frog extracts from the raw HTML unless JavaScript rendering is on, in which case it reads the rendered page. On a React or Next.js site, run the same extractors in both modes and compare. Any column that fills in only after rendering is content that depends on JavaScript to exist.

Heading recipes

Indexing and canonical recipes

Structured data recipes

JSON-LD lives inside a script tag as JSON, so element selectors can't reach the fields inside it. Screaming Frog's own guidance is to use regex for any JSON in the code.

Content and authorship recipes

Tracking recipes

Reading the results

A column of numbers is only useful once it's grouped. Export the crawl, add a column for the URL pattern or template, and pivot. When every product page reports two H1s and every blog post reports one, the cause is in the product template, and one change fixes thousands of URLs. That is the habit that turns a crawl from a list of warnings into a short list of causes.

Check a few rows by hand before you trust a recipe. View the source of one page, confirm the extracted value matches, and adjust the expression if a theme uses different markup from the one you expected.

Where this fits

Custom extraction is how I make a full crawl answer the specific questions in a sitewide technical SEO engagement. For the licence question itself, read whether a Screaming Frog licence is worth it, and for two problems these recipes surface constantly, see finding near duplicates and multiple H1s.

Sources