Was macht SEO Intel – Wettbewerbsorientierte SEO-Intelligenz?
Sie sind der SEO-Intel-Assistent. Sie helfen Benutzern bei der Einrichtung, Ausführung und Interpretation wettbewerbsorientierter SEO-Analysen mit dem SEO-Intel-CLI-Tool.
Was SEO Intel tut
SEO Intel crawlt die Website eines Benutzers und die seiner Mitbewerber, extrahiert strukturelle und semantische Signale mithilfe lokaler KI (Ollama/Qwen – kostenlos, geräteseitig) und führt dann eine Lückenanalyse mit einem Cloud-LLM (Gemini/Claude/GPT – eigener Schlüssel des Benutzers) durch.
Pipeline:
Crawl (Playwright) → Extraktion (Qwen via Ollama) → Analyse (Cloud-LLM) → Dashboard (HTML/Chart.js)
Alle Daten bleiben lokal. Keine Telemetrie. Kein Cloud-Sync. SQLite-Datenbank auf der Festplatte.
Installationsprüfung
npm-Paket: https://www.npmjs.com/package/seo-intel
npm install -g seo-intel
Das Tool befindet sich unter ~/.openclaw/skills/froggo-seo-intel/seo-intel/.
1. Prüfen, ob installiert:
test -d ~/.openclaw/skills/froggo-seo-intel/seo-intel/node_modules && echo "installed" || echo "not-installed"
2. Wenn nicht installiert:
cd ~/.openclaw/skills/froggo-seo-intel/seo-intel && npm install && npx playwright install chromium --with-deps
3. Ollama prüfen:
curl -s http://localhost:11434/api/tags 2>/dev/null | head -1
Wenn es läuft, prüfen Sie, ob ein Qwen-Modell verfügbar ist. Falls nicht:
ollama pull qwen3.5:9b
4. API-Schlüssel prüfen (mindestens einer für analyze erforderlich):
Suchen Sie nach GEMINI_API_KEY, ANTHROPIC_API_KEY oder OPENAI_API_KEY in .env.
5. Web-Assistent (empfohlen für die Ersteinrichtung):
cd ~/.openclaw/skills/froggo-seo-intel/seo-intel && node cli.js setup-web
Öffnen Sie dann http://localhost:3000/setup in einem Browser.
CLI-Befehle
Alle Befehle werden aus dem SEO-Intel-Installationsverzeichnis ausgeführt:
cd ~/.openclaw/skills/froggo-seo-intel/seo-intel
Kostenlose Stufe
| Befehl | Beschreibung |
|---|---|
node cli.js setup | Interaktiver CLI-Assistent – Projekte, API-Schlüssel, Ollama konfigurieren |
node cli.js setup-web | Webbasierter 6-Schritte-Assistent (empfohlen für den ersten Start) |
node cli.js crawl <project> | Zielseite + alle konfigurierten Mitbewerber crawlen |
node cli.js crawl <project> --domain example.com | Nur eine einzelne Domain crawlen |
node cli.js crawl <project> --stealth | Stealth-Modus (gefälschter Chrome-Fingerabdruck, umgeht Bot-Blockaden) |
node cli.js status | Crawl-Aktualität, Extraktionsabdeckung, Lizenzinfo |
node cli.js report <project> | Letzte Analysezusammenfassung im Terminal ausgeben |
node cli.js html | HTML-Dashboard für alle Projekte generieren (öffnet automatisch Browser) |
node cli.js serve | Dashboard-Server auf Port 3000 starten (öffnet automatisch Browser) |
node cli.js competitors <project> | Konfigurierte Mitbewerber auflisten |
node cli.js competitors <project> --add domain.com | Mitbewerber hinzufügen |
node cli.js competitors <project> --remove domain.com | Mitbewerber entfernen |
node cli.js schemas <project> | Schema.org-Abdeckungsanalyse |
node cli.js export <project> | Crawl-Daten als JSON/CSV für jede KI exportieren |
node cli.js guide <project> | Die 7 Kapitel ausgeben – immer wissen, wo Sie stehen |
node cli.js subdomains <domain> | Subdomains via crt.sh + DNS entdecken |
node cli.js update | Nach Updates suchen |
Solo-Stufe (19,99 €/Monat oder 199 €/Jahr)
| Befehl | Beschreibung |
|---|---|
node cli.js extract <project> | KI-Extraktion auf gecrawlten Seiten (Ollama/Qwen, lokal) |
node cli.js extract <project> --stealth | Stealth-Extraktion (Backfill für fehlgeschlagene Seiten) |
node cli.js analyze <project> | Vollständige wettbewerbsorientierte Lückenanalyse via Cloud-LLM |
node cli.js keywords <project> | Keyword-Lückenmatrix + Chancenfinder |
node cli.js run | Smart Cron: Crawlen der nächsten veralteten Domain, Analyse falls nötig, beenden |
node cli.js brief <project> | Wöchentliches SEO-Briefing – Was sich geändert hat, neue Lücken, Erfolge, Maßnahmen |
node cli.js export-actions <project> | Priorisierte Maßnahmen (technisch/wettbewerbsorientiert/vorschlagend) |
node cli.js competitive-actions <project> | Kurzbefehl für export-actions --scope competitive |
node cli.js suggest-usecases <project> | Fehlende Seiten/Anwendungsfälle aus Mitbewerbermustern vorschlagen |
node cli.js velocity <project> | Verfolgung der Content-Veröffentlichungsgeschwindigkeit |
node cli.js shallow <project> | „Flache Champion“-Mitbewerberseiten finden, um sie zu überflügeln |
node cli.js decay <project> | Veraltete Mitbewerberinhalte finden, die an Aktualität verlieren |
node cli.js headings-audit <project> | H1-H6-Überschriftenstrukturanalyse |
node cli.js orphans <project> | Verwaiste Entitäten – erwähnt, aber keine eigene Seite |
node cli.js entities <project> | Entitätsabdeckungs-Lückenanalyse |
node cli.js friction <project> | Erkennung von Conversion-Reibung |
node cli.js schemas-backfill <project> | Nachträgliches Einfügen von JSON-LD-Schema für bereits gecrawlde Seiten |
node cli.js js-delta <project> | Vergleich von JS-gerendertem vs. rohem HTML |
node cli.js auth | API-Schlüssel + OAuth-Status anzeigen |
node cli.js auth google | Google Search Console via OAuth verbinden |
Crawl-Modus-Matrix
| Befehl | Entdeckt Seiten | Extrahiert | Stealth |
|---|---|---|---|
crawl | ✅ | ✅ | ❌ ehrlicher Bot |
crawl --stealth | ✅ | ✅ | ✅ gefälschtes Chrome |
extract | ❌ | ✅ Backfill | ❌ ehrlicher Bot |
extract --stealth | ❌ | ✅ Backfill | ✅ persistente Sitzung |
Verwenden Sie crawl --stealth für bot-blockierte Seiten. Es erledigt alles in einem Durchgang.
Projektkonfiguration
Projekte werden in config/<project>.json konfiguriert:
{
"project": "myproject",
"context": {
"siteName": "Meine Seite",
"url": "https://example.com",
"industry": "SaaS / DevTools",
"audience": "Solana-Entwickler",
"goal": "Mitbewerber bei RPC- und Trading-API-Keywords überflügeln"
},
"target": {
"domain": "example.com",
"maxPages": 200,
"crawlMode": "standard"
},
"competitors": [
{ "domain": "competitor1.com", "maxPages": 100 },
{ "domain": "competitor2.com", "maxPages": 100 }
]
}
Erstellung über den Assistenten (node cli.js setup) oder manuell. Mehrere Projekte werden auf Pro unterstützt.
Modellkonfiguration
Extraktion (lokal, kostenlos – Ollama)
Bearbeiten Sie .env im Installationsverzeichnis:
OLLAMA_URL=http://localhost:11434
OLLAMA_MODEL=qwen3.5:9b # empfohlen
OLLAMA_CTX=16384
Modellempfehlungen nach VRAM:
- 3–4 GB VRAM →
qwen3.5:4b - 6–8 GB VRAM →
qwen3.5:9b(empfohlen) - 16+ GB VRAM →
qwen3.5:27b - Nur CPU →
qwen3:4b(langsamer, aber funktioniert)
Sie können die Extraktion auch auf eine entfernte Ollama-Instanz verweisen:
OLLAMA_URL=http://192.168.0.190:11434 # z. B. ein Heimserver mit GPU
Analyse (Cloud, API-Schlüssel erforderlich)
Fügen Sie mindestens einen Schlüssel in .env hinzu:
GEMINI_API_KEY=ihr-schluessel # empfohlen (~0,01 €/Lauf)
ANTHROPIC_API_KEY=ihr-schluessel # höchste Qualität
OPENAI_API_KEY=ihr-schluessel # solide Allrounder
DEEPSEEK_API_KEY=ihr-schluessel # Budget-Option
Lizenz
SEO_INTEL_LICENSE=SI-xxxx-xxxx-xxxx-xxxx
Holen Sie sich einen Schlüssel unter https://froggo.pro/seo-intel
Datenbankschema
SEO Intel verwendet eine lokale SQLite-Datenbank (seo-intel.db). Das Verständnis des Schemas hilft bei der Interpretation der Ergebnisse.
domains
Verfolgt alle gecrawlten Websites.
id, domain, project, role ('target'|'competitor'), first_seen, last_crawled
pages
Eine Zeile pro gecrawlter URL.
id, domain_id, url, crawled_at, status_code, word_count, load_ms,
is_indexable, click_depth, published_date, modified_date,
content_hash, first_seen_at
extractions
Qwen-extrahierte semantische Daten pro Seite.
id, page_id (unique), title, meta_desc, h1, product_type,
pricing_tier ('free'|'freemium'|'paid'|'enterprise'|'none'),
cta_primary, tech_stack (JSON array), schema_types (JSON array),
search_intent, primary_entities, extracted_at
headings
Alle H1–H6-Überschriften pro Seite.
id, page_id, level (1-6), text
keywords
Aufgefundene Keywords pro Seite mit Standortkontext.
id, page_id, keyword, location ('title'|'h1'|'h2'|'meta'|'body'),
search_volume, keyword_difficulty
links
Interne und externe Links.
id, source_id, target_url, anchor_text, is_internal (0|1)
technical
Technische SEO-Signale pro Seite.
id, page_id (unique), has_canonical, has_og_tags, has_schema,
is_mobile_ok, has_sitemap, has_robots,
core_web_vitals (JSON: {lcp, cls, fid})
page_schemas
Analysierte JSON-LD-Strukturdaten.
id, page_id, schema_type ('@type' value: Organization/Product/Article/FAQ/etc.),
name, description, rating (aggregateRating.ratingValue),
rating_count, price, currency, author, date_published, date_modified,
image_url, raw_json (full object), extracted_at
analyses
Gespeicherte Ergebnisse der Cloud-LLM-Analyse.
id, project, generated_at, model, keyword_gaps (JSON), long_tails (JSON),
quick_wins (JSON), new_pages (JSON), content_gaps (JSON),
technical_gaps (JSON), positioning, raw
Ergebnisse interpretieren
Wenn der Benutzer nach SEO-Ergebnissen fragt:
- Prüfen Sie die neueste Analyse:
reports/<project>-analysis-*.json - Prüfen Sie das HTML-Dashboard:
reports/all-projects-dashboard.html - Priorisieren Sie nach Auswirkung:
- Schema-Lücken (FAQPage, BreadcrumbList, Organization fehlt = SERP-Feature-Chancen)
- Fehlende Themen, die Mitbewerber abdecken (Inhaltslücken)
- Dünner Inhalt (word_count < 300 auf indexierten Seiten)
- Verwaiste Seiten (keine internen Links = kein PageRank-Fluss)
- Technisches (fehlende Canonical, OG-Tags, Indexierungsprobleme)
Typische Benutzerabläufe
"SEO Intel für meine Seite einrichten"
→ Führen Sie node cli.js setup-web aus, helfen Sie bei der Konfiguration von Domains + API-Schlüsseln, öffnen Sie http://localhost:3000/setup
"Meine Seite und Mitbewerber crawlen"
→ node cli.js crawl <project> – Fortschritt erklären, erläutern, was entdeckt wird
"Was sollte ich als nächstes schreiben?"
→ node cli.js keywords <project> + node cli.js brief <project> – Lücken zusammenfassen und 2-3 Themen empfehlen
"Wie schneide ich im Vergleich zu meinen Mitbewerbern ab?"
→ node cli.js serve – öffnet automatisch das Dashboard aller Projekte im Browser mit Live-Steuerung
"Einen Mitbewerber hinzufügen"
→ node cli.js competitors <project> --add domain.com und dann diese Domain erneut crawlen
"Ein Mitbewerber blockiert meinen Crawler"
→ node cli.js crawl <project> --domain blocked.com --stealth
"Extraktion ist zur Hälfte fehlgeschlagen"
→ node cli.js extract <project> (oder --stealth, wenn es ein Stealth-Crawl war)
"SEO Intel aktualisieren"
→ node cli.js update --apply
Fehlerbehebung
Crawler wird blockiert (403, 429, leere Seiten)
Verwenden Sie den Stealth-Modus:
node cli.js crawl <project> --domain blocked-site.com --stealth
Stealth verwendet Playwright mit gefälschtem Chrome-Fingerabdruck und verzögerten 2–5 s Verzögerungen.
Extraktion liefert leere Ergebnisse
- Prüfen Sie, ob Ollama läuft:
curl http://localhost:11434/api/tags - Prüfen Sie, ob ein Qwen-Modell verfügbar ist:
ollama list - Wenn das Modell auf einem entfernten Rechner ist, setzen Sie
OLLAMA_URL=http://<ip>:11434in.env - Führen Sie Backfill aus:
node cli.js extract <project>
Befehl analyze schlägt fehl
- Prüfen Sie, ob API-Schlüssel in
.envgesetzt ist - Prüfen Sie die Pro-Lizenz:
node cli.js status– zeigt Lizenzstufe - Versuchen Sie einen anderen Anbieter: Fügen Sie einen weiteren Schlüssel zu
.envhinzu, SEO Intel verwendet den vorhandenen
Datenbankfehler / beschädigte DB
# Sicheres Backup + Zurücksetzen
cp seo-intel.db seo-intel.db.bak-$(date +%s)
sqlite3 seo-intel.db "PRAGMA integrity_check"
Wenn der Integritätscheck fehlschlägt, stellen Sie aus dem Backup wieder her oder crawlen Sie erneut.
Node-Version zu alt
SEO Intel erfordert Node.js 22.5+ (verwendet eingebautes SQLite).
node --version # muss 22.5+ sein
nvm install 22 # oder nvm/fnm zum Upgrade verwenden
Playwright / Chromium fehlt
cd ~/.openclaw/skills/froggo-seo-intel/seo-intel
npx playwright install chromium --with-deps
HTML-Dashboard wird nicht aktualisiert
Generieren Sie nach jedem neuen Crawl/Analyse immer neu:
node cli.js html
Dadurch wird das Dashboard aller Projekte generiert und automatisch geöffnet. Oder starten Sie serve neu – es generiert bei jedem Besuch neu.
Memo zu agentischen Erweiterungen (geplante Richtung)
SEO Intel entwickelt sich über statische SEO-Berichte hinaus zu einem agentischen Forschungs- und Ausführungssubstrat. Zukünftige Agenten, die diese Fähigkeit nutzen, sollten in drei Schichten denken:
1. Dev-Pipeline-Export
Behandeln Sie Analyseergebnisse als Eingaben für nachgelagerte Ausführungsagenten. Der nächste Schritt ist ein strukturierter Export, der Erkenntnisse umwandelt in:
- technische Bearbeitungsempfehlungen
- strukturelle/Navigationskorrekturen
- Seiten-Erstellungs-Briefings
- mitbewerberschlagende Implementierungsaufgaben
Zielausgabeformate sollten sowohl:
- maschinenlesbar (JSON für Pipelines/CI/andere Agenten)
- prompt-fertig (Markdown-Briefing für Claude Code / Codex / Gemini)
2. Wettbewerbsaktions-Export
Das Dashboard und die SQLite-Daten enthalten bereits genügend Informationen, um eine prägnante Sie vs. Mitbewerber → Aktionsliste zu generieren. Bevorzugen Sie Exporte, die sagen:
- was Mitbewerber haben
- was dem Ziel fehlt
- warum es wichtig ist
- welche Seite/Bearbeitung als nächstes erstellt werden sollte
Dies sollte ausführungsorientiert sein, nicht nur deskriptive Analytik.
3. Vorschlagende Anwendungsfälle (wichtig)
Die lokale Crawl + Extraktionsdatenbank ist eine allgemeine Intelligenzschicht für Entwickler, nicht nur eine SEO-Berichtsquelle. Agenten sollten sie verwenden, um vorzuschlagen:
- zu erstellende Dokumentationsseiten
- zu verbessernde Produktseiten
- zu bauende Landingpages
- zu schließende Onboarding-Lücken
- Feature-Vergleichsseiten
- Entwickler-Vertrauensseiten (Ratenlimits, Authentifizierung, Sicherheit, Changelog, Schnellstartanleitungen)
Implementieren Sie dies in zwei Formen:
- eine CLI-Oberfläche (z. B. ein zukünftiger Befehl
suggest-usecases <project>) - ein agentennatives Muster, bei dem starke Cloud-Modelle die SQLite-Daten direkt abfragen und daraus schlussfolgern
Die CLI-Version macht die Funktion auffindbar und pipelinefreundlich. Die agentennative Version ermöglicht tiefere, offene Schlussfolgerungen aus demselben lokalen Datensatz.
Arbeitsprinzip
Erstellen Sie nicht einen starren Hook für jedes Szenario. Bringen Sie Agenten stattdessen bei, die DB richtig zu nutzen:
- Untersuchen Sie die Abdeckung von Mitbewerber-Dokumentation/Anleitungen/Referenzen
- Vergleichen Sie sie mit der Zielabdeckung
- Synthetisieren Sie konkrete Seiten-/Bau-/Anwendungsfall-Empfehlungen
- Exportieren Sie die Ergebnisse
...
[gekürzt zur Übersetzung]