Zum Inhalt springen

Strukturierte Daten für Astro

Schema.org-Komponenten direkt in Astro – Article, FAQ, Product, Breadcrumb und mehr. Typsicher mit schema-dts, in zwei Zeilen integriert.

ArticleSchema FAQSchema ProductSchema RecipeSchema VideoSchema BreadcrumbSchema AutoBreadcrumb LocalBusinessSchema OrganizationSchema WebPageSchema WebSiteSchema EventSchema ProfilePageSchema JobPostingSchema SoftwareAppSchema generateMeta @graph-Modus schema-dts Zod-Validierung Dev Toolbar calculateReadingTime warnOnMissingRecommended Sitemap-Metadaten TypeScript MIT-Lizenz
npm install @casoon/astro-structured-data

Was ist @casoon/astro-structured-data?

Eine Sammlung von Astro-Komponenten, die Schema.org-JSON-LD für die häufigsten Seitentypen generieren. Typsicher mit schema-dts, kein Boilerplate, kein manuelles JSON. Ab v1.4.0 neu: RecipeSchema und VideoSchema.

Die Integration registriert eine Astro-Config mit globalen Defaults. Die Komponenten lesen diese Defaults und rendern das fertige <script type="application/ld+json">-Tag – kein manuelles JSON-Stringify mehr. Mit generateMeta: true werden zusätzlich Open-Graph-, Twitter-Card-, Canonical- und hreflang-Tags automatisch in den <head> gerendert.

Wann brauchst du das?

Strukturierte Daten verbessern Rich Results und KI-Sichtbarkeit – wenn sie korrekt implementiert sind.

Artikel-Seiten mit Rich Results

BlogPosting- und NewsArticle-Markup für jeden Artikel in der Content Collection – automatisch mit Publisher-Daten aus der globalen Konfiguration befüllt.

FAQ-Sektionen für Google

FAQPage-Markup direkt auf Landingpages und Service-Seiten – erhöht die Chancen auf erweiterte Suchergebnisse mit ausklappbaren Antworten.

Lokale Unternehmensseiten

LocalBusiness-Schema mit Adresse, Öffnungszeiten und GeoCoordinates für Firmen-Websites, die in der lokalen Suche sichtbar sein wollen.

E-Commerce-Produktseiten

Product-Schema mit Preis, Verfügbarkeit und Bewertung ermöglicht Produktkarten in Google Shopping und Suchergebnissen.

Integration in zwei Schritten

astro.config.mjs
 import structuredData from '@casoon/astro-structured-data';

export default defineConfig({
  site: 'https://example.com',
  integrations: [
    structuredData({
      defaultArticlePublisher: {
        name: 'My Site',
        logo: { '@type': 'ImageObject', url: 'https://example.com/logo.png' },
      },
    }),
  ],
}); 
src/pages/blog/[slug].astro
 ---
import { ArticleSchema, BreadcrumbSchema }
  from '@casoon/astro-structured-data/components';
---
<ArticleSchema
  title="Mein Artikel"
  description="Kurzbeschreibung"
  datePublished="2025-01-01"
  authorName="Max Mustermann"
  imageUrl="https://example.com/image.webp"
/>
<BreadcrumbSchema items={[
  { name: 'Home', url: 'https://example.com' },
  { name: 'Blog', url: 'https://example.com/blog/' },
]} /> 

Schema-Komponenten sind normale Astro-Komponenten – in jedem .astro-File verwendbar.

Verfügbare Schema-Komponenten

Alle Komponenten sind typsicher und rendern valides Schema.org-JSON-LD.

ArticleSchema

BlogPosting oder NewsArticle – Headline, Autor, Publisher mit Logo, Bild, Veröffentlichungs- und Änderungsdatum.

FAQSchema

FAQPage mit Question/Answer-Paaren – direkt in Google-Suchergebnissen als Rich Result angezeigt.

ProductSchema

Product mit Preis, Währung und Verfügbarkeit. Brand, Beschreibung und GTIN-Felder inklusive.

BreadcrumbSchema

