Deel 6 van 22

Gestructureerde data: JSON-LD dat rich results oplevert

Gestructureerde data: JSON-LD dat rich results oplevert

Gestructureerde data kan zoeksystemen helpen om geschikte pagina's te interpreteren en elementen te ondersteunen zoals sterrenbeoordelingen, breadcrumbs of artikelkaarten. Ze geven ook AI-systemen machineleesbare context, maar garanderen geen vermelding. Render JSON-LD in de App Router als script-tag vanuit een servercomponent (getypeerd met 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>
    </>
  );
}

Veelvoorkomende typen om te overwegen, afhankelijk van de pagina:

  1. Organization / Person: voor de hele site, in de root-layout. Voedt het kennispaneel.
  2. BlogPosting / Article: elk bericht.
  3. BreadcrumbList: vervangt de URL in de resultaten door een leesbaar pad.
  4. FAQPage: voor pagina's met echte vragen en antwoorden.
  5. Product + Offer + AggregateRating: e-commerce; hier komen de sterren vandaan.
  6. Service + LocalBusiness: bureaus en lokale bedrijven.

Valideer met de Rich Results Test van Google. De schema.org-validator controleert de syntaxis, maar alleen de tool van Google zegt of je in aanmerking komt voor rich results.

Checklist:

  • JSON-LD aan de serverzijde gerenderd (nooit na het laden op de client geïnjecteerd)
  • Article/BlogPosting op alle berichten met echte datums
  • BreadcrumbList op de hele site
  • Data in de markup komt overeen met de zichtbare pagina (afwijkingen riskeren een handmatige maatregel)

Laat je dit liever door iemand anders doen?

Ik audit en herstel technische SEO op Next.js-websites — indexering, snelheid, hreflang en zichtbaarheid in AI-zoekmachines.

Dienst technische SEO