Strukturierte Daten können Suchsystemen die Interpretation geeigneter Seiten erleichtern und Elemente wie Sternebewertungen, Breadcrumbs oder Artikelkarten unterstützen. Sie geben auch KI-Systemen maschinenlesbaren Kontext, garantieren aber keine Zitierung. Rendern Sie JSON-LD im App Router als Script-Tag aus einer Server-Komponente (typisiert über 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>
</>
);
}
Typische Arten, die je nach Seite infrage kommen:
Organization/Person– für die ganze Website, im Haupt-Layout. Speist das Knowledge Panel.BlogPosting/Article– jeder Beitrag.BreadcrumbList– ersetzt die URL in den Ergebnissen durch einen lesbaren Pfad.FAQPage– für Seiten mit echten Fragen und Antworten.Product+Offer+AggregateRating– E-Commerce; daher kommen die Sterne.Service+LocalBusiness– Agenturen und lokale Unternehmen.
Validieren Sie mit Googles Rich Results Test – der Validator von schema.org prüft die Syntax, aber nur das Google-Tool sagt, ob Sie sich für Rich Results qualifizieren.
Checkliste:
- JSON-LD wird serverseitig gerendert (nie nach dem Laden auf dem Client eingefügt)
- Article/BlogPosting bei allen Beiträgen mit echten Datumsangaben
- BreadcrumbList auf der ganzen Website
- Daten im Markup stimmen mit der sichtbaren Seite überein (Abweichungen riskieren eine manuelle Maßnahme)
