JSON-LD Schema Guide
Understand how Schema.org vocabulary works with JSON-LD, including types, properties, nesting, and how Google uses schema for rich results.
JSON-LD is the format. Schema.org is the vocabulary. Together, they form the most powerful way to communicate structured information to search engines. This guide explains how Schema.org types and properties work within JSON-LD, and how to choose the right schema for your content.
Schema.org: The Vocabulary
Schema.org is a collaborative project between Google, Bing, Yahoo, and Yandex that defines a shared vocabulary for structured data. It includes over 800 types and 1,400 properties covering everything from articles and products to medical conditions and software applications.
When you write "@type": "Article" in your JSON-LD, you’re referencing the Article type from Schema.org’s vocabulary.
Type Hierarchy
Schema.org types follow an inheritance hierarchy. Every type inherits properties from its parent types:
Thing
├── CreativeWork
│ ├── Article
│ │ ├── NewsArticle
│ │ ├── BlogPosting
│ │ └── TechArticle
│ ├── WebPage
│ │ ├── FAQPage
│ │ └── QAPage
│ └── SoftwareApplication
├── Organization
│ └── LocalBusiness
├── Person
├── Product
└── Event
A BlogPosting inherits all properties from Article, which inherits from CreativeWork, which inherits from Thing. This means a BlogPosting can use properties like headline (from Article), author (from CreativeWork), and name (from Thing).
Choosing the Right Type
| Content | Recommended Type | Rich Result |
|---|---|---|
| Blog post | Article or BlogPosting |
Article rich result |
| Product page | Product |
Price, rating, availability |
| FAQ section | FAQPage |
Expandable Q&A dropdowns |
| Business listing | LocalBusiness |
Knowledge panel, map |
| Event page | Event |
Date, location, tickets |
| Recipe | Recipe |
Cook time, calories, rating |
| How-to guide | HowTo |
Step-by-step instructions |
| Software/app | SoftwareApplication |
Rating, price, OS |
Nesting Objects
JSON-LD supports nesting to represent relationships between entities:
{
"@context": "https://schema.org",
"@type": "Article",
"headline": "JSON-LD Schema Guide",
"author": {
"@type": "Person",
"name": "Sanjay Samanta",
"url": "https://opengraphgenerator.com/authors/sanjay-samanta"
},
"publisher": {
"@type": "Organization",
"name": "Open Graph Generator",
"logo": {
"@type": "ImageObject",
"url": "https://opengraphgenerator.com/logo.png"
}
}
}
Each nested object has its own @type and properties, creating a graph of connected entities that search engines can traverse.
Required vs Recommended Properties
Google classifies schema properties into three tiers:
- Required — Must be present for the rich result to be eligible. Missing required properties means no rich result.
- Recommended — Improve the quality and appearance of rich results. Google strongly encourages including them.
- Optional — Additional properties recognized by Schema.org but not specifically used by Google for rich results.
Always check Google’s structured data documentation for current required/recommended property lists per type.
Multiple Schemas on One Page
A single page can contain multiple JSON-LD blocks. For example, a blog post page might include:
<!-- Article schema -->
<script type="application/ld+json">
{ "@context": "https://schema.org", "@type": "Article", ... }
</script>
<!-- Breadcrumb schema -->
<script type="application/ld+json">
{ "@context": "https://schema.org", "@type": "BreadcrumbList", ... }
</script>
<!-- FAQ schema -->
<script type="application/ld+json">
{ "@context": "https://schema.org", "@type": "FAQPage", ... }
</script>
Each block is independent and can describe different aspects of the same page.
Validation
Always validate your schema implementation before deploying:
- Google Rich Results Test — Official Google validator.
- Schema Inspector — Our built-in validation tool.
- How to Validate JSON-LD — Complete validation workflow.
Related Resources
- What Is JSON-LD? — Introduction to the format.
- Schema.org JSON-LD Examples — Additional real-world examples.
- JSON-LD Examples: Complete Guide — Copy-paste snippets.
- Schema.org JSON-LD: Developer’s Guide — Comprehensive pillar guide.