SEO Content-Gap-Analyse & Automatisierung

01 Herausforderung

Wettbewerber-Content manuell zu recherchieren, zu strukturieren und in eigene Content-Strategien zu übersetzen, ist aufwendig – und klassische Scraper scheitern an modernen, JavaScript-lastigen Seiten.

02 Ansatz

Eine Python-Pipeline lädt Wettbewerber-Seiten per undetected-chromedriver, lässt ein lokales LLM den Hauptinhalt finden und leitet daraus Zusammenfassung, Keywords und einen neuen Artikelentwurf ab.

03 Ergebnis

Von der URL bis zum fertigen Markdown-Entwurf in einem Durchlauf – vollständig lokal, ohne API-Kosten und mit voller Datensouveränität.

Stack
Python 3undetected-chromedriverBeautifulSoup4LM Studiohashlib

In wettbewerbsintensiven Märkten ist Data Intelligence der Schlüssel zur digitalen Sichtbarkeit. Dieses Projekt implementiert eine automatisierte Pipeline für Competitive Intelligence und Content Gap Analysis: Das System analysiert leistungsstarke Wettbewerber-Seiten, identifiziert semantische Strukturen und Keywords und leitet daraus datengestützte Content-Strategien ab.

Durch lokale Large Language Models (LLMs) wird der Prozess skalierbar und kosteneffizient. Manuelle Recherche entfällt – Marketing-Teams können sich auf Strategie und Qualitätssicherung konzentrieren.

Pipeline-Stufen
5
Download bis Artikelentwurf
Durchlauf
1
URL → Markdown-Entwurf
Zeichen extrahiert
4.033
Beispiel: Golf-Blog
API-Kosten
0 €
lokales LLM

Business Value & Anwendung

  • Competitive Intelligence: Automatisierte Extraktion und Strukturierung von Wettbewerberdaten aus komplexen Web-Umgebungen.
  • Market Analysis: Semantische Analyse, um ungenutzte Keyword-Potenziale und Themencluster zu finden.
  • Automated Content Drafting: Content-Briefings und Entwürfe auf Basis bewährter Performance-Metriken (Skyscraper-Methode).
  • Data Privacy & Cost Efficiency: Vollständig lokale Datenverarbeitung – keine API-Kosten, volle Datensouveränität.

Architektur

  1. 01Download & CacheSeite rendern, lokal unter MD5-Hash der URL speichernundetected-chromedriver
  2. 02ExtraktionHTML bereinigen, LLM bestimmt den Content-SelektorBeautifulSoup4 + LLM
  3. 03ZusammenfassungStrukturierte Kurzfassung als PlausibilitätscheckLLM
  4. 04KeywordsRelevante Keywords je Abschnitt des OriginalsLLM
  5. 05Neuer ArtikelEigenständiger Entwurf auf Basis der Keyword-StrukturMarkdown
Abb. 1 — Pipeline von der Wettbewerber-URL zum neuen Artikelentwurf

Die KI-Integration läuft per REST-API gegen einen lokalen LLM-Server (z.B. LM Studio), kompatibel mit dem OpenAI-Chat-Completions-Format. json dient dem Datenaustausch, hashlib der Caching-Strategie.

Technische Highlights und Lösungsansätze

Klassischer Scraper

  • Hartcodierte Selektoren wie <div class="content">
  • Scheitert an generierten Klassennamen
  • Wird als Bot erkannt und blockiert
  • Rohes HTML verschwendet Kontext-Fenster

LLM-gestützte Pipeline

  • LLM ermittelt den Selektor dynamisch
  • Robust gegenüber wechselnden Layouts
  • undetected-chromedriver simuliert echten Browser
  • Nur das bereinigte Body-Skelett geht ans Modell

Dynamische Selektor-Ermittlung durch KI

Problem: Jede Webseite ist anders aufgebaut. Ein starrer Scraper, der nach <div class="content"> sucht, scheitert oft.

