Frontmatter v1.3 – Cheatsheet (Tolksdorf.digital)
# Frontmatter v1.3 – Cheatsheet (Tolksdorf.digital) **Ziel:** kurze Bedienhilfe für Redaktion & Tech. v1.3 ist rückwärtskompatibel zu v1.2, ergänzt aber die **Pflicht zur JSON‑LD‑Einbettung** auf der **kanonischen HTML‑Seite** sowie `same_as` und `syndication`. --- ## 1) Minimal auszufüllen (immer sinnvoll) - `type` → `blog | home | profile | pillar | service` - `lang` / `locale` → z. B. `de` / `de-DE` - `title`, `summary` - `canonical` → kanonische URL der HTML‑Seite - `image` → Banner/OG‑Bild (absolut) - `hreflang.alternates[]` → Gegenlink zur anderen Sprache **Zusatz je Seitentyp** - **blog**: `date_published` (Pflicht), empfohlen `publisher.name`, `publisher.logo`, `article.author_name` - **home**: `organization.name|url|logo` dringend empfohlen - **profile**: `person.name` (Pflicht), empfohlen `person.url|image|jobTitle` - **pillar/service**: `main_entity_type: "Service"` (Empfehlung), optional `service.*` --- ## 2) JSON‑LD auf der HTML‑Seite (Pflicht) **Immer genau 1 Block** mit `WebPage` + `mainEntity`: - WebPage: `@id = canonical + "#webpage"`, `url`, `inLanguage` (= `locale`), `name` (= `title`), `description` (= `summary`), `image` - mainEntity je `type`: - blog → `BlogPosting` (`headline`, `datePublished`, `image`, `publisher`/`author`) - home → `Organization` (`name`, `url`, `logo`) - profile → `Person` (`name`, `url`, `image`) - pillar/service → `Service` (`name`, `description`, `provider`=`Organization` via `@id`) - Optional: `sameAs[]` (Profile/Referenzen), `subjectOf[]` (aus `syndication[]`) **Mini‑Snippet (Pillar → Service)** ```html <script type="application/ld+json"> { "@context":"https://schema.org", "@type":"WebPage", "@id":"https://tolksdorf.digital/experienceinnovation#webpage", "url":"https://tolksdorf.digital/experienceinnovation", "inLanguage":"de-DE", "name":"Experience Innovation by Tolksdorf.digital", "description":"Planbare Innovation für KMU …", "image":{"@type":"ImageObject","url":"https://tolksdorf.digital/web/image/8465-76b165fe/compressed%20ExperienceInnovation_Dodekaeder_Blog.png"}, "mainEntity":{ "@type":"Service", "@id":"https://tolksdorf.digital/experienceinnovation#service", "name":"Experience Innovation", "description":"Planbare Innovation für KMU …", "provider":{"@id":"https://tolksdorf.digital/#organization"} } } </script> ``` --- ## 3) Neue Felder (v1.3) ```yaml same_as: - "https://www.linkedin.com/company/tolksdorf-digital/" syndication: - platform: "LinkedIn" url: "https://www.linkedin.com/posts/..." variant: "teaser" # teaser|full|thread|recap posted_at: "2025-10-14T09:05:00+02:00" main_entity_type: "Service" # Emitter-Hinweis ``` --- ## 4) Hreflang & Canonical (Ping‑Pong) - `canonical` pro Sprache korrekt (de‑DE vs. en‑US) - `hreflang.alternates` wechselseitig - JSON‑LD `inLanguage` = `locale` --- ## 5) AI‑Feed (optional, aber empfohlen) - `/ai/<doc-id>/<locale>/<version>/{ meta.yaml, meta.json, content.md, checksum.sha256 }` - `checksum.sha256` → **alle** Artefakte aufführen (meta.json, meta.yaml, content.md) --- ## 6) Do & Don’t (kurz) **Do** - Klare, eigene Texte; sprechende Titel/Teaser - Stabile Bild‑URLs; vollständige absolute URLs - Publisher/Organization sauber pflegen (Logo ≥112×112) - Für Leistungsseiten `Service` als mainEntity **Don’t** - Kein doppeltes JSON‑LD auf einer Seite - Keine Walled‑Garden‑Inhalte ohne HTML‑Abbild - Keine inkonsistenten Canonicals/Hreflangs