# Comparison, „vs.“-Abschnitte und datengetriebene Outlines (2026)

**Last Updated:** 2026-04-04  
**Purpose:** Klären, wann Vergleichs- oder „X vs. Y“-H2s helfen, wann sie schaden, und wie Outlines an **Evidence** (PAA, SERP, GSC, Wettbewerber) gebunden bleiben. Ergänzt [CONTENT_OUTLINE.md](posts/_templates/CONTENT_OUTLINE.md) und die Content-Gates — **kein** Zwang zu identischen Mustern in jedem Lexikon-Artikel.

## Was die Technik wirklich prüft (Repo-Fakten)

- **`validate-content-completeness.php`** (Format-Empfehlungen): Wenn `data/competitive-depth-analysis.md` unter „Format Recommendations“ **Tabellen** empfiehlt und im HTML **kein** `<table>` vorkommt → **Warnung** (analog für Listen). Es gibt **keine** Prüfung auf einen H2-Titel im Stil „A vs. B vs. C“.
- **`CONTENT_OUTLINE.md` (Template):** Jeder geplante H2 braucht u. a. **Angle**, **Formats** (Tabelle *oder* Liste *oder* Fließtext — explizit benennen), und **Evidence** (siehe unten). Das ist Planungsdisziplin, keine automatische „vs.“-Pflicht.
- **Blog-TOC:** `build_toc_structure()` in `v2/config/blog-template-helpers.php` gruppiert H3 unter H2, wenn `group_h3s === true` oder wenn die Anzahl H2+H3 **über** `max_items_before_grouping` (Standard **15**) liegt. **Lexikon:** Ab 2026-04 erzwingt die Einzelpost-Seite **gruppierte** H3s, sobald mindestens ein H3 existiert (klarere Hierarchie in „Inhalt“).

## Brauchen wir in jedem Lexikon einen „vs.“-H2?

**Nein.** Cluster-Playbooks und Gewohnheiten empfehlen oft `H2 "X vs. Y vs. Z"` zur **Differenzierung** und Verlinkung — das ist **Workflow**, keine universelle SEO-Regel. Entscheidung immer an **Intent** und **Evidence** koppeln.

## Abgrenzung vs. Vergleich (Ontologie)

| Situation | Empfehlung |
|-----------|------------|
| **Gleiche Entitätstypen** (z. B. zwei Tarifbegriffe, zwei Schichtmodelle) und SERP fragt explizit nach Unterschieden | Vergleichstabelle mit **symmetrischen** Spalten; „vs.“ im Titel kann sachlich sein. |
| **Verschiedene Ebenen** (z. B. **Anbieter/Software-Ökosystem** vs. **Prozess** vs. **Dienstleistung/Rolle**) — im Büro trotzdem vermischt | **Kein** „vs.“ als drei gleichwertige Alternativen. Besser: **Abgrenzung** / **Begriffsklärung** + Tabelle mit Spalte **„Ebene“** (z. B. Anbieter / Prozess / Dienstleistung). |

**Beispiel (DATEV):** Statt „DATEV vs. Lohnabrechnung vs. Steuerberatung“ (falsche Symmetrie) eher: **„DATEV, Lohnabrechnung und Steuerberatung — was oft verwechselt wird“** und eine Tabelle mit **Ebene** + „Was es ist“ + „Rolle im Betrieb“.

## Datengetriebene Outlines (Evidence & PAA-Matrix)

- Pro H2 im Outline: **Evidence** muss mindestens eine Quelle nennen: PAA-Frage (`paa-questions.json` / `faq-research.json`), SISTRIX-Related, Wettbewerber-H2, Gap aus `competitive-depth-analysis.md`, oder **GSC-Query** (bei Improvements).
- **Comparison**-H2s (Angle): **Evidence ist Pflicht** — eine Zeile der Form „Welche PAA / welcher Competitor-H2 / welche GSC-Query erzwingt diesen Abschnitt?“ Wenn keine → Abschnitt streichen, in Definition oder FAQ verschieben.
- **PAA Coverage Matrix** im Template: wirklich ausfüllen; nicht nur H2-Liste bauen.

