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.
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
- 01Download & CacheSeite rendern, lokal unter MD5-Hash der URL speichernundetected-chromedriver
- 02ExtraktionHTML bereinigen, LLM bestimmt den Content-SelektorBeautifulSoup4 + LLM
- 03ZusammenfassungStrukturierte Kurzfassung als PlausibilitätscheckLLM
- 04KeywordsRelevante Keywords je Abschnitt des OriginalsLLM
- 05Neuer ArtikelEigenständiger Entwurf auf Basis der Keyword-StrukturMarkdown
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
- Download & Caching: Das Skript lädt die URL
.../golfregeln-fur-die-etikette.... Da die Seite JavaScript benötigt, fährtundetected-chromedriverhoch. Das Ergebnis wird sofort als Hash (aabf61...) gespeichert – bei erneuten Tests ist kein neuer Request nötig. - Intelligente Extraktion: Statt manuell im Browser-Inspektor zu suchen, erkennt die KI den kryptischen Selektor
div._article-body_1onw8_209. - 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.
- 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.
- 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.