This setup creates one Published Date column and one Modified Date column in Screaming Frog. Each column automatically checks multiple sources in priority order, ensuring the most reliable value is used without being overwritten.
Priority order used:
- Rank Math JSON-LD
- Yoast JSON-LD
- Open Graph meta tags
If a higher-priority source exists, Screaming Frog will use it and skip the rest.
Step 1: Open Custom Extraction
- Open Screaming Frog.
- Navigate to Configuration → Custom → Extraction.
- Click Add.
Step 2: Add Published Date Extraction
Field Name: Published Date.
Extraction Type: XPath
Mode: Function Value
Add the following to the XPath code section
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'
)
Step 3: Add Modified Date Extraction
Repeat the steps above using:
Field Name: Modified Date
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'
)
These will return date-only values (YYYY-MM-DD).
Running the Crawl
- Start or re-run your crawl.
- Open the Custom tab to view extracted dates.
- Export data as needed for reporting or auditing.
Notes
- Works across Posts, Pages, and CPTs
- Handles mixed SEO plugin environments automatically
- Pages without any supported date source will return blank values
- Both extractors can be saved inside a Screaming Frog profile for reuse
This is the cleanest, lowest-maintenance approach for long-term audits.