Lösung: Das Skript sendet eine bereinigte, gekürzte Version des HTML-Gerüsts an das LLM mit der Aufgabe: „Identifiziere den CSS-Selektor, der den Hauptartikel umschließt“. Das LLM fungiert als intelligenter Parser, der semantisch versteht, wo der Content liegt – das macht das Tool extrem flexibel gegenüber verschiedenen Layouts.

Effizientes Token-Management

Problem: LLMs haben ein begrenztes Kontext-Fenster. Rohes HTML ist voller Rauschen (JavaScript, CSS, SVG), das Token verschwendet und das Modell verwirren kann.

Lösung: Vor der Analyse durchläuft das HTML eine strenge Reinigungsphase (clean_html_for_analysis). Tags wie <script>, <style>, <nav> und <footer> werden entfernt, nur das strukturelle Skelett des <body> geht an die KI. Das reduziert die Token-Anzahl drastisch und verbessert die Qualität der Antworten.

Robuste Browser-Automatisierung

Problem: Viele moderne Seiten blockieren einfache requests oder Standard-Selenium-Bots.

Lösung: undetected-chromedriver (eine modifizierte Selenium-Variante) simuliert ein echtes Chrome-Profil und rendert auch JavaScript-lastige Seiten. Das Skript erstellt temporäre Benutzerprofile, um Konflikte mit laufenden Browser-Instanzen zu vermeiden, und wartet intelligent auf das Laden der Seite, bevor der Quellcode extrahiert wird.

Caching

Heruntergeladene Seiten werden lokal unter einem MD5-Hash der URL gespeichert. Das vermeidet unnötige Netzwerkanfragen und beschleunigt die Entwicklung – wiederholte Testläufe kommen ohne neuen Request aus.

Ein konkretes Beispiel: Analyse eines Golf-Blogs

Gekürzter Konsolen-Output eines echten Durchlaufs. Ziel war es, einen Artikel über Golf-Etikette zu analysieren und darauf basierend neuen Content zu generieren.

Downloading page: https://www.adidas.de/blog/golfregeln-fur-die-etikette-auf-dem-grun
Starting undetected-chromedriver...
Saved to cache: page_cache\aabf6112ef2a5db7e571350a68ce733f.html

[Content Extraction] Analyzing HTML structure...
Sending request to LLM...
LLM identified selector: div._article-body_1onw8_209
Extracted 4033 characters.

[Summarization] Generating summary...
SUMMARY:
**Kurzfassung: Golf‑Etikette & Platzregeln**
| Thema | Kernaussagen |
|-------|---------------|
| **Allgemeines** | Golf ist ruhiges Naturspiel... |

[Keyword Extraction] Extracting keywords...
KEYWORDS:
### Einführung in Golfetikette
Keywords: Golfetikette Regeln, Ruhe auf dem Grün, Stressfreies Putten...

[Content Generation] Creating new blog article...
NEW ARTICLE:
# Einführung in Golfetikette
Golf ist mehr als nur ein Sport – es ist eine Kunstform...

Schritt für Schritt

  1. Download & Caching: Das Skript lädt die URL .../golfregeln-fur-die-etikette.... Da die Seite JavaScript benötigt, fährt undetected-chromedriver hoch. Das Ergebnis wird sofort als Hash (aabf61...) gespeichert – bei erneuten Tests ist kein neuer Request nötig.
  2. Intelligente Extraktion: Statt manuell im Browser-Inspektor zu suchen, erkennt die KI den kryptischen Selektor div._article-body_1onw8_209.
  3. Zusammenfassung: Der extrahierte Text (über 4.000 Zeichen) geht an das lokale Modell, das eine strukturierte Zusammenfassung erstellt – ein erster Check, ob der richtige Inhalt gefunden wurde.
  4. Keyword-Extraktion: Das Tool analysiert die Struktur des Originalartikels und extrahiert je Abschnitt relevante Keywords (z.B. „Stressfreies Putten“, „Golfetikette Regeln“). Sie bilden das Gerüst für den neuen Artikel.
  5. Content-Generierung: Das LLM wird zum Texter: Aus Keywords und Struktur entsteht ein komplett neuer Blogpost („Einführung in Golfetikette“), thematisch deckungsgleich, aber im Wortlaut einzigartig.