## AEO / GEO / Google (verlässliche Orientierung)

- **Primär:** [Creating helpful, reliable, people-first content](https://developers.google.com/search/docs/fundamentals/creating-helpful-content) (Google Search Central).
- **Eigene Daten:** GSC- und SISTRIX-Auswertung nach internem Runbook — Startpunkt [CONTENT_CREATION_DATA_CHECKLIST.md](../CONTENT_CREATION_DATA_CHECKLIST.md) und [CONTENT_SYSTEM_INDEX.md](CONTENT_SYSTEM_INDEX.md) (Improvement: [PAGE_IMPROVEMENT_DATA_PLAYBOOK.md](../PAGE_IMPROVEMENT_DATA_PLAYBOOK.md)).
- **Nicht** als Prozess-Beweis: anonyme „Core Update“-Blogposts Dritter; höchstens als Anstoß, dann gegen Search Central / eigene Messdaten verifizieren.

## Entscheidungsfluss (Vergleichsinhalte)

```mermaid
flowchart TD
  intent[Identify_main_intent_definition_how_compare]
  serp[Check_PAA_SERP_GSC_competitor_H2]
  sameType{Same_entity_type_or_confusable_in_speech?}
  cluster{Tight_cluster_canonical_pair?}
  fmt[Choose_format_table_list_prose_FAQ]
  vsTitle{vs_in_title_truthful?}
  disambig[Use_disambiguation_or_Abgrenzung_heading]
  compare[Use_comparison_table_with_clear_columns]
  skip[No_dedicated_vs_H2_use_links_in_definition]

  intent --> serp
  serp --> sameType
  sameType -->|mixed_vendor_process_role| disambig
  sameType -->|synonym_cluster| cluster
  cluster -->|yes| compare
  cluster -->|no| skip
  compare --> vsTitle
  vsTitle -->|false_symmetry| disambig
  vsTitle -->|ok| fmt
  disambig --> fmt
  skip --> fmt
```

## TOC (Sidebar „Inhalt“)

Lange Posts mit vielen H2+H3 wirken in der **flachen** TOC verwirrend (H3 gleichberechtigt neben H2). Distribution und Schwellen: `python3 v2/scripts/blog/analyze-toc-structure.py` (u. a. viele Lexikon-Artikel bei **16** H2+H3-Einträgen — knapp über der alten Auto-Gruppierungsschwelle **15**). **Umsetzung:** `blog_build_toc_options_for_post()` in `v2/config/blog-template-helpers.php` erzwingt für **`category === 'lexikon'`** und vorhandenen H3s **`group_h3s => true`** (Aufruf aus `v2/pages/blog/post.php`).

## Heuristische Qualitätssicherung

- Script (Report only): `python3 v2/scripts/blog/audit-outline-comparison-sections.py` — markiert H2 mit ` vs. ` in `CONTENT_OUTLINE.md`, wenn die zugehörige Section **keine** ausgefüllte **Evidence**-Zeile hat.
- Quartals-Retro (manuell): [process/OUTLINE_EVIDENCE_QUARTERLY_RETRO.md](process/OUTLINE_EVIDENCE_QUARTERLY_RETRO.md).

## Verwandte Dokumente

- [CONTENT_OUTLINE.md](posts/_templates/CONTENT_OUTLINE.md) — Section-Briefs, PAA-Matrix  
- [SKYSCRAPER_TECHNIQUE_2026.md](SKYSCRAPER_TECHNIQUE_2026.md)  
- [CONTENT_CREATION_WORKFLOW_2026.md](CONTENT_CREATION_WORKFLOW_2026.md)  
- [lexikon-inventory/LEXIKON_NEW_POST_CHECKLIST.md](lexikon-inventory/LEXIKON_NEW_POST_CHECKLIST.md)  
- [blog-content-creation-gate.mdc](../../.cursor/rules/blog-content-creation-gate.mdc) · [blog-new-post-creation.mdc](../../.cursor/rules/blog-new-post-creation.mdc)
