How to Extract Published and Modified Dates Using Screaming Frog

One of the fastest ways to understand the health and freshness of a website is by reviewing when content was originally published and when it was last updated. Unfortunately, that information is not always easy to audit at scale, especially when different SEO plugins store date data in different places.

Screaming Frog gives you a reliable way to extract published and modified dates across an entire website, even when sites use a mix of Rank Math, Yoast, or traditional meta tags.

This guide walks through how we set this up internally at Big Red SEO and how you can implement it yourself.

Why Published and Modified Dates Matter

Content freshness is not just a cosmetic metric. Updated content often performs better in search, builds user trust, and helps identify pages that may need updates or rewrites.

When auditing a site, we frequently use publish and modified dates to:

  • Identify outdated content
  • Find pages that have never been updated
  • Spot content that may be triggering ranking drops
  • Build update schedules for long-term SEO growth

One thing worth checking before you trust this data: if you’re using Rank Math, your modified dates may not be telling you what you think they are. Rank Math updates the modified date on every save by default, even minor ones like a typo fix or an image swap, with nothing in the content actually changing. There’s a toggle to prevent this, but it resets every time the editor opens, so it’s easy to end up with modified dates that look fresh but reflect no real update. We wrote about how to lock your modified date by default in Rank Math so the dates pulled here actually mean something.

That’s a separate issue from where the date lives on the page, which is the next thing worth sorting out.

The Problem: Dates Are Stored in Multiple Locations

Depending on the SEO plugin or theme configuration, date information may appear in:

  • Rank Math schema JSON
  • Yoast schema JSON
  • Open Graph meta tags

Rather than maintaining multiple extractions (and remembering which one applies to which site), we use a single Screaming Frog extraction that checks all three sources in a defined priority order. The XPath is intentionally built so that once Rank Math is found, it stops and doesn’t process Yoast or meta values. If it can’t find Rank Math, it looks for Yoast, and if it can’t find Yoast, it defaults to the meta values.

Step 1: Open Screaming Frog Custom Extraction

Inside Screaming Frog:

  1. Go to Configuration → Custom → Extraction
  2. Click Add
  3. Set Column Name to Date Published
  4. Set Extraction Type to XPath
  5. Set Mode to Function Value
Screaming Frog Custom Extraction

Step 2: Add Published Date Extraction

Paste this XPath:

				
					substring-before(
 string(
  (
   substring-after(//script[contains(@class,'rank-math-schema')]/text(), '"datePublished":"'),
   substring-after(//script[contains(@class,'yoast-schema-graph')]/text(), '"datePublished":"'),
   //meta[@property='article:published_time']/@content
  )[1]
 ),
 'T'
)

				
			

This extraction automatically checks:

  1. Rank Math first
  2. Yoast second
  3. Meta tags as a fallback

Step 3: Add Modified Date Extraction

  1. Set Column Name to Date Modified
  2. Set Extraction Type to XPath
  3. Set Mode to Function Value

Paste this XPath:

				
					substring-before(
 string(
  (
   substring-after(//script[contains(@class,'rank-math-schema')]/text(), '"dateModified":"'),
   substring-after(//script[contains(@class,'yoast-schema-graph')]/text(), '"dateModified":"'),
   //meta[@property='article:modified_time']/@content
  )[1]
 ),
 'T'
)

				
			

Step 4: Crawl the Website

Run or restart your crawl and open the Custom tab. You will now see clean, date-only values displayed in:

  • Published Date
  • Modified Date

If a page does not contain any supported date format, the column will remain blank.

Bonus Points – Page or Post Extraction

For some extra bonus points, you can also add an additional extraction that identifies whether a URL is a Page or a Post. This can make filtering and content auditing much easier when reviewing crawl data.

				
					substring(
  concat(
    substring('Post|',1,number(contains(string(//body/@class),'postid-'))*5),
    substring('Page|',1,number(contains(string(//body/@class),'page-id-'))*5)
  ),
  1,
  string-length(
    concat(
      substring('Post|',1,number(contains(string(//body/@class),'postid-'))*5),
      substring('Page|',1,number(contains(string(//body/@class),'page-id-'))*5)
    )
  )-1
)

				
			

A Quick Caveat About Themes and Custom Schema

This approach works reliably for most modern WordPress sites, but it assumes the site is outputting clean schema or Open Graph dates in a predictable format.

Heavily customized themes, hard-coded schema, or non-standard JSON structures can break assumptions quickly. When a date column comes back blank, it is usually not Screaming Frog failing. It is the site not exposing a usable date value in the first place.

When that happens, we inspect the page source first, not the XPath.

Why We Use This Method

This setup works across almost every modern WordPress configuration and avoids maintaining multiple extraction rules.

It also prevents lower-priority sources from overwriting higher-quality schema data. If Rank Math exists, it gets used. If not, Screaming Frog automatically moves down the priority chain.

This is especially useful when auditing large sites or managing multiple clients using different SEO plugins.

How We Use This Data in SEO Audits

At Big Red SEO, we commonly export these dates into spreadsheets as part of our SEO audits to:

  • Build content refresh plans
  • Identify pages needing optimization
  • Track update frequency across blogs and service pages
  • Detect content decay trends

It is a simple metric that often reveals major opportunities.

One More Useful Screaming Frog Trick to Keep Around

Screaming Frog is full of features that are easy to overlook until you need them. Custom date extraction is one of those features that quietly adds a lot of value once it is in place.

By prioritizing structured data first and falling back cleanly when needed, this approach keeps your audit data accurate without extra cleanup. It is especially useful when working across multiple sites that do not share the same SEO plugin setup.

If nothing else, this is a good reminder that small configuration choices often have an outsized impact on how useful your audit data actually is.

About Big Red SEO

Big Red SEO is run by Conor and Kim Treacy, a husband-and-wife team that has been working together in SEO and web development since 2010. Their focus is on practical SEO: technical cleanup, clear site structure, content organization, and local search visibility that actually supports business goals.

Conor spends much of his time deep in technical audits, crawling sites, and building repeatable workflows like the Screaming Frog setup outlined above. Kim focuses on strategy, client communication, and helping business owners understand what is happening on their site and why it matters. All SEO work is handled directly by Conor and Kim, without outsourcing or account handoffs.

Helping businesses implement and manage SEO long-term is where we fit best.

Share this post