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.

설치로 이동

소스 정보

저장소
LeoYeAI/openclaw-master-skills
최근 소스 활동
2026년 7월 20일 02:05
감지된 SKILL.md 언어
영어
스타
2,151
포크
325

설치 방법

기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.

소스 파일 검토

설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.

파일 탐색기
6 개 파일

SKILL.md 표시 중

SKILL.md
소스 지침 · 읽기 전용 미리보기
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`
GitHub에서 보기
이 SKILL.md는 매우 커서 SkillsMP가 여기에는 첫 섹션만 미리 보여줍니다. GitHub에서 보기