BreadcrumbList aus einem einfachen `items`-Array – oder automatisch aus dem URL-Pfad mit AutoBreadcrumbSchema.

LocalBusinessSchema

LocalBusiness mit Adresse, Öffnungszeiten, Koordinaten und Kontaktdaten. Ideal für lokale SEO.

OrganizationSchema

Organization mit Logo, Social-Links, Adresse, Telefon und E-Mail. Baut auf dem globalen `defaultArticlePublisher` auf.

RecipeSchema

Recipe mit Zutaten, Schritt-für-Schritt-Anleitungen, Nährwerten, Zeiten und Bewertung – für Google Rezept-Rich-Results und KI-Suchen.

VideoSchema

VideoObject mit Thumbnail, Upload-Datum, Dauer, Content-URL und Aufrufzahlen – für Video-Rich-Results in der Google-Suche.

WebPageSchema

WebPage-Schema für Landing Pages, Legal-Seiten und alle Seiten ohne spezifischeren Typ – mit Author, Publisher, Dates und Robots-Direktiven.

WebSiteSchema & mehr

WebSite, Event, ProfilePage, JobPosting, SoftwareApplication, CollectionPage – der vollständige Schema.org-Werkzeugkasten für Astro.

Schema Graph

Mit `useGraph: true` werden alle Schemas zu einem optimierten `@graph`-Block zusammengefasst – weniger HTTP-Overhead, sauberere Entitäts-Verknüpfung.

Was steckt dahinter?

Mehr als nur JSON-stringify – eine durchdachte Integration in den Astro-Build-Prozess.

TypeScript

Typsicher mit schema-dts

Alle Schema.org-Typen kommen aus `schema-dts` – TypeScript meldet sofort, wenn ein Pflichtfeld fehlt oder ein Wert falsch typisiert ist.

Konfiguration

Globale Defaults

Publisher, LocalBusiness und Brand einmal in `astro.config.mjs` definieren – alle Komponenten nutzen sie als Fallback.

Entwicklung

Dev Toolbar Integration

Eigenes Panel im Astro Dev Toolbar: Google-Style Rich-Result-Preview für Article, FAQ, Product, Event, JobPosting, LocalBusiness & mehr – plus Validierungshinweise, Clipboard-Kopie und direkter Link zu validator.schema.org.

Fehlerfreiheit

Zod-Validierung

Die Integration validiert die Optionen in `astro.config.mjs` zur Build-Zeit mit Zod. Ungültige Werte erzeugen klare Fehlermeldungen.

SEO

Automatische Meta-Tags

Mit `generateMeta: true` rendert die Integration Open-Graph-, Twitter-Card-, Canonical- und hreflang-Tags automatisch – kein manueller `<head>`-Aufwand.

Utility

calculateReadingTime

Utility-Funktion für Wortanzahl und Lesezeit aus Plaintext oder HTML – liefert direkt `wordCount`, `readingTimeMinutes` und `timeRequired` (ISO 8601) für `ArticleSchema`.

Qualität

Build-Zeit-Warnungen

Mit `warnOnMissingRecommended: true` (Standard) scannt die Integration alle HTML-Ausgaben nach fehlenden empfohlenen Schema.org-Feldern und gibt gezielte Build-Warnungen aus.

Sitemap

Sitemap-Metadaten

Sitemap-Eigenschaften wie `changefreq` und `priority` werden als Data-Attribute am JSON-LD-Script-Tag kodiert – lesbar für `@casoon/astro-site-files` ohne separate Konfiguration.

Warum @casoon/astro-structured-data?

Strukturierte Daten manuell zu pflegen ist fehleranfällig – Tippfehler im @type, vergessene Pflichtfelder, falsche Datumsformate.

Kein Runtime-Overhead

JSON-LD wird statisch zur Build-Zeit gerendert. Im Browser landet kein Schema-Verarbeitungs-Code.

Astro-nativ

Normale `.astro`-Komponenten. Kein custom renderer, kein Framework-Lock-in, kein separates Tooling nötig.

Schema.org-konform

Alle Typen basieren auf `schema-dts` – der offiziellen TypeScript-Typisierung für Schema.org.

