GuidesApril 13, 20268 min read

Structured Data and JSON-LD: The Developer's Guide to Rich Results

JSON-LD structured data earns FAQ rich results, breadcrumbs, pricing cards, and HowTo snippets in Google. Here's exactly which schemas to implement and how.

Structured data tells Google what your page is about — in a machine-readable format. When Google understands your content, it can display rich results: FAQ dropdowns, breadcrumb trails, pricing cards, recipe cards, HowTo steps. These earn more clicks than plain blue links.

The format: JSON-LD

JSON-LD (JavaScript Object Notation for Linked Data) is Google's preferred format. It's a <script type="application/ld+json"> block in your HTML containing a JSON object that describes the page's content using schema.org vocabulary.

Priority schemas (implement these first)

1. Organization

Who you are. Emit once in the root layout. Includes name, URL, description, and social profiles.

Where this page sits in your site hierarchy. Emit on every non-homepage page. Google displays these as clickable breadcrumb trails in search results.

3. FAQPage

Questions and answers visible on the page. Google can display these as expandable FAQ dropdowns directly in search results — massively increasing your SERP real estate.

4. BlogPosting

For blog posts. Includes datePublished, dateModified, author, publisher, wordCount. Google uses these to display article dates and author info.

Advanced schemas (implement when relevant)

  • Product + Offer — pricing pages. Enables price display in search results.
  • HowTo — step-by-step guides. Can appear as numbered steps in search.
  • ItemList — collection/gallery pages. Enables carousel display.
  • SoftwareApplication — app homepage. Describes the app category and pricing.
  • WebSite + SearchAction — enables the sitelinks search box in branded queries.

Implementation in Next.js

The cleanest pattern: build JSON-LD helper functions in lib/seo/jsonld.ts, then call them in your page components and render via <script type="application/ld+json"> with dangerouslySetInnerHTML.

Validation

  1. Rich Results Test — does Google recognize your schema and will it display rich results?
  2. Schema.org Validator — is the JSON-LD syntactically valid against the schema.org spec?
  3. Google Search Console — after deploy, GSC reports schema errors and enhancement status per page.

Common mistakes

  • Schema without visible content. Google requires FAQ answers to be visible on the page, not just in the schema. Hidden content = schema ignored.
  • Duplicate Organization schema. Emit it once in the layout, not on every page. Multiple Organization blocks confuse Google.
  • Missing required fields. BlogPosting without datePublished, BreadcrumbList without position values — these fail validation silently.
  • Testing only in development. Always validate the production URL, not localhost. metadataBase affects how URLs resolve in schema.

Frequently asked questions

Does structured data directly improve rankings?

Not directly — it's not a ranking factor. But it earns rich results (FAQ dropdowns, breadcrumbs, pricing cards) that increase click-through rate, which indirectly improves rankings by signaling to Google that users prefer your result.

Which schema types should I implement first?

Organization (once, in layout), BreadcrumbList (every non-homepage page), and FAQPage (any page with visible Q&A). These three cover the highest-impact rich results for most sites.

Can I test structured data before deploying?

Yes. Use Google's Rich Results Test (search.google.com/test/rich-results) and Schema.org Validator (validator.schema.org). Both accept a URL or a code snippet.

Ready to build?

Turn your next idea into a production-ready app in minutes.

Keep reading