mAi: #8 - GEO+SEO Guideline für m's Web-Projekte

Recherche-Output: docs/geo-seo-guideline.md. Enthält:
- GEO-Grundlagen mit harten Zahlen (Princeton-Paper, +40% Sichtbarkeit;
  Top-Third-Regel 44.2% der ChatGPT-Citations)
- Konkrete Hebel: Schema.org/JSON-LD, E-E-A-T, llms.txt-Realitätscheck,
  Anti-AI-Text-Filter, Off-Site/Multi-Source, Crawler-Steuerung
- SEO 2026 Baseline (Helpful Content im Core, INP <200ms, EEAT)
- Stack-Übersetzung: onepager, flexsiebels.de, msbls.de, paliad.de,
  youpc.org mit konkreten Maßnahmen pro Stack
- Checkliste pro neuer Site
- Maintenance-Routinen (monatlich, quartalsweise, jährlich)
- 19 Quellen mit URLs

Implementierung nicht im Scope. Folge-Issues pro Stack später.
This commit is contained in:
mAi
2026-04-29 14:30:37 +02:00
parent 70d429e860
commit d33ce9ea55

589
docs/geo-seo-guideline.md Normal file
View File

@@ -0,0 +1,589 @@
# GEO + SEO Guideline für m's Web-Projekte
Stand: 2026-04-29. Interne Arbeitsgrundlage. Keine Marketing-Aussage.
Ziel: Konkrete, belegte Empfehlungen, was bei neuen und bestehenden Sites gemacht werden soll, damit sie (a) klassisch gefunden werden und (b) als Quelle in LLM-Antworten auftauchen. Implementierung ist nicht Teil dieses Dokuments jede Empfehlung wird später als eigenes Issue umgesetzt.
## Inhalt
1. [Worum es geht](#1-worum-es-geht)
2. [GEO grundsätzlich](#2-geo-grundsätzlich)
3. [GEO konkret die Hebel](#3-geo-konkret--die-hebel)
- 3.1 [Top-Third-Regel](#31-top-third-regel)
- 3.2 [Zahlen und Zitate, nicht Adjektive](#32-zahlen-und-zitate-nicht-adjektive)
- 3.3 [Schema.org / JSON-LD](#33-schemaorg--json-ld)
- 3.4 [E-E-A-T und Author-Identität](#34-e-e-a-t-und-author-identität)
- 3.5 [Zentrale JSON-Faktendatei](#35-zentrale-json-faktendatei)
- 3.6 [Anti-AI-Text-Filter](#36-anti-ai-text-filter)
- 3.7 [Off-Site und Multi-Source](#37-off-site-und-multi-source)
- 3.8 [`llms.txt` Realitätscheck](#38-llmstxt--realitätscheck)
- 3.9 [Crawler-Steuerung](#39-crawler-steuerung)
4. [SEO 2026 Baseline](#4-seo-2026-baseline)
5. [Übersetzung auf m's Stacks](#5-übersetzung-auf-ms-stacks)
- 5.1 [onepager](#51-onepager-bash--caddy)
- 5.2 [flexsiebels.de](#52-flexsiebelsde-fresh--preact)
- 5.3 [msbls.de](#53-msblsde-nginx-static)
- 5.4 [paliad.de](#54-paliadde-nextjs--go)
- 5.5 [youpc.org](#55-youpcorg-nextjs-content-heavy)
6. [Checkliste pro neuer Site](#6-checkliste-pro-neuer-site)
7. [Maintenance](#7-maintenance)
8. [Quellen](#8-quellen)
---
## 1. Worum es geht
Zwei Disziplinen, ein gemeinsames Ziel:
- **SEO** in der klassischen Google-Trefferliste auftauchen.
- **GEO** (Generative Engine Optimization) als zitierte Quelle in LLM-Antworten auftauchen (ChatGPT, Claude, Perplexity, Gemini, Google AI Overviews).
Warum jetzt: Bei Suchanfragen, für die Google AI Overviews zeigt, ist die Klickrate auf organische Treffer um ~61 % gefallen, und 83 % dieser Anfragen enden ohne einen einzigen Klick auf irgendeine Website [^almcorp-aio]. Das verschiebt den Schwerpunkt von "ranke top 3" auf "werde von der KI genannt".
Wichtigste empirische Beobachtung: 88 % der von KI zitierten URLs ranken nicht in Googles Top 10 für die jeweilige Frage [^digitalbloom]. GEO ist also nicht ein Spezialfall von SEO. Beide laufen parallel und teilen viele Signale (Inhaltsqualität, Schema, EEAT), aber GEO honoriert andere Strukturen.
Konsequenz: Beides bedienen, kein Stack ist zu klein dafür.
---
## 2. GEO grundsätzlich
**Was hat empirisch funktioniert** (Princeton GEO-Paper, KDD 2024, n = GEO-bench Multi-Domain Queries):
| Methode | Visibility-Lift |
|---|---|
| Statistics Addition (Zahlen einsetzen) | bis +41 % auf Position-Adjusted Word Count |
| Quotation Addition (Direktzitate von Quellen) | starke Verbesserung über alle Metriken |
| Citation Addition (Quellenangaben) | besonders in faktenlastigen Domains |
| Authoritative Tone | besonders bei historischen/Erklärinhalten |
| Fluency Optimization | marginal |
| Keyword Stuffing | marginal bis negativ |
Quelle: Aggarwal et al., 2024 [^geo-paper]. Bis zu +40 % Sichtbarkeit gegenüber Baseline durch Kombination.
**Die Hebel sind nicht universell.** Citation-Optimierung hilft bei Sachfragen, Statistik-Addition bei Recht und Verwaltung, Authoritative Style bei Geschichte/Erklärung. Pro Site/Topic prüfen, welche Domain-Klasse zutrifft.
**LLMs zitieren Quellen sehr unterschiedlich:**
- ChatGPT-Citations dominiert von Wikipedia (zwischen 26 % und 48 % je nach Studie und Kategorie) [^digitalbloom][^discoveredlabs].
- Perplexity holt im Januar 2026 ~24 % aller Citations von Reddit [^almcorp-reddit].
- YouTube hat Reddit Q1 2026 als meistzitierte Quelle in LLM-Antworten überholt (~16 % vs. ~10 %) [^georaiser].
- Gemini bevorzugt offizielle Sites und News.
- ChatGPT nutzt Bings Echtzeit-Index, Claude größtenteils sein Trainings-Set + Search-Bot, Perplexity crawlt kontinuierlich [^discoveredlabs].
Daraus folgt: Eigene Domain-Authority allein reicht nicht. Off-Site-Präsenz (Wikipedia, Reddit, YouTube) ist relevant.
---
## 3. GEO konkret die Hebel
### 3.1 Top-Third-Regel
44,2 % aller von ChatGPT zitierten Passagen kommen aus dem ersten Drittel der Seite (n = 18 012, p ≈ 0) [^almcorp-topthird]. Die Verteilung ist eine "Ski-Rampe": vorne hoch, hinten flach.
**Konsequenz für Seitenaufbau:**
- Erstes sichtbares Element nach dem H1: eine **nüchterne, präzise Definition** des Themas oder Produkts. Kein Marketing-Lead, keine Begrüßung, keine Vision Statement.
- H1 sollte die Kernfrage benennen, nicht den Markennamen flexen.
- Erste 100200 Wörter: was, wer, wann, warum. Mit Zahlen wo möglich.
- Lange Hero-Sections mit Animation und drei Buzzwords sind GEO-toxisch die KI sieht da nichts Zitierfähiges.
**Negativbeispiel** (ein typischer onepager-Hero):
```
{{name}} die nächste Stufe der digitalen Selbstdarstellung
{{tagline mit drei Adjektiven}}
```
**Besser:**
```
{{name}}: {{rolle/funktion}} mit Sitz in {{ort}}, tätig seit {{jahr}}.
Schwerpunkte: {{drei konkrete Themen}}.
```
### 3.2 Zahlen und Zitate, nicht Adjektive
Aus dem Princeton-Paper: Statistik-Addition lieferte den größten Einzeleffekt. Das deckt sich mit m's Beispiel "660 000 Schweizer Entscheide wird zitiert, 'umfangreiche Datenbank' nicht."
Regeln:
- Jede Behauptung mit messbarem Inhalt **bekommt eine Zahl**. Nicht "groß" sondern "1,2 Mio. Datensätze". Nicht "etabliert" sondern "seit 2014".
- Relative Behauptungen (mehr/weniger/größer) **brauchen einen Vergleichswert**.
- Direktzitate von Originalquellen (Gerichten, Behörden, Studien) im Volltext einbinden, nicht paraphrasieren. Mit Quellenangabe.
- Quellennachweise sind keine Fußnoten-Kosmetik LLMs gewichten Aussagen mit verifizierbarer Quelle höher.
### 3.3 Schema.org / JSON-LD
**Ist umstritten hier der Stand:**
- BrightEdge: +44 % AI-Citations bei Sites mit Schema + FAQ-Markup [^searchengineland-schema].
- Search/Atlas-Studie Dezember 2024: keine Korrelation zwischen Schema-Coverage und Citation-Rate [^searchengineland-schema] (zitiert in derselben Quelle als Gegenbefund).
- Data World: GPT-4 geht von 16 % auf 54 % korrekte Antworten, wenn der Inhalt strukturiert vorliegt [^digidop].
- Google empfiehlt JSON-LD seit Mai 2025 explizit für AI-optimierte Inhalte [^digidop].
- SearchVIU (Oktober 2025) bestätigt, dass ChatGPT, Claude, Perplexity und Gemini Schema beim direkten Seitenabruf parsen [^digidop].
**Pragmatische Linie:** Schema ist Pflicht für content-relevante Seiten, aber kein Ersatz für gute Inhalte. Man verzichtet darauf nicht, aber man erwartet von ihm allein keine Wunder.
**Welche Typen lohnen sich:**
| Typ | Wann | Wofür |
|---|---|---|
| `Person` | Author-/About-Seiten | E-E-A-T-Anker |
| `Organization` | Firmen-Sites, Brand-Hubs | Entity-Konsolidierung |
| `Article` / `BlogPosting` | Editorial, Blog | Datierung, Author-Bindung |
| `FAQPage` | Antwortlisten | LLM-Verständnis (Google-SERP-Feature ist seit 2023 stark eingeschränkt, der Schema-Wert für LLMs bleibt) |
| `Product` | Produktseiten | B2B/Commerce |
| `BreadcrumbList` | Tiefe Sitemaps | Pfad-Verständnis |
| `WebSite` mit `SearchAction` | Hauptseiten | Sitelinks-Suchbox |
**JSON-LD ist Pflichtformat.** Microdata und RDFa nicht mehr verwenden.
**Person-Schema-Skelett für Author-Pages:**
```html
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Person",
"name": "Matthias Siebels",
"url": "https://msbls.de/",
"image": "https://msbls.de/assets/portrait.jpg",
"jobTitle": "Patentanwalt, Software-Entwickler",
"worksFor": {
"@type": "Organization",
"name": "flexsiebels",
"url": "https://flexsiebels.de/"
},
"sameAs": [
"https://www.linkedin.com/in/...",
"https://github.com/...",
"https://www.wikidata.org/wiki/Q..."
]
}
</script>
```
`sameAs` ist der wichtigste Single-Punkt damit verbindet die KI denselben Entity über Domains hinweg. Wikidata-Eintrag erstellen sobald genug öffentliche Belege existieren.
### 3.4 E-E-A-T und Author-Identität
Googles offizielles Framework, das auch LLM-Citation-Algorithmen nachweislich abbilden [^upgrowth]. Trustworthiness ist 2025 das wichtigste der vier [^wearetg].
Praktische Anker pro Site:
- **Identifizierbarer Author** mit Klarnamen, Foto, Lebenslauf, Verifikations-Links (Schema.org `Person` + `sameAs`).
- **Impressum / Kontakt** klar erreichbar (haben wir `shared/impressum.js`).
- **Veröffentlichungsdatum + letzte Änderung** sichtbar (`datePublished`, `dateModified`).
- **Editorial Transparency**: bei AI-generierten Inhalten Hinweis auf den Prozess (haben wir `shared/ai-disclosure.js` und `msbls.de/ki`).
- **HTTPS, gültige Zertifikate, kein Mixed Content** (Caddy macht das ohnehin).
Konkretes Vorgehen für m's Domain-Cluster:
- `msbls.de` ist die zentrale Author-Identität für alles unter flexsiebels (siehe Memory: msbls = Marke unter flexsiebels-Umbrella). Eine vollständige Author-Page dort, mit `Person`-Schema, Wikidata-`sameAs`, Liste der relevanten Projekte.
- Alle Sub-Sites (ichbinotto, mai-otto, lexsiebels, heygoldi etc.) verlinken über `worksFor`/`creator` zurück auf diese kanonische Identität.
### 3.5 Zentrale JSON-Faktendatei
m's Idee aus der Issue: eine Single-Source-of-Truth-Datei mit Produktfakten, von der Templates und KI-Bots gleichermaßen lesen.
Empfohlener Aufbau:
- Pro Stack/Site eine Datei `facts.json` (oder `products.json`, `team.json`) am Repo-Root.
- Rendert in Build/Render-Pipeline in JSON-LD und in HTML-Text.
- Wird zusätzlich als `application/json` an einer stabilen URL (z. B. `/facts.json`) ausgeliefert LLM-Crawler und eigene Tools können sie direkt lesen.
Beispiel-Skelett:
```json
{
"@context": "https://schema.org",
"@type": "Organization",
"name": "flexsiebels",
"founded": "2014",
"founder": { "@type": "Person", "name": "Matthias Siebels" },
"numberOfEmployees": 1,
"address": "...",
"products": [
{ "@type": "Product", "name": "youpc", "description": "UPC case database, 1600+ judgments", "url": "https://youpc.org" },
{ "@type": "Product", "name": "paliad", "description": "...", "url": "https://paliad.de" }
]
}
```
Wert: jede neue Site, jede Author-Page, jede Subdomain referenziert dieselbe kanonische Faktenmenge. Konsistente Aussagen über Domains hinweg sind ein starkes Trust-Signal für LLM-Entity-Konsolidierung.
### 3.6 Anti-AI-Text-Filter
Wikipedias Maintainer-Community hat 20242026 die zuverlässigsten Marker für AI-Text dokumentiert [^wiki-ai-signs]. Wir wollen den Eindruck vermeiden sowohl gegenüber menschlichen Lesern als auch gegenüber EEAT-Algorithmen, die "Originalität" prüfen.
**Vokabel-Blacklist (häufige Cluster):**
```
delve, tapestry, testament, intricate, garnered, bolstered, enduring,
robust, comprehensive, meticulous, interplay, landscape, pivotal,
underscore, additionally, furthermore, moreover, crucial,
showcasing, highlighting, enhance, align with, ecosystem,
seamless, leverage, unleash, navigate, dive into, in the realm of
```
Mehrere dieser Wörter im selben Absatz sind das stärkste Tell.
**Syntax-Marker:**
- "Ist/sind" wird ersetzt durch "fungiert als / dient als / markiert / weist auf / kennzeichnet". → Echtes "ist" zulassen.
- "Nicht nur X, sondern auch Y" als Standard-Phrasenformel. → Sparsam.
- Drei-Adjektiv-Reihen ("schnell, sicher und skalierbar"). → Eines reicht.
- Unnötige Synonyme nur um Wiederholung zu vermeiden. → Wiederholen ist okay.
**Struktur-Marker:**
- Title Case in Überschriften. → Sentence case oder UPPERCASE, nie Mixed Title Case.
- "**Header:** Beschreibung"-Bullet-Listen mechanisch über die ganze Seite. → Nur wenn der Inhalt das wirklich ist.
- Em-Dashes statt Komma/Klammer-/Doppelpunkt. → Sparsam, gezielt.
- Zwanghaftes Fettsetzen jedes "Schlüsselbegriffs". → Selten und mit Grund.
**Inhalts-Marker:**
- "Ein Meilenstein in...", "ein Beweis für...", "in der sich entwickelnden Landschaft von...", "hat Spuren hinterlassen". → Nicht.
- Vage Attribution an "Experten", "Beobachter", "Branchenberichte" ohne Namen. → Quelle benennen oder Aussage streichen.
- Standard-Schluss-Sektion "Herausforderungen und Perspektiven" mit "Trotz seiner [positiven Wörter] steht [Subjekt] vor Herausforderungen ... bleibt aber zuversichtlich". → Streichen.
**Praktische Umsetzung:**
- Lint-Skript im Build (`scripts/anti-ai-lint.sh`) das Vokabel-Blacklist über alle `index.html` und `*.md` läuft, mit Schwellenwert (z. B. mehr als 3 Marker pro 500 Wörter → Warnung).
- Bei AI-generierten Drafts: bewusst gegen die Blacklist redigieren.
- Vor Veröffentlichung laut lesen. Wenn es klingt wie ein Pressemitteilungs-Bot, ist es einer.
### 3.7 Off-Site und Multi-Source
Brand-Search-Volumen korreliert mit LLM-Citations stärker (r ≈ 0,33) als klassische Backlinks [^thedigitalbloom]. Das heißt: erwähnt zu werden auch ohne Link schlägt verlinkt zu werden mit niedrigem Search-Volumen.
Praktische Hebel:
- **Wikipedia / Wikidata**: wenn ein Projekt oder Begriff es rechtfertigt, einen Eintrag oder ein Wikidata-Item anlegen. Wikipedia ist die meistzitierte Quelle in ChatGPT.
- **Reddit / Hacker News / Lobsters**: organische Posts in einschlägigen Subreddits/Threads, in denen die Lösung als Antwort auf eine konkrete Frage erwähnt wird. Kein Drop-and-Run-Marketing wird abgestraft und nicht zitiert.
- **YouTube**: für Themen mit visuellem Anteil (UPC-Hearings, Code-Walkthroughs, Demos) ist YouTube 2026 die meistzitierte LLM-Quelle [^georaiser]. Auch kurze, gut betitelte Videos zählen.
- **GitHub / Gitea (öffentlich)**: technische Themen werden über öffentlichen Code zitiert. Public Repos mit ordentlichem README sind stille Zitatmagneten.
- **Fachportale, Verbandsseiten, Veranstalter-Seiten**: Wenn dort Erwähnungen mit Klarnamen + Domain auftauchen, wird das Profil verfestigt.
Dies ist langfristig. Keine Ad-hoc-Aktion, sondern ein Punkt auf jeder Quartals-Routine: gibt es eine plausible Erwähnung, die gerade fehlt?
### 3.8 `llms.txt` Realitätscheck
m's Issue-Beispiel nennt `llms.txt`. Hier die nüchterne Lage:
- Spezifikation von Jeremy Howard (Answer.AI), September 2024 [^llmstxt-org].
- Adoption laut SE Ranking: 10,13 % von 300 000 Domains [^aeopress].
- Kein einziger der großen Anbieter (OpenAI, Anthropic, Google, Meta, Mistral) bestätigt offiziell, dass `llms.txt` als Retrieval- oder Ranking-Signal benutzt wird [^aeopress][^almcorp-llmstxt].
- ALM Corp hat `llms.txt` in ein XGBoost-Citation-Modell geworfen: Entfernen der Variable verbesserte die Modellgenauigkeit sprich: kein erklärbarer Effekt [^almcorp-llmstxt].
**Empfehlung:**
- **Für Doku-/API-/Content-heavy Sites** (youpc, paliad, msbls/ki, lexsiebels) **machen**, weil:
- kostet ~30 Minuten Arbeit
- schadet nicht
- wird zumindest von einigen Tools (Cursor, Mintlify-Hosted Docs) tatsächlich konsumiert
- signalisiert Engagement an den nächsten Standard, falls einer der großen Anbieter doch noch andockt
- **Für die onepager-Satire-Sites** (Wortspiel-Domains): überspringen. Aufwand vs. Nutzen lohnt nicht.
- **Niemals als alleinige GEO-Strategie verkaufen.** Die echten Hebel sind Inhalt, Schema, EEAT.
**Mini-Spec:** Markdown-Datei an `/llms.txt` (Root). H1 = Site-Name, Blockquote = Kurzbeschreibung, dann Listen mit `- [Titel](URL): Notiz`. Optionale `## Optional`-Sektion für Inhalte, die bei knapper Context-Window weggelassen werden dürfen.
Beispiel `llms.txt` (für youpc.org):
```markdown
# youpc.org Unified Patent Court Case Database
> Database of UPC and EPO judgments. 1600+ decisions across all UPC divisions
> since 2023, fully searchable, with structured data extraction (holdings,
> legal principles, citation graphs).
## Core resources
- [About / Methodology](https://youpc.org/about): scope, sources, extraction methodology
- [All judgments](https://youpc.org/cases): full list with filters by division, judge, year
- [Divisions overview](https://youpc.org/divisions): jurisdiction map and judges per division
- [Topics index](https://youpc.org/topics): patent law issues with leading cases per topic
## Optional
- [Author / Editor](https://msbls.de/): credentials of the editor
- [Disclosure on AI use](https://msbls.de/ki): which parts of the workflow involve LLMs
```
`llms-full.txt` (analoge Datei mit eingeschlossenen Volltexten) nur dann erzeugen, wenn der Site-Inhalt klein genug ist, dass das in ein Context-Fenster passt sonst ist es Larping.
### 3.9 Crawler-Steuerung
Die wichtigsten User-Agents 2026 [^aicarma][^almcorp-claude]:
| Agent | Anbieter | Zweck | Block lohnt? |
|---|---|---|---|
| `GPTBot` | OpenAI | Training | Wenn man nicht trainieren lassen will |
| `OAI-SearchBot` | OpenAI | ChatGPT-Search-Index | **Niemals** blocken (sonst keine Citations) |
| `ChatGPT-User` | OpenAI | User-getriggerter Live-Fetch | **Niemals** blocken |
| `ClaudeBot` | Anthropic | Training | Wenn man nicht trainieren lassen will |
| `Claude-User` | Anthropic | User-getriggerter Live-Fetch | **Niemals** blocken |
| `Claude-SearchBot` | Anthropic | Claude-Search-Index | **Niemals** blocken |
| `PerplexityBot` | Perplexity | Index | **Niemals** blocken |
| `Perplexity-User` | Perplexity | Live-Fetch | **Niemals** blocken |
| `Google-Extended` | Google | Gemini-Training | Wenn man nicht trainieren lassen will |
| `Googlebot` | Google | Klassischer Google-Index | **Niemals** blocken |
| `CCBot` | Common Crawl | Training-Datenbasis für viele LLMs | Optional blocken |
**Veraltet, nicht mehr verwenden** in `robots.txt`: `Claude-Web`, `anthropic-ai` das sind tote Strings, ein Block dort blockt nichts mehr.
**m's Default für die eigenen Domains:** alle Bots erlauben. Das Material soll zitiert werden das ist der Sinn der Übung. Keine Site hat kommerziellen Trainings-Schutz-Bedarf.
Beispiel `robots.txt` (Standardposition):
```
User-agent: *
Allow: /
Sitemap: https://example.de/sitemap.xml
```
Falls *spezifisch das Trainings-Set* nicht beliefert werden soll (für eine Site, deren Inhalt sensibel oder kommerziell ist), getrennte Direktiven:
```
User-agent: GPTBot
Disallow: /
User-agent: ClaudeBot
Disallow: /
User-agent: Google-Extended
Disallow: /
# Wichtig: Search-Bots NICHT blocken
User-agent: OAI-SearchBot
Allow: /
User-agent: Claude-SearchBot
Allow: /
User-agent: PerplexityBot
Allow: /
```
---
## 4. SEO 2026 Baseline
Was nach wie vor zählt und was sich geändert hat.
**Helpful Content Update:** Seit 20242025 in den Core-Algorithmus integriert, kein eigenständiges Update mehr [^saffronedge]. Das System läuft kontinuierlich. Praktisch: Inhalt, der wie für Suchmaschinen geschrieben wirkt, verliert.
**E-E-A-T:** Trustworthiness ist 2025 die wichtigste der vier Säulen. Klare Angaben zu Author, Quellen, Korrekturpolitik, Veröffentlichungsdatum [^wearetg].
**Core Web Vitals (75. Perzentil)** [^corewebvitals]:
| Metrik | Gut | Ausreichend | Schlecht |
|---|---|---|---|
| LCP | ≤ 2,5 s | 2,54,0 s | > 4,0 s |
| INP | ≤ 200 ms | 200500 ms | > 500 ms |
| CLS | ≤ 0,1 | 0,10,25 | > 0,25 |
INP (eingeführt März 2024 als Ersatz für FID) ist 2026 die meistgerissene Metrik 43 % der Sites scheitern dort [^corewebvitals]. Heißt: JavaScript, das auf den Main-Thread blockt, kostet messbar. Bei Onepagern ist das eher unproblematisch (wenig JS); bei Next.js-Stacks der Hebel.
**Was nicht mehr relevant ist:**
- FAQ-Rich-Snippets in Google-SERPs sind seit 2023 stark eingeschränkt (nur noch für autoritative Health-/Government-Quellen). Schema-Markup trotzdem behalten wegen LLMs.
- HowTo-Rich-Snippets desktop-only.
- Keyword-Density als Metrik tot.
- Meta-Keywords seit Ewigkeiten tot.
**Was synergetisch mit GEO funktioniert:**
- Saubere Heading-Hierarchie (H1 → H2 → H3) hilft beiden.
- Klare Frage-Antwort-Struktur (H2 = Frage, Absatz = Antwort) wird sowohl in Google-AI-Overviews als auch in LLM-Antworten zitiert.
- Internal Linking zwischen thematisch verwandten Seiten verstärkt Topical Authority für beide.
- Sitemap.xml weiterhin Pflicht für Discovery.
- Mobile-First-Indexierung ist seit 2023 Standard. Mobile-Rendering muss vollständig sein, nicht nur reduziert.
---
## 5. Übersetzung auf m's Stacks
### 5.1 onepager (Bash + Caddy)
**Architektur-Recap:** `sites/<domain>/` mit `site.yaml` + `index.html`. `render.sh` ersetzt Platzhalter im gewählten Template. `generate-caddyfile.sh` generiert Caddy-Routen pro Host. Custom-Sites mit `template: custom` werden roh kopiert.
**Was jetzt geht ohne Refactor:**
- Pro Site eine `llms.txt` und `robots.txt` direkt in `sites/<domain>/` ablegen. Build-Script kopiert sie nach `build/<domain>/`. Caddy bedient das automatisch.
- Pro kommerzieller / persönlicher Site (ichbinotto, mai-otto, lexsiebels, heygoldi, smartin3, martinsiebels) ein JSON-LD-Block direkt in `index.html` einfügen, statisch.
- Satire-Sites (kAInco, kIlemma, orAKIl etc.): bewusst kein Schema, kein llms.txt. Sie sind keine Quellen, sie sind Wortspiele. Das ehrlich lassen.
**Was lohnt als Template-Erweiterung:**
- `templates/base.html` um Schema-Slot erweitern: `{{schema_jsonld}}`. `render.sh` füllt ihn aus `site.yaml` (`schema:` Block).
- `site.yaml` Schema-Beispiel:
```yaml
schema:
type: Person
sameAs:
- https://msbls.de/
- https://github.com/...
```
- `render.sh` Template-Erweiterung: `datePublished` / `dateModified` aus Git-Metadaten ableiten.
- Top-Third-Disziplin pro Template: `tagline` + erste `section` müssen sachlich sein, nicht poetisch. Templates sind hier neutral die Disziplin ist beim Inhalt.
**Top-Third anwenden:** `person-dark`/`person-light`/`product-dark` haben heute Hero mit Name + Tagline. Tagline ist der erste zitierfähige Satz muss eine Definition sein, nicht Stimmung.
**Beispiel `sites/lexsiebels/site.yaml`** (heute):
```yaml
tagline: "Wo Recht und Code zusammenfinden"
```
**Besser:**
```yaml
tagline: "Patentanwalt mit Schwerpunkt UPC-Verfahren und Software-Patente, Sankt Augustin, seit 2014."
```
**Caddyfile:** kein Eingriff nötig, alle Header (HSTS, Cache-Control) macht Caddy schon.
### 5.2 flexsiebels.de (Fresh + Preact)
**Vorteil:** SSR liefert vollständiges HTML beim ersten Request LLMs sehen den fertigen Inhalt, nicht eine leere SPA-Hülle. Das ist gegenüber CSR-only-Stacks ein Riesenvorsprung.
**Was umsetzen:**
- `<Head>`-Komponente um JSON-LD erweitern. Eine wiederverwendbare `<JsonLd type={...} data={...} />`-Komponente, die das richtige Schema rendert.
- Pro Author/Über-Seite: `Person`-Schema mit `sameAs`-Block.
- Pro Article: `Article`-Schema mit `datePublished`, `dateModified`, `author`.
- `/static/llms.txt` und `/static/robots.txt` als statische Files.
- `routes/_app.tsx`: globale Meta-Tags (description, og:image) einheitlich.
- INP achten: keine teuren Hydration-Listener auf nicht-interaktiven Bereichen. Fresh ist hier ohnehin sparsam (Islands-Architektur).
**Author-Hub:** `flexsiebels.de/matthias` (oder `/team/matthias`) als zentrale Author-Page mit vollem `Person`-Schema, von der alle anderen Sites über `worksFor`/`creator`/`sameAs` zeigen.
### 5.3 msbls.de (nginx static)
**Status:** statisch ausgeliefert, `/ki` ist Transparenzseite (siehe Memory: Issue #2).
**Maßnahmen:**
- `/about` (oder `/matthias`) als kanonische Author-Page anlegen. Vollständiges `Person`-Schema, alle `sameAs`. Diese URL wird zur Schema-Ankerseite für alle anderen Domains.
- `/llms.txt` und `/robots.txt` an Root.
- `/ki` mit `Article`-Schema markieren.
- nginx-Config: `expires 7d` für CSS/JS, `expires 30d` für Fonts/Bilder. Cache-Control korrekt setzen.
- Sitemap.xml automatisch generieren (statisches Template oder `tree`-basiert).
### 5.4 paliad.de (Next.js + Go)
**Kontext:** kommerzieller B2B-Stack. Hier ist GEO am direktesten ROI-relevant.
**Maßnahmen:**
- Next.js Metadata API systematisch nutzen (`generateMetadata` pro Route).
- JSON-LD über `<Script type="application/ld+json" />` in jedem Seiten-Layout.
- Pro Produkt: `Product`-Schema. Pro Case Study: `Article`-Schema mit `Organization` als Publisher.
- `app/(marketing)/layout.tsx`: `Organization`-Schema fest einbinden.
- Top-Third-Disziplin auf jeder Marketing-Seite: erste 200 Wörter sind sachliche Produktbeschreibung. Nicht "Revolutioniere deine ...".
- Citation-Tracking einrichten (xSeek, Profound oder selbstgebauter Crawler) paliad ist klein genug, dass jede LLM-Citation zählt.
- INP-Audit: Welche Routen blocken den Main-Thread? Next.js Image, `loading="lazy"`, dynamische Imports prüfen.
- `next-sitemap` oder eigener Sitemap-Generator.
### 5.5 youpc.org (Next.js, content-heavy)
**Goldmine.** Legal-Daten sind GEO-ideal: faktenlastig, zitierbar, mit klaren Zahlen. Princeton-Paper sagt: für Recht/Verwaltung wirkt Statistik-Addition am stärksten das passt zu youpc fast 1:1.
**Maßnahmen:**
- Pro Judgment-Page: vollständiges Schema mit `Article` + `about: Court, judge, parties, patent`. `LegalForceStatus` und `mainEntityOfPage` setzen.
- Top-Third-Regel: jede Case-Page beginnt mit Fakten-Block (Aktenzeichen, Datum, Division, Parteien, Holding in 1 Satz), erst dann der Volltext / die Analyse.
- Zahlen sichtbar: "1600+ Entscheidungen", "X Divisions", "Y Jahre Erfahrung". Diese Zahlen aufs Hero, in `llms.txt`, in Schema.
- `llms.txt` mit Index aller Hub-Seiten (Topics, Divisions, Authors).
- Author-Schema: Matthias als `editor`/`author`, sameAs zu msbls.de.
- Sitemap.xml: vollständig, segmentiert (cases, judges, divisions je eigene Sitemap).
- Strukturierte FAQ-Pages pro Topic: "Wie hat die LD München Anspruchsauslegung X behandelt?" mit `FAQPage`-Schema.
- HTMX-Caveat: Inhalt, der nur über HX-Request geliefert wird, ist für viele Crawler unsichtbar. SSR-Fallback prüfen (Memory-Eintrag bestätigt: youpc Impressum braucht `HX-Request`-Header). Für Content-Pages den HX-Trick nicht nutzen, oder zusätzlich SSR.
- Reddit-Strategie pilotieren: bei UPC-relevanten Diskussionen in r/patents, r/lawyers etc. mit Klarnamen Antworten geben, die auf youpc verweisen. Sparsam, Substanz first.
- YouTube-Strategie evaluieren: kurze Erklärvideos zu Leitentscheidungen. 2026 die meistzitierte LLM-Quelle.
---
## 6. Checkliste pro neuer Site
**Vor dem Launch:**
- [ ] H1 ist die Kernfrage / das Kernthema, nicht der Markenname allein
- [ ] Erste 100200 Wörter: nüchterne Definition mit Zahlen, kein Marketing-Lead
- [ ] Mindestens eine konkrete Zahl pro Hauptaussage
- [ ] Person/Organization/Article/Product Schema (JSON-LD) eingebaut, je nach Typ
- [ ] `sameAs`-Links auf existierende Identity-Anker (msbls.de, LinkedIn, Wikidata)
- [ ] `datePublished` und `dateModified` sichtbar im HTML und in Schema
- [ ] Author-Page existiert und ist verlinkt (oder eindeutige Autor-Referenz im Schema)
- [ ] Impressum + AI-Disclosure verlinkt (für onepager: shared-Scripts haben das)
- [ ] `robots.txt` an Root, mit Sitemap-Hinweis, alle Bots erlauben
- [ ] `sitemap.xml` an Root
- [ ] `llms.txt` an Root (außer reine Satire-Sites)
- [ ] `<title>` und `<meta description>` gesetzt, beide unter 60/160 Zeichen
- [ ] Open-Graph-Tags + Twitter-Card-Tags
- [ ] Mobile-Rendering vollständig (alles, was Desktop sieht)
- [ ] Anti-AI-Lint: kein Vokabel-Cluster aus der Blacklist
- [ ] Anti-AI-Struktur-Check: keine "Challenges and Future Prospects"-Schlusssektion, kein "in der sich entwickelnden Landschaft"
- [ ] HTTPS, gültiges Zertifikat (Caddy / Dokploy macht das)
**Nach dem Launch:**
- [ ] Lighthouse-Audit: alle Core Web Vitals grün im Lab
- [ ] PageSpeed Insights mit echten Felddaten nach 28 Tagen erneut prüfen
- [ ] Google Search Console eingerichtet, Sitemap eingereicht
- [ ] Bing Webmaster Tools eingerichtet (wegen ChatGPT-Index)
- [ ] In `facts.json` der Stack-Familie eingetragen, falls relevant
- [ ] Verlinkung von der zentralen Author-Page (msbls.de) gesetzt
---
## 7. Maintenance
**Monatlich:**
- LLM-Visibility-Stichprobe: 510 typische Anfragen in ChatGPT/Claude/Perplexity manuell stellen, prüfen ob Sites zitiert werden.
- Google Search Console: neue Crawl-Fehler, gefallene Klicks, neue Top-Anfragen.
- Core Web Vitals (PageSpeed Insights, Felddaten): hat eine Site neu unter "good" gerutscht?
**Quartalsweise:**
- `llms.txt` aktualisieren (neue Hub-Pages aufnehmen, gelöschte entfernen).
- Schema-Markup-Validierung über alle Sites (Google Rich Results Test, Schema.org Validator).
- Veraltete `sameAs`-Links prüfen (LinkedIn-Wechsel, gelöschte Profile).
- Wikipedia-/Wikidata-Status der Hauptidentitäten/Brands prüfen.
**Jährlich:**
- Anti-AI-Vokabel-Blacklist aktualisieren (Modell-Drift, neue Trigger-Wörter).
- Crawler-User-Agent-Liste prüfen (alle 612 Monate ändern Anbieter ihre Bot-Namen, siehe das Anthropic-Drei-Bot-Update).
- Author-Pages auffrischen: Bilder, Position, Projekte aktuell?
- Tote Off-Site-Erwähnungen (Forum-Posts, alte Profile) bereinigen.
**Bei jeder größeren Änderung:**
- `dateModified` setzen, nicht das Veröffentlichungsdatum überschreiben.
- Sitemap-Lastmod aktualisieren.
- LLM-Prompt-Tests ein paar Tage später wiederholen, um Indexierung zu prüfen.
---
## 8. Quellen
[^geo-paper]: Aggarwal, Murahari, Rajpurohit, Kalyan, Narasimhan, Deshpande *GEO: Generative Engine Optimization*. KDD 2024 / arXiv:2311.09735. https://arxiv.org/abs/2311.09735
[^almcorp-topthird]: ALM Corp *ChatGPT Citations: 44 % Come From the First Third of Content*. https://almcorp.com/blog/chatgpt-citations-study-44-percent-first-third-content/
[^almcorp-aio]: ALM Corp *AI Overviews and Zero-Click Searches: Adapting Your SEO Strategy for 2026*. https://almcorp.com/blog/ai-overviews-zero-click-searches-seo-strategy-2026/
[^almcorp-llmstxt]: ALM Corp *Does llms.txt Actually Matter for AI Search?* https://almcorp.com/blog/does-llms-txt-matter-data-analysis/
[^almcorp-claude]: ALM Corp *ClaudeBot, Claude-User & Claude-SearchBot: Anthropic's Three-Bot Framework*. https://almcorp.com/blog/anthropic-claude-bots-robots-txt-strategy/
[^almcorp-reddit]: ALM Corp *Reddit Is Now the #2 Most Cited Source in AI Search*. https://almcorp.com/blog/reddit-ai-search-citations-geo-for-brands/
[^llmstxt-org]: Howard, Jeremy *llms.txt proposal*. Answer.AI, 2024-09-03. https://llmstxt.org/
[^aeopress]: aeo.press *The State of llms.txt in 2026*. https://www.aeo.press/ai/the-state-of-llms-txt-in-2026
[^searchengineland-schema]: Search Engine Land *How schema markup fits into AI search — without the hype*. https://searchengineland.com/schema-markup-ai-search-no-hype-472339
[^digidop]: Digidop *Structured data: SEO and GEO optimization for AI in 2026*. https://www.digidop.com/blog/structured-data-secret-weapon-seo
[^discoveredlabs]: Discovered Labs *AI Citation Patterns: How ChatGPT, Claude, and Perplexity Choose Sources*. https://discoveredlabs.com/blog/ai-citation-patterns-how-chatgpt-claude-and-perplexity-choose-sources
[^upgrowth]: upGrowth *AI Citation Algorithm: How LLMs Pick Sources [2026]*. https://upgrowth.in/citation-algorithm-chatgpt-perplexity-gemini-ai-overviews-2026/
[^thedigitalbloom]: The Digital Bloom *2025 AI Visibility Report: How LLMs Choose What Sources to Mention*. https://thedigitalbloom.com/learn/2025-ai-citation-llm-visibility-report/
[^digitalbloom]: The Digital Bloom *2025 Organic Traffic Crisis: Zero-Click & AI Impact Report*. https://thedigitalbloom.com/learn/2025-organic-traffic-crisis-analysis-report/
[^georaiser]: GEORaiser *YouTube Overtakes Reddit as #1 AI Citation Source in 2026*. https://georaiser.com/blog/youtube-overtakes-reddit-ai-citations
[^wiki-ai-signs]: Wikipedia *Signs of AI writing*. https://en.wikipedia.org/wiki/Wikipedia:Signs_of_AI_writing
[^wearetg]: TG (We Are TG) *What's New with Google E-E-A-T in 2025?* https://www.wearetg.com/blog/google-eeat/
[^saffronedge]: Saffron Edge *Google SEO Updates 20242025: Get Your 2026 SEO Plan*. https://www.saffronedge.com/blog/google-seo-updates/
[^corewebvitals]: corewebvitals.io *What Are the Core Web Vitals? LCP, INP & CLS Explained (2026)*. https://www.corewebvitals.io/core-web-vitals
[^aicarma]: AICarma *The Complete Robots.txt Guide for AI Crawlers: 2026 Strategy & Templates*. https://aicarma.com/blog/robots-txt-for-ai/
---
*Dokument-Eigentümer:* m. *Letzte Recherche:* 2026-04-29 (Curie, Issue #8). *Nicht im Scope:* Implementierung. Folge-Issues werden pro Site/Stack einzeln aufgesetzt.