# 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 100–200 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 2024–2026 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: für onepager implementiert in `tools/anti-ai-lint.py` mit Vokabel-Blacklist in `tools/anti-ai-blacklist.yaml`. Läuft am Ende von `build.sh` über alle `build/<domain>/index.html`. Severity `warn` (Build geht durch) vs. `fail` (Build bricht ab). Whitelist via `<!-- anti-ai-allow: term -->`-Kommentar oder `anti_ai_allow:`-Liste in `site.yaml`. Notfall-Override: `build.sh --skip-lint`.
- 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 2024–2025 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,5–4,0 s | > 4,0 s |
| INP | ≤ 200 ms | 200–500 ms | > 500 ms |
| CLS | ≤ 0,1 | 0,1–0,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 100–200 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: 5–10 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 6–12 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 2024–2025: 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.
