S.
  • Services
  • For you
  • Solutions
  • Work
  • About
  • Know-how
  • Blog
Start a project
EN/PL/RU
  • Services01
  • For you02
  • Solutions03
  • Work04
  • About05
  • Know-how06
  • Blog07
Start a project
EN/PL/RU
Vlad Sedenko
Independent web product developer
EU / Poland / Warsaw
Products
  • NextWooNext.js storefront for WooCommerce
© 2026. All rights reserved
Services
  • Product Discovery
  • UX/UI Design
  • MVP Development
  • SaaS Development
  • Website Redesign
  • Web Application Security
  • Conversion Optimization
  • API Integrations & Business Automation
  • Product Support
Explore
  • Services
  • For you
  • Work
  • Solutions
  • About
  • Blog
  • Know-how
  • Contact
Start a project
  • vlad@sedenko.net
  • LinkedIn
  • Privacy/Cookies
Know-how/Next.js SEO Checklist: The Complete Guide for App Router (2026)

Part 6 of 22

Structured data: JSON-LD that earns rich results

JSON-LD structured data in Next.js: server-rendered schema for articles, breadcrumbs, FAQ and products — typed with schema-dts.

2026-07-15
Structured data: JSON-LD that earns rich results
All topics in this guide
  1. 01Rendering strategy: what does the crawler actually see?
  2. 02Metadata API: titles, descriptions and the template pattern
  3. 03Canonical URLs and hreflang: one page, one address
  4. 04Open Graph and dynamic OG images
  5. 05sitemap.ts and robots.ts: file conventions instead of hand-written XML
  6. 06Structured data: JSON-LD that earns rich results
  7. 07Images, fonts and scripts: the classic performance trio
  8. 08Core Web Vitals: the three numbers Google measures
  9. 09Redirects, 404s and status codes
  10. 10Caching and content freshness
  11. 11AEO/GEO: getting cited by ChatGPT, Perplexity and Google AI Overviews
  12. 12Monitoring: SEO is a loop, not a launch task
  13. 13Trust and E-E-A-T: making your site believable
  14. 14Image SEO: turning pictures into traffic
  15. 15Internal linking and site architecture
  16. 16Search intent: pages that match what people actually type
  17. 17Programmatic SEO in Next.js: pages at scale without the spam
  18. 18SEO migration: replatforming to Next.js without losing traffic
  19. 19Pagination and faceted navigation without index bloat
  20. 20Accessibility and SEO: one job, two rewards
  21. 21Content decay: refresh, consolidate or prune
  22. 22Off-page for developers: earning links without buying them

Structured data can make eligible pages easier for search systems to interpret and can support features such as review stars, breadcrumbs and article cards. It also gives AI systems machine-readable context, without guaranteeing a citation. In the App Router, render JSON-LD as a script tag from a Server Component (typed with schema-dts):

import type { WithContext, BlogPosting } from "schema-dts";

export default async function PostPage({ params }) {
  const post = await getPost(params.slug);

  const jsonLd: WithContext<BlogPosting> = {
    "@context": "https://schema.org",
    "@type": "BlogPosting",
    headline: post.title,
    description: post.excerpt,
    datePublished: post.publishedAt,
    dateModified: post.updatedAt,
    author: {
      "@type": "Person",
      name: "Vlad Sedenko",
      url: "https://example.com/about",
    },
    image: post.ogImage,
  };

  return (
    <>
      <script
        type="application/ld+json"
        dangerouslySetInnerHTML={{ __html: JSON.stringify(jsonLd) }}
      />
      <article>{/* ... */}</article>
    </>
  );
}

Common types to consider, depending on the page:

  1. Organization / Person — site-wide, in the root layout. Feeds the knowledge panel.
  2. BlogPosting / Article — every post.
  3. BreadcrumbList — replaces the URL with a readable path in results.
  4. FAQPage — for pages with genuine Q&A content.
  5. Product + Offer + AggregateRating — e-commerce; this is where the stars come from.
  6. Service + LocalBusiness — agencies and local companies.

Validate with Google's Rich Results Test — the schema.org validator checks syntax, but only Google's tool tells you whether you're eligible for rich results.

Checklist:

  • JSON-LD rendered server-side (never injected on the client after load)
  • Article/BlogPosting on all posts with real dates
  • BreadcrumbList site-wide
  • Data in the markup matches the visible page (mismatches can earn a manual action)
← Previoussitemap.ts and robots.ts: file conventions instead of hand-written XMLNext →Images, fonts and scripts: the classic performance trio

01—22

All topics in this guide

  1. 01Rendering strategy: what does the crawler actually see?→
  2. 02Metadata API: titles, descriptions and the template pattern→
  3. 03Canonical URLs and hreflang: one page, one address→
  4. 04Open Graph and dynamic OG images→
  5. 05sitemap.ts and robots.ts: file conventions instead of hand-written XML→
  6. 06Structured data: JSON-LD that earns rich results•
  7. 07Images, fonts and scripts: the classic performance trio→
  8. 08Core Web Vitals: the three numbers Google measures→
  9. 09Redirects, 404s and status codes→
  10. 10Caching and content freshness→
  11. 11AEO/GEO: getting cited by ChatGPT, Perplexity and Google AI Overviews→
  12. 12Monitoring: SEO is a loop, not a launch task→
  13. 13Trust and E-E-A-T: making your site believable→
  14. 14Image SEO: turning pictures into traffic→
  15. 15Internal linking and site architecture→
  16. 16Search intent: pages that match what people actually type→
  17. 17Programmatic SEO in Next.js: pages at scale without the spam→
  18. 18SEO migration: replatforming to Next.js without losing traffic→
  19. 19Pagination and faceted navigation without index bloat→
  20. 20Accessibility and SEO: one job, two rewards→
  21. 21Content decay: refresh, consolidate or prune→
  22. 22Off-page for developers: earning links without buying them→

Want this handled for you?

I audit and fix technical SEO on Next.js sites — indexing, performance, hreflang and AI visibility.

Technical SEO service