JSON-LD Structured Data: Complete Implementation Guide
- January 15, 2025
- Schema and Structured Data, Technical SEO
Understanding JSON-LD
JSON-LD (JavaScript Object Notation for Linked Data) is Google's recommended format for implementing structured data markup. Unlike Microdata or RDFa that embed markup within HTML elements, JSON-LD uses a script block that can be placed anywhere on the page, making it easier to implement and maintain. This separation of data from presentation means developers can add structured data without modifying existing HTML, and content management systems can generate it programmatically without complex template changes.
Core Schema Types for SEO
While schema.org defines hundreds of types, certain schemas directly impact search appearance. Organization and LocalBusiness schemas establish entity identity and enable knowledge panels. Article, NewsArticle, and BlogPosting schemas qualify content for Top Stories and article-specific features. Product and Offer schemas enable product rich results with pricing, availability, and reviews. FAQ and HowTo schemas create expandable results that dominate SERP real estate. BreadcrumbList improves how navigation paths display in search results.
| Schema Type | Rich Result Enabled | Key Properties |
|---|---|---|
| Organization | Knowledge Panel, Logo | name, logo, url, sameAs, contactPoint |
| LocalBusiness | Local Pack, Knowledge Panel | name, address, geo, openingHours, telephone |
| Product | Product Rich Results | name, image, description, offers, aggregateRating |
| Article | Article Carousels | headline, image, datePublished, author, publisher |
| FAQPage | FAQ Rich Results | mainEntity (Question/Answer pairs) |
| HowTo | How-To Rich Results | name, step, totalTime, supply, tool |
| Review | Review Snippets | itemReviewed, reviewRating, author |
Implementation Best Practices
Place JSON-LD in the head section or end of body for clean separation from content. Use absolute URLs for all @id and url properties. Implement the most specific type available (LocalBusiness subtypes like Restaurant rather than generic LocalBusiness). Include all required properties for your target rich result, as missing required fields prevent rich results from appearing. Use Google's Rich Results Test to validate markup before deployment. Avoid marking up content not visible to users, as this violates Google's guidelines and can result in manual actions.
Nesting and Entity Relationships
Complex schemas benefit from properly nested entities. An Article schema should nest Author (Person or Organization), Publisher (Organization), and optionally ImageObject for the article image. Product schemas nest Offer for pricing and AggregateRating for reviews. Use @id to create references between entities, allowing you to define an Organization once and reference it from multiple Article schemas. This creates a knowledge graph structure that helps search engines understand entity relationships across your site.
Testing and Monitoring Structured Data
Google's Rich Results Test validates markup and shows which rich results you're eligible for. Schema.org's validator checks syntax compliance with the broader specification. Google Search Console's Enhancements reports show structured data performance, errors, and warnings across your site. Monitor for common issues: missing required properties, incorrect data types (string vs number), outdated schema (deprecated properties), and discrepancies between markup and visible content. After fixing errors, use Search Console to request revalidation of affected pages.
About SEO ProCheck
Technical SEO consulting and GEO strategy with 20 years of enterprise experience. Case studies, resources, and tools for search and AI visibility.
Work With Me
Technical SEO audits, GEO strategy, site migrations, and international SEO. Hourly consulting for teams who need hands-on support, not just reports.
Subscribe to our newsletter!
Recent Posts
- No Social Schema December 7, 2025
- Missing Social Profile Links December 7, 2025
- Social Image Wrong Size December 7, 2025
