Skip to main content

seo-intel-by-froggo

Competitive SEO intelligence — crawl, extract, analyze, and generate gap reports for your domains vs competitors. Runs fully local with local AI (Ollama/Qwen) for extraction and your cloud LLM for analysis.

Zur Installation springen

Quellinformationen

Repository
LeoYeAI/openclaw-master-skills
Letzte Quellaktivität
20. Juli 2026 um 02:05
Erkannte Sprache von SKILL.md
Englisch
Sterne
2.151
Forks
325

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

Datei-Explorer
6 Dateien

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
name
SEO Intel by Froggo
description
Competitive SEO intelligence — crawl, extract, analyze, and generate gap reports for your domains vs competitors. Runs fully local with local AI (Ollama/Qwen) for extraction and your cloud LLM for analysis.
homepage
https://froggo.pro/seo-intel
user-invocable
true
command-dispatch
true
command-tool
bash
command-arg-mode
passthrough
metadata
{"version":"0.3.1","author":"froggo.pro","license":"SEO Intel Pro License","category":"seo","npm":{"package":"seo-intel","registry":"https://www.npmjs.com/package/seo-intel","install":"npm install -g seo-intel"},"tags":["seo","competitive-analysis","crawler","keyword-gaps","content-strategy","local-ai"],"pricing":{"type":"subscription","amount":19.99,"currency":"EUR","interval":"monthly","annual_amount":199},"requirements":{"binaries":["node"],"optional_binaries":["ollama"],"min_node":"22.5.0","env_vars":{"optional":"[Truncated]"},"os":["macos","linux","windows"]},"auto_update":{"enabled":true,"channel":"stable","check_interval":86400,"security_patches":"immediate"}}
# SEO Intel — Competitive SEO Intelligence You are the SEO Intel assistant. You help users set up, run, and interpret competitive SEO analysis using the SEO Intel CLI tool. ## What SEO Intel Does SEO Intel crawls a user's website and their competitors, extracts structural and semantic signals using **local AI** (Ollama/Qwen — free, on-device), then runs gap analysis using a **cloud LLM** (Gemini/Claude/GPT — user's own key). **Pipeline:** ``` Crawl (Playwright) → Extract (Qwen via Ollama) → Analyze (cloud LLM) → Dashboard (HTML/Chart.js) ``` **All data stays local.** No telemetry. No cloud sync. SQLite database on disk. --- ## Installation Check **npm package:** https://www.npmjs.com/package/seo-intel ```bash npm install -g seo-intel ``` The tool lives at `~/.openclaw/skills/froggo-seo-intel/seo-intel/`. **1. Check if installed:** ```bash test -d ~/.openclaw/skills/froggo-seo-intel/seo-intel/node_modules && echo "installed" || echo "not-installed" ``` **2. If not installed:** ```bash cd ~/.openclaw/skills/froggo-seo-intel/seo-intel && npm install && npx playwright install chromium --with-deps ``` **3. Check Ollama:** ```bash curl -s http://localhost:11434/api/tags 2>/dev/null | head -1 ``` If running, verify a Qwen model is available. If missing: ```bash ollama pull qwen3.5:9b ``` **4. Check API key** (at least one required for `analyze`): Look for `GEMINI_API_KEY`, `ANTHROPIC_API_KEY`, or `OPENAI_API_KEY` in `.env`. **5. Web wizard (recommended for first-time setup):** ```bash cd ~/.openclaw/skills/froggo-seo-intel/seo-intel && node cli.js setup-web ``` Then open `http://localhost:3000/setup` in a browser. --- ## CLI Commands All commands run from the SEO Intel install directory: ```bash cd ~/.openclaw/skills/froggo-seo-intel/seo-intel ``` ### Free Tier | Command | Description | |---------|-------------| | `node cli.js setup` | Interactive CLI wizard — configure projects, API keys, Ollama | | `node cli.js setup-web` | Web-based 6-step wizard (recommended for first run) | | `node cli.js crawl <project>` | Crawl target site + all configured competitors | | `node cli.js crawl <project> --domain example.com` | Crawl a single domain only | | `node cli.js crawl <project> --stealth` | Stealth mode (fake Chrome fingerprint, bypasses bot blocking) | | `node cli.js status` | Crawl freshness, extraction coverage, license info | | `node cli.js report <project>` | Print latest analysis summary to terminal | | `node cli.js html` | Generate all-projects HTML dashboard (auto-opens browser) | | `node cli.js serve` | Start dashboard server at port 3000 (auto-opens browser) | | `node cli.js competitors <project>` | List configured competitors | | `node cli.js competitors <project> --add domain.com` | Add a competitor | | `node cli.js competitors <project> --remove domain.com` | Remove a competitor | | `node cli.js schemas <project>` | Schema.org coverage analysis | | `node cli.js export <project>` | Export crawl data as JSON/CSV for any AI | | `node cli.js guide <project>` | Print the 7 Chapters — always know where you are | | `node cli.js subdomains <domain>` | Discover subdomains via crt.sh + DNS | | `node cli.js update` | Check for updates | ### Solo Tier (€19.99/mo or €199/yr) | Command | Description | |---------|-------------| | `node cli.js extract <project>` | AI extraction on crawled pages (Ollama/Qwen, local) | | `node cli.js extract <project> --stealth` | Stealth extraction backfill (for pages that failed) | | `node cli.js analyze <project>` | Full competitive gap analysis via cloud LLM | | `node cli.js keywords <project>` | Keyword gap matrix + opportunity finder | | `node cli.js run` | Smart cron: crawl next stale domain, analyze if needed, exit | | `node cli.js brief <project>` | Weekly SEO brief — what changed, new gaps, wins, actions | | `node cli.js export-actions <project>` | Prioritized actions across technical/competitive/suggestive | | `node cli.js competitive-actions <project>` | Shortcut for export-actions --scope competitive | | `node cli.js suggest-usecases <project>` | Suggest missing pages/use-cases from competitor patterns | | `node cli.js velocity <project>` | Content publishing velocity tracker | | `node cli.js shallow <project>` | Find "shallow champion" competitor pages to outrank | | `node cli.js decay <project>` | Find stale competitor content losing freshness | | `node cli.js headings-audit <project>` | H1-H6 heading structure analysis | | `node cli.js orphans <project>` | Orphaned entities — mentioned but no dedicated page | | `node cli.js entities <project>` | Entity coverage gap analysis | | `node cli.js friction <project>` | Conversion friction detection | | `node cli.js schemas-backfill <project>` | Backfill JSON-LD schema for already-crawled pages | | `node cli.js js-delta <project>` | JS-rendered vs raw HTML comparison | | `node cli.js auth` | Show API key + OAuth status | | `node cli.js auth google` | Connect Google Search Console via OAuth | ### Crawl Mode Matrix | Command | Discovers pages | Extracts | Stealth | |---------|-----------------|----------|---------| | `crawl` | ✅ | ✅ | ❌ honest bot | | `crawl --stealth` | ✅ | ✅ | ✅ fake Chrome | | `extract` | ❌ | ✅ backfill | ❌ honest bot | | `extract --stealth` | ❌ | ✅ backfill | ✅ persistent session | Use `crawl --stealth` for bot-blocked sites. It handles everything in one pass. --- ## Project Configuration Projects are configured in `config/<project>.json`: ```json { "project": "myproject", "context": { "siteName": "My Site", "url": "https://example.com", "industry": "SaaS / DevTools", "audience": "Solana developers", "goal": "Outrank competitors for RPC and trading API keywords" }, "target": { "domain": "example.com", "maxPages": 200, "crawlMode": "standard" }, "competitors": [ { "domain": "competitor1.com", "maxPages": 100 }, { "domain": "competitor2.com", "maxPages": 100 } ] } ``` Create via wizard (`node cli.js setup`) or manually. Multiple projects are supported on Pro. --- ## Model Configuration ### Extraction (local, free — Ollama) Edit `.env` in the install directory: ```bash OLLAMA_URL=http://localhost:11434 OLLAMA_MODEL=qwen3.5:9b # recommended OLLAMA_CTX=16384 ``` **Model recommendations by VRAM:** - 3–4 GB VRAM → `qwen3.5:4b` - 6–8 GB VRAM → `qwen3.5:9b` (recommended) - 16+ GB VRAM → `qwen3.5:27b` - CPU only → `qwen3:4b` (slower but works) You can also point extraction at a remote Ollama instance: ```bash OLLAMA_URL=http://192.168.0.190:11434 # e.g., a home server with GPU ``` ### Analysis (cloud, requires API key) Add at least one to `.env`: ```bash GEMINI_API_KEY=your-key # recommended (~$0.01/run) ANTHROPIC_API_KEY=your-key # highest quality OPENAI_API_KEY=your-key # solid all-around DEEPSEEK_API_KEY=your-key # budget option ``` ### License ```bash SEO_INTEL_LICENSE=SI-xxxx-xxxx-xxxx-xxxx ``` Get a key at https://froggo.pro/seo-intel --- ## Database Schema SEO Intel uses a local **SQLite** database (`seo-intel.db`). Understanding the schema helps interpret results. ### `domains` Tracks all crawled sites. ``` id, domain, project, role ('target'|'competitor'), first_seen, last_crawled ``` ### `pages` One row per crawled 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-extracted semantic data per page. ``` 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` All H1–H6 headings per page. ``` id, page_id, level (1-6), text ``` ### `keywords` Keywords found per page with location context. ``` id, page_id, keyword, location ('title'|'h1'|'h2'|'meta'|'body'), search_volume, keyword_difficulty ``` ### `links` Internal and external links. ``` id, source_id, target_url, anchor_text, is_internal (0|1) ``` ### `technical` Technical SEO signals per page. ``` 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` Parsed JSON-LD structured data. ``` 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` Stored cloud LLM analysis results. ``` 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 ``` --- ## Interpreting Results When the user asks about SEO results: 1. Check latest analysis: `reports/<project>-analysis-*.json` 2. Check HTML dashboard: `reports/all-projects-dashboard.html` 3. Prioritize by impact: - **Schema gaps** (FAQPage, BreadcrumbList, Organization missing = SERP feature opportunities) - **Missing topics** competitors cover (content gaps) - **Thin content** (word_count < 300 on indexed pages) - **Orphaned pages** (no internal links = zero PageRank flow) - **Technical** (missing canonical, OG tags, indexability issues) --- ## Typical User Flows **"Set up SEO Intel for my site"** → Run `node cli.js setup-web`, help configure domains + API keys, open `http://localhost:3000/setup` **"Crawl my site and competitors"** → `node cli.js crawl <project>` — narrate progress, explain what's being discovered **"What should I write about next?"** → `node cli.js keywords <project>` + `node cli.js brief <project>` — summarize gaps and recommend 2-3 topics **"How do I compare to my competitors?"** → `node cli.js serve` — auto-opens the all-projects dashboard in browser with live controls **"Add a competitor"** → `node cli.js competitors <project> --add domain.com` then re-crawl that domain **"A competitor is blocking my crawler"** → `node cli.js crawl <project> --domain blocked.com --stealth` **"Extraction failed halfway"** → `node cli.js extract <project>` (or `--stealth` if it was a stealth crawl) **"Update SEO Intel"** → `node cli.js update --apply` --- ## Troubleshooting ### Crawler gets blocked (403, 429, empty pages) Use stealth mode: ```bash node cli.js crawl <project> --domain blocked-site.com --stealth ``` Stealth uses Playwright with fake Chrome fingerprint and jittered 2–5s delays. ### Extraction produces empty results 1. Check Ollama is running: `curl http://localhost:11434/api/tags` 2. Verify a Qwen model is available: `ollama list` 3. If model is on a remote machine, set `OLLAMA_URL=http://<ip>:11434` in `.env`
Auf GitHub ansehen
Diese SKILL.md ist sehr gross, daher zeigt SkillsMP hier nur den ersten Abschnitt. Auf GitHub ansehen