Organisches Wachstum
Du führst das System in PLAYBOOK.md für das aktuelle Projekt aus. Lies es einmal zu Beginn, dann lies ein Modul nur, wenn du die Phase erreichst, die es verwendet. Schreibe jedes Ergebnis in docs/seo/ im Projekt (kopiere Vorlagen aus templates/) und committe nach jeder Phase.
Übersicht
| # | Phase | Lese | Ausgabe im Projekt |
|---|---|---|---|
| 0 | Recon + Basislinie | PLAYBOOK.md §0 | docs/seo/00-baseline.md |
| 1 | Technisches SEO | checklists/technical-seo.md | Code + seo.config.mjs |
| 2 | Search Console + Bing | checklists/search-console.md | Basis-Zahlen |
| 3 | Recherche: Trends, Zahlungsbereitschaft, Autocomplete, Ahrefs/Semrush, Search Console, Quellen | modules/research.md | docs/seo/research/*.md, 09-sources-log.md |
| 4 | Wachstumsplan | modules/pseo-2.md, modules/tool-led-seo.md, modules/money-pages.md, modules/linkable-assets.md | docs/seo/03-seo-plan.md |
| 5 | Bereinigung + Aufbau | PLAYBOOK.md §5, Briefings 04/07/08 | Seiten, Weiterleitungen, 05-consolidation-map.md |
| 6 | GEO + Conversion | modules/geo-ai-search.md, modules/seo-to-revenue.md | robots, Seitenform, CTAs, Ereignisse |
| 7 | Launch + Messen | PLAYBOOK.md §7 | docs/seo/06-launch-log.md |
Der Benutzer kann nur einen Teil anfragen („nur Tool-SEO“, „prüfe meine Seite“, „pSEO-Plan“). Führe dann nur diese Phase aus, aber führe zuerst kurz Phase 0 durch.
Zuerst fragen (nur das, was der Code nicht selbst ermitteln kann)
- Produktionsdomain und bevorzugter Host (apex oder www).
- Zielländer und Sprachen. Niemals aus dem Standort des Gründers ableiten.
- Search Console / Analytics-Zugriff.
- Bezahlte Keyword-Tools (Ahrefs, Semrush). Screenshots oder Exporte sind in Ordnung.
- Sind Bewertungen, Rezensionszahlen oder „verwendet von“-Behauptungen auf der Seite echt?
Skripte (Node 18+, keine Abhängigkeiten; in scripts/)
| Skript | Verwendung |
|---|---|
check-live.sh <url> | Was Crawler von der Live-Seite erhalten: Weiterleitungen, 404, robots, Sitemap, pro Seite Titel/Canonical/H1 ohne JS |
prerender.mjs --config seo.config.mjs | SPA → statisches HTML pro Route + 404.html + spa.html + sitemap.xml |
audit.mjs <dist> --base <url> | Prüft erstelltes HTML: Titel, Beschreibungen, Canonicals, H1, dünne Seiten, JSON-LD, Sitemap-Konsistenz, Bewertungsschema |
overlap.mjs <dist> --prefix /<cluster>/ | Duplicate-Content-Schranke: 5-Wort-Shingle-Jaccard, <40% und ≥800 Wörter |
autocomplete.mjs "<seed>" --gl us,gb,au --expand | Echte Google-Autocomplete-Abfragen pro Land (Nachfragebelege) |
Hart gelernte Regeln
- Recherche im Marktgebiet durchführen. Autocomplete aus dem falschen Land hat einmal eine ganze Reihe von Seiten für den falschen Markt produziert.
- Jede Recherche als datierte Datei in
docs/seo/research/speichern und jede on-page-Fakt in09-sources-log.mdprotokollieren (offizielle Quellen für rechtliche Fakten; Wettbewerbsfakten datiert und alle 90 Tage erneut geprüft; nicht überprüfbare Behauptungen weglassen). - Das kostenlose Tool von Ahrefs hat eine menschliche Prüfung, die der Benutzer bestehen muss. Frage nach Screenshots, versuche nie, es zu umgehen.
- Seiten existieren, weil Nachfrage existiert. Jede geplante Seite nennt ihre Belege.
- Die Qualitätsschranke ist nicht optional. <40% Überlappung mit Geschwistern, ≥800 Wörter, eigene Daten/Tools/Ausgabe. Vorlagenbasierte
{city}-Swaps erhaltennoindexund werden aus der Sitemap genommen. Skalierungs-Strafen für massenhaften Inhalt treffen die gesamte Domain. - Tools sind Seiten, keine Widgets. Jedes Tool benötigt einen einzigartigen redaktionellen Leitfaden, FAQ und Schema in statischem HTML, sonst ist es eine dünne Seite.
- Weniger, tiefere Seiten. Führe dünne Beiträge in tiefe Guides zusammen und 301 weiter jede alte URL.
- Keine erfundenen Zahlen oder Social Proof. Preise sind bequellt oder auf der Seite berechnet; Wettbewerbsfakten datiert; Bewertungsschema nur, wenn der Eigentümer bestätigt, dass es echt ist.
- Crawler (und KI-Crawler) müssen Inhalte ohne JavaScript sehen.
- Ein Host, eine URL, echte 404-Seiten, eine aus denselben Daten wie die Seiten generierte Sitemap.
- Launch in Batches von 10–20; erweitere nur, was Impressionen bekommt.
- Jede Seite endet mit einem relevanten CTA; verfolge Conversions pro Seitengruppe.
Arbeitsweise
- Produktionswirksame Änderungen (Weiterleitungen, robots.txt, noindex, Seiten löschen) erhalten eine einzeilige Bestätigung vom Benutzer vorab, mit der Liste.
- Search Console, DNS und Analytics-Klicks sind Sache des Benutzers; gib genaue Schritte an.
- Führe
audit.mjsnach jedem Build undcheck-live.shnach jedem Deployment aus und füge die Zusammenfassung ein. - Halte datierte Zahlen in
06-launch-log.mdfest, damit die nächste Sitzung vergleichen kann.
Frameworks
prerender.mjs ist für clientseitig gerenderte SPAs (Vite, CRA, React Router). Next.js, Astro, Nuxt, SvelteKit, Remix: Nutze ihre Metadaten-APIs und Sitemap-Plugins und führe trotzdem audit.mjs auf dem Build-Output aus. WordPress/Webflow/Shopify: Überspringe Phase-1-Code, verwende die Checkliste gegen die Live-Seite mit check-live.sh.