JSON-LD Article: rich-result eligibility
What rich results look like
Google's search results sometimes show a thumbnail + author + date alongside the standard blue-link snippet. These "rich results" are eligible ONLY for pages with valid structured data matching one of Schema.org's types. For a blog post, the type is Article (or its subtypes NewsArticle, BlogPosting).
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Article",
"headline": "Why FastAPI beats Flask in 2026",
"author": {
"@type": "Person",
"name": "Anna Kowalski"
},
"datePublished": "2026-05-20T10:00:00Z",
"image": "https://example.com/og.png",
"publisher": {
"@type": "Organization",
"name": "CodeMentor AI",
"logo": {
"@type": "ImageObject",
"url": "https://example.com/logo.png"
}
}
}
</script>Required fields for Article
Google's rich-result requirements (minimum to be eligible):
headlineβ the article title.imageβ a URL (1200Γ630 minimum).datePublishedβ ISO 8601.authorβ Person or Organization.publisherβ Organization (required for AMP, recommended otherwise).
NewsArticle adds
dateModified, articleBody, articleSection β only fill these if relevant.
Where to put it
Inside <head> or at the start of <body>. The script tag has type="application/ld+json" (NOT application/json β that's different). Browsers ignore the script (it's not JS). Google reads it.
Test before shipping
Paste your URL into Google's "Rich Results Test" tool. It tells you which type your data qualifies for + flags missing required fields. Run before deploy.
Sign up to start coding
Theory is open to everyone. The interactive editor, live preview, and check are unlocked with a 7-day free trial β card required, cancel anytime.
Sign up β free trial βFirst 10 lessons in each track are free. No card needed for those.