Structured Data and Schema Markup Guide
Structured data is a standardized format for providing information about a page and classifying its content. By adding structured data markup to your website, you help search engines understand the context and meaning of your content, which enables rich search results like star ratings, recipe cards, product prices, and FAQ accordions. This article explains the most common schema types and shows you how to implement them using JSON-LD, Google’s recommended format.
What Is JSON-LD?
JSON-LD (JavaScript Object Notation for Linked Data) is a lightweight format for encoding structured data. It is placed in a script tag in the head or body of your HTML page and is completely separate from the visible content. This separation makes it easy to add, modify, or remove without touching your page layout. Every JSON-LD block starts with an @context (set to https://schema.org) and an @type that specifies what kind of thing the page describes.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Article",
"headline": "Structured Data and Schema Markup Guide",
"author": {
"@type": "Person",
"name": "Jane Doe"
},
"datePublished": "2026-06-15",
"dateModified": "2026-07-08",
"description": "A comprehensive guide to implementing structured data with JSON-LD",
"image": "https://example.com/images/structured-data-guide.jpg",
"publisher": {
"@type": "Organization",
"name": "Joy Bindroo",
"logo": {
"@type": "ImageObject",
"url": "https://example.com/logo.png"
}
}
}
</script>
Each property in the JSON-LD object maps directly to a Schema.org property. The author and publisher properties are themselves nested schema objects with their own @type — this nesting allows you to describe complex relationships accurately. Including datePublished and dateModified helps Google show the freshness of your content in search results. The image property enables Google to display a thumbnail alongside the search snippet.
Article and BlogPosting
For news articles and blog posts, use the Article type or its subtype BlogPosting. These types enable Google to show the article title, author image, publication date, and breadcrumb in a rich result called a top stories carousel. Include as many properties as you can: headline, author, publisher, date published, date modified, image, and a description. The more properties you fill, the richer your search appearance can be.
Product Schema
For e-commerce pages, the Product schema is essential. It enables Google to display price, availability, review ratings, and shipping information directly in search results. This can dramatically increase click-through rates — products with rich snippets see 30-50% higher CTR than those without. Include the product name, description, brand, SKU, offers with price and currency, and aggregate ratings if available.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Product",
"name": "Wireless Bluetooth Headphones",
"description": "Noise-canceling over-ear headphones with 30-hour battery life",
"sku": "WBH-2026-01",
"brand": {
"@type": "Brand",
"name": "SoundPro"
},
"offers": {
"@type": "Offer",
"priceCurrency": "USD",
"price": "79.99",
"availability": "https://schema.org/InStock",
"url": "https://example.com/products/wireless-headphones"
},
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.5",
"reviewCount": "234"
}
}
</script>
FAQPage Schema
FAQPage schema enables your frequently asked questions to appear directly in search results as an expandable accordion. This not only takes up more visual space in search results but also answers users’ questions before they click, which can increase trust and click-through rate. Each question is a Question object nested inside the main FAQPage object, and each has an acceptedAnswer property containing the answer text.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "What is structured data?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Structured data is a standardized format for providing information about a page and classifying its content, enabling rich search results."
}
},
{
"@type": "Question",
"name": "What format does Google recommend?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Google recommends JSON-LD format embedded in a script tag."
}
}
]
}
</script>
LocalBusiness Schema
For brick-and-mortar businesses, LocalBusiness schema helps Google display your business name, address, phone number, hours, and reviews in the local search results and Knowledge Panel. You can also specify sub-types like Restaurant, Doctor, Store, or School for more specific categorization. Include address with @type: PostalAddress, geo coordinates, openingHoursSpecification, and telephone.
BreadcrumbList Schema
BreadcrumbList schema turns your navigation breadcrumbs into rich search result breadcrumbs, showing users exactly where a page sits in your site hierarchy. This is straightforward to implement and has a visual impact on search snippets, making your result look more authoritative.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [
{
"@type": "ListItem",
"position": 1,
"name": "Home",
"item": "https://example.com/"
},
{
"@type": "ListItem",
"position": 2,
"name": "Blog",
"item": "https://example.com/blog/"
},
{
"@type": "ListItem",
"position": 3,
"name": "Structured Data Guide",
"item": "https://example.com/blog/structured-data-guide/"
}
]
}
</script>
Testing and Validation
Always validate your structured data before deploying. Google provides the Rich Results Test for testing specific rich result types, and the Schema Markup Validator for general validation. After deploying, monitor the “Enhancements” section in Google Search Console to see which rich result types are detected and whether any items have errors. Common mistakes include missing required properties, incorrect nesting, and mismatched @type values. Remember that structured data does not guarantee rich results — it only enables them. Google decides whether to display rich results based on its own quality assessment.
