Skip to main content
Scan your sitemap and report which pages are missing freshness signals (date markup) that AI assistants need.

Overview

audit_freshness analyzes your blog posts for date markup:
  • Sitemap scanning — reads your sitemap.xml to find all pages
  • Date markup detection — checks for datePublished and dateModified schema
  • Batch processing — scans up to 50 URLs by default
  • Missing page report — identifies which posts lack freshness signals
This tool is completely free and works without an API key.

Parameters

sitemap_url
string
required
URL of your sitemap.xml file. Can be the full sitemap URL or just your domain (will try common sitemap locations).
limit
number
default:"50"
Maximum number of URLs to scan from the sitemap. Set higher for larger blogs (up to 200).

Example prompts

Check freshness across my blog
Which posts are missing date markup?
Audit freshness at https://example.com/sitemap.xml

Response structure

The tool returns a JSON object with:
total_urls
number
Total number of URLs scanned from sitemap
with_freshness
number
Number of URLs with proper date markup
without_freshness
number
Number of URLs missing date markup
percentage
number
Percentage of URLs with freshness signals (0-100%)
missing_urls
array
List of URLs missing date markup (for fixing)
scan_date
string
When the scan was performed

Usage example

# How the tool is called in the MCP server
@mcp.tool(annotations=READ_ONLY)
def audit_freshness(sitemap_url: str, limit: int = 50) -> str:
    """Check how many of your blog posts have proper date markup."""
    client = _get_client()
    return _call(client.freshness_audit, sitemap_url, limit=limit)

What is freshness?

Freshness signals tell AI assistants when content was published and last updated. This helps them:
  • Prioritize recent content in answers
  • Understand if information might be outdated
  • Cite publication dates in responses
  • Track content updates over time

Required markup

AI assistants look for these schema.org properties:
<meta property="article:published_time" content="2024-01-15T10:00:00Z" />
<meta property="article:modified_time" content="2024-02-20T14:30:00Z" />
Or in JSON-LD format:
{
  "@type": "Article",
  "datePublished": "2024-01-15T10:00:00Z",
  "dateModified": "2024-02-20T14:30:00Z"
}

When to use

Use audit_freshness for:
  • Blog audits — check all posts at once for missing date markup
  • Content freshness campaigns — identify which posts need updates
  • New blog setup — verify date markup is implemented correctly
  • Regular monitoring — track freshness signal adoption over time
Run this after setting up your blog to ensure all posts have proper date markup from the start.

Fixing missing freshness

For each URL missing date markup, use generate_freshness_code to create the markup snippet:
Generate date markup for https://example.com/blog/post
This returns ready-to-deploy HTML/JSON-LD code you can add to your post.

Next steps