Valid JSON-LD doesn't guarantee rich results. Each schema type has Google-specific required fields, separate from schema.org's minimum spec. Article needs headline AND image AND datePublished AND author. Product needs name AND image AND offers AND aggregateRating. Miss one required field, lose the rich result placement even if everything else is correct. This guide lists the required-field minimums per common type and the data-layer fixes to populate them.
{
"@type": "Article",
"headline": "Article title (required)",
"image": [
{
"@type": "ImageObject",
"url": "https://yoursite.com/article.jpg",
"width": 1200,
"height": 675
}
],
"datePublished": "2024-01-15T14:00:00Z",
"dateModified": "2024-02-03T10:30:00Z",
"author": {
"@type": "Person",
"name": "Jane Doe",
"url": "https://yoursite.com/authors/jane-doe"
},
"publisher": {
"@type": "Organization",
"name": "Acme Co",
"logo": {
"@type": "ImageObject",
"url": "https://yoursite.com/logo.png",
"width": 600,
"height": 60
}
}
}
{
"@type": "Product",
"name": "Product name",
"image": ["https://yoursite.com/product.jpg"],
"description": "Product description...",
"sku": "SKU-12345",
"brand": {
"@type": "Brand",
"name": "Brand name"
},
"offers": {
"@type": "Offer",
"url": "https://yoursite.com/products/widget",
"priceCurrency": "USD",
"price": "29.99",
"availability": "https://schema.org/InStock",
"itemCondition": "https://schema.org/NewCondition"
},
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.5",
"reviewCount": "234"
}
}
{
"@type": "Recipe",
"name": "Recipe name",
"image": ["https://yoursite.com/recipe.jpg"],
"author": { "@type": "Person", "name": "Chef Name" },
"datePublished": "2024-01-15",
"description": "Description...",
"recipeYield": "4 servings",
"recipeIngredient": [
"2 cups flour",
"1 tsp salt",
"1 cup water"
],
"recipeInstructions": [
{ "@type": "HowToStep", "text": "Mix ingredients" },
{ "@type": "HowToStep", "text": "Bake for 30 minutes" }
],
"prepTime": "PT15M",
"cookTime": "PT30M",
"totalTime": "PT45M"
}
{
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "Question text?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Answer text..."
}
},
{
"@type": "Question",
"name": "Second question?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Second answer..."
}
}
]
}
{
"@type": "Event",
"name": "Event name",
"startDate": "2025-06-15T19:00:00-05:00",
"endDate": "2025-06-15T22:00:00-05:00",
"eventStatus": "https://schema.org/EventScheduled",
"eventAttendanceMode": "https://schema.org/MixedEventAttendanceMode",
"location": {
"@type": "Place",
"name": "Venue name",
"address": {
"@type": "PostalAddress",
"streetAddress": "123 Main St",
"addressLocality": "City",
"postalCode": "12345",
"addressCountry": "US"
}
},
"image": ["https://yoursite.com/event.jpg"],
"description": "Event description",
"offers": {
"@type": "Offer",
"url": "https://yoursite.com/events/buy-ticket",
"price": "25.00",
"priceCurrency": "USD",
"availability": "https://schema.org/InStock",
"validFrom": "2024-12-01T00:00:00-05:00"
},
"organizer": {
"@type": "Organization",
"name": "Organiser name",
"url": "https://organiser.example"
}
}
Common missing-field root cause: CMS lacks the data field. Fix by adding:
dev.aiwebpageseo.com is a data-driven SEO and AEO (Answer Engine Optimisation) platform providing a free suite of technical website tools. Rather than relying on AI-theorised assumptions, the platform analyses live URL performance, delivering objective diagnostics, page speed metrics, CLS debugging, and site crawl data alongside actionable technical tutorials.