MIT-Lizenz

Open Source, kostenlos, keine Abhängigkeit von externen APIs oder bezahlten Diensten.

Ergänzend: Build-Zeit-Validierung mit post-audit

structured-data generiert das JSON-LD – post-audit prüft es beim Build. Mit structured_data: { check_json_ld: true } validiert @casoon/astro-post-audit Syntax, Semantik und cross-page Konsistenz der JSON-LD-Blöcke.

Im CASOON-Ökosystem

structured-data ist Teil einer Werkzeugkette aus Open-Source-Plugins – alle MIT-lizenziert, alle auf Astro ausgerichtet.

Qualitätssicherung

@casoon/astro-post-audit

Prüft Canonical, Headings, Meta-Tags, Open Graph, JSON-LD und Accessibility direkt beim Build.

Site-Dateien

@casoon/astro-site-files

Erzeugt robots.txt, sitemap.xml mit i18n-hreflang, llms.txt und security.txt beim Build.

Performance

@casoon/astro-speed-measure

Misst Build-Performance auf Ebene von Integrations, Vite-Plugins und Pages.

Starter

astro-v6-template

Monorepo-Starter mit allen CASOON-Plugins fertig konfiguriert. Cloudflare Workers, i18n, Playwright.

Häufige Fragen

Was ist JSON-LD und warum brauche ich es in Astro?

JSON-LD ist das von Google empfohlene Format für strukturierte Daten. Es teilt Suchmaschinen und KI-Systemen mit, was eine Seite bedeutet – Artikel, Produkt, FAQ, lokales Unternehmen. Richtig eingesetzt verbessert es Rich Results in der Suche und die Zitierwahrscheinlichkeit durch KI-Suchen.

Was ist der Unterschied zwischen Schema-Komponenten und dem generischen Schema-Import?

Die spezifischen Komponenten (ArticleSchema, FAQSchema etc.) bieten typisierte Props für die häufigsten Felder und befüllen Publisher-Defaults automatisch. Die generische `Schema`-Komponente akzeptiert ein beliebiges schema-dts-Objekt und eignet sich für Sonderfälle.

Was macht der @graph-Modus?

Mit `useGraph: true` registrieren alle Schema-Komponenten ihre Daten via `Astro.locals`. Am Ende rendert eine `SchemaGraph`-Komponente alles als einen `@graph`-Block. Das reduziert redundante `@context`-Angaben und ermöglicht sauberere Entitäts-Verknüpfungen über `@id`-Referenzen.

Funktioniert das Paket mit post-audit zusammen?

Ja. `@casoon/astro-post-audit` prüft nach dem Build ob JSON-LD vorhanden und syntaktisch korrekt ist. Beide Pakete sind Teil des CASOON Astro-Ökosystems und aufeinander abgestimmt.

Welche Astro-Versionen werden unterstützt?

Astro 5.x, 6.x und 7.x. Das Paket nutzt die `astro:config:setup`-Hook-API und Vite-Virtual-Modules – beides stabile Astro-APIs.

Was ist neu in Version 1.4.0?

Version 1.4.0 bringt zwei neue Schema-Komponenten: RecipeSchema (Recipe mit Zutaten, Schritten, Zeiten und Nährwerten – für Google Rezept-Rich-Results) und VideoSchema (VideoObject mit Thumbnail, Dauer und Aufrufzahlen – für Video-Rich-Results). Beide Schemas haben passende Zod-Exports (`recipeZodSchema`, `videoZodSchema`) und werden im Dev Toolbar angezeigt.

Wie berechne ich Lesezeit für ArticleSchema?

Das Paket exportiert `calculateReadingTime` aus `@casoon/astro-structured-data/utils`. Die Funktion erwartet einen Plaintext- oder HTML-String und gibt `wordCount`, `readingTimeMinutes` und `timeRequired` (ISO 8601, z. B. `PT4M`) zurück – direkt verwendbar als Props für `ArticleSchema`.

Ist das Paket kostenlos?

Ja. @casoon/astro-structured-data ist unter der MIT-Lizenz veröffentlicht und vollständig Open Source.