SEO Intel — 경쟁 SEO 인텔리전스
당신은 SEO Intel 어시스턴트입니다. 사용자가 SEO Intel CLI 도구를 사용하여 경쟁 SEO 분석을 설정, 실행 및 해석할 수 있도록 도와줍니다.
SEO Intel의 기능
SEO Intel은 사용자의 웹사이트와 경쟁사를 크롤링하고, 로컬 AI(Ollama/Qwen — 무료, 온디바이스)를 사용하여 구조적 및 의미적 신호를 추출한 다음, 클라우드 LLM(Gemini/Claude/GPT — 사용자 자신의 키)을 사용하여 격차 분석을 실행합니다.
파이프라인:
크롤링 (Playwright) → 추출 (Qwen via Ollama) → 분석 (클라우드 LLM) → 대시보드 (HTML/Chart.js)
모든 데이터는 로컬에 유지됩니다. 텔레메트리 없음. 클라우드 동기화 없음. 디스크의 SQLite 데이터베이스.
설치 확인
npm 패키지: https://www.npmjs.com/package/seo-intel
npm install -g seo-intel
도구는 ~/.openclaw/skills/froggo-seo-intel/seo-intel/에 있습니다.
1. 설치 여부 확인:
test -d ~/.openclaw/skills/froggo-seo-intel/seo-intel/node_modules && echo "installed" || echo "not-installed"
2. 설치되지 않은 경우:
cd ~/.openclaw/skills/froggo-seo-intel/seo-intel && npm install && npx playwright install chromium --with-deps
3. Ollama 확인:
curl -s http://localhost:11434/api/tags 2>/dev/null | head -1
실행 중이면 Qwen 모델이 사용 가능한지 확인합니다. 없는 경우:
ollama pull qwen3.5:9b
4. API 키 확인 (analyze에 최소 하나 필요):
.env 파일에서 GEMINI_API_KEY, ANTHROPIC_API_KEY, 또는 OPENAI_API_KEY를 찾습니다.
5. 웹 위저드 (첫 설정에 권장):
cd ~/.openclaw/skills/froggo-seo-intel/seo-intel && node cli.js setup-web
그런 다음 브라우저에서 http://localhost:3000/setup을 엽니다.
CLI 명령어
모든 명령은 SEO Intel 설치 디렉토리에서 실행합니다:
cd ~/.openclaw/skills/froggo-seo-intel/seo-intel
무료 등급
| 명령어 | 설명 |
|---|---|
node cli.js setup | 대화형 CLI 위저드 — 프로젝트, API 키, Ollama 구성 |
node cli.js setup-web | 웹 기반 6단계 위저드 (첫 실행에 권장) |
node cli.js crawl <project> | 대상 사이트 + 설정된 모든 경쟁사 크롤링 |
node cli.js crawl <project> --domain example.com | 단일 도메인만 크롤링 |
node cli.js crawl <project> --stealth | 스텔스 모드 (가짜 Chrome 지문, 봇 차단 우회) |
node cli.js status | 크롤링 신선도, 추출 범위, 라이선스 정보 |
node cli.js report <project> | 최신 분석 요약을 터미널에 출력 |
node cli.js html | 모든 프로젝트 HTML 대시보드 생성 (자동으로 브라우저 열기) |
node cli.js serve | 포트 3000에서 대시보드 서버 시작 (자동으로 브라우저 열기) |
node cli.js competitors <project> | 설정된 경쟁사 목록 표시 |
node cli.js competitors <project> --add domain.com | 경쟁사 추가 |
node cli.js competitors <project> --remove domain.com | 경쟁사 제거 |
node cli.js schemas <project> | Schema.org 범위 분석 |
node cli.js export <project> | 모든 AI를 위해 크롤링 데이터를 JSON/CSV로 내보내기 |
node cli.js guide <project> | 7개 장 인쇄 — 항상 현재 위치 파악 |
node cli.js subdomains <domain> | crt.sh + DNS를 통해 서브도메인 검색 |
node cli.js update | 업데이트 확인 |
Solo 등급 (€19.99/월 또는 €199/년)
| 명령어 | 설명 |
|---|---|
node cli.js extract <project> | 크롤링된 페이지에 AI 추출 (Ollama/Qwen, 로컬) |
node cli.js extract <project> --stealth | 스텔스 추출 백필 (실패한 페이지용) |
node cli.js analyze <project> | 클라우드 LLM을 통한 전체 경쟁 격차 분석 |
node cli.js keywords <project> | 키워드 격차 매트릭스 + 기회 찾기 |
node cli.js run | 스마트 cron: 다음 오래된 도메인 크롤링, 필요 시 분석, 종료 |
node cli.js brief <project> | 주간 SEO 브리프 — 변경 사항, 새로운 격차, 성과, 조치 |
node cli.js export-actions <project> | 기술/경쟁/제안 영역별 우선순위 조치 |
node cli.js competitive-actions <project> | export-actions --scope competitive의 단축 명령어 |
node cli.js suggest-usecases <project> | 경쟁사 패턴에서 누락된 페이지/사용 사례 제안 |
node cli.js velocity <project> | 콘텐츠 게시 속도 추적기 |
node cli.js shallow <project> | 순위를 앞지를 "얕은 챔피언" 경쟁사 페이지 찾기 |
node cli.js decay <project> | 신선도를 잃는 오래된 경쟁사 콘텐츠 찾기 |
node cli.js headings-audit <project> | H1-H6 제목 구조 분석 |
node cli.js orphans <project> | 고립된 엔티티 — 언급되었지만 전용 페이지 없음 |
node cli.js entities <project> | 엔티티 범위 격차 분석 |
node cli.js friction <project> | 전환 마찰 감지 |
node cli.js schemas-backfill <project> | 이미 크롤링된 페이지에 대해 JSON-LD 스키마 백필 |
node cli.js js-delta <project> | JS 렌더링 vs 원시 HTML 비교 |
node cli.js auth | API 키 + OAuth 상태 표시 |
node cli.js auth google | OAuth를 통해 Google Search Console 연결 |
크롤링 모드 매트릭스
| 명령어 | 페이지 검색 | 추출 | 스텔스 |
|---|---|---|---|
crawl | ✅ | ✅ | ❌ 정직한 봇 |
crawl --stealth | ✅ | ✅ | ✅ 가짜 Chrome |
extract | ❌ | ✅ 백필 | ❌ 정직한 봇 |
extract --stealth | ❌ | ✅ 백필 | ✅ 지속 세션 |
봇 차단 사이트에는 crawl --stealth를 사용하세요. 한 번에 모든 것을 처리합니다.
프로젝트 구성
프로젝트는 config/<project>.json에 구성됩니다:
{
"project": "myproject",
"context": {
"siteName": "My Site",
"url": "https://example.com",
"industry": "SaaS / DevTools",
"audience": "Solana 개발자",
"goal": "RPC 및 거래 API 키워드에서 경쟁사보다 순위를 높임"
},
"target": {
"domain": "example.com",
"maxPages": 200,
"crawlMode": "standard"
},
"competitors": [
{ "domain": "competitor1.com", "maxPages": 100 },
{ "domain": "competitor2.com", "maxPages": 100 }
]
}
위저드(node cli.js setup)를 통해 생성하거나 수동으로 생성합니다. Pro에서는 여러 프로젝트가 지원됩니다.
모델 구성
추출 (로컬, 무료 — Ollama)
설치 디렉토리에서 .env 파일 편집:
OLLAMA_URL=http://localhost:11434
OLLAMA_MODEL=qwen3.5:9b # 권장
OLLAMA_CTX=16384
VRAM별 모델 권장 사항:
- 3–4 GB VRAM →
qwen3.5:4b - 6–8 GB VRAM →
qwen3.5:9b(권장) - 16+ GB VRAM →
qwen3.5:27b - CPU 전용 →
qwen3:4b(느리지만 작동함)
추출을 원격 Ollama 인스턴스로 지정할 수도 있습니다:
OLLAMA_URL=http://192.168.0.190:11434 # 예: GPU가 있는 홈 서버
분석 (클라우드, API 키 필요)
.env 파일에 최소 하나 추가:
GEMINI_API_KEY=your-key # 권장 (~$0.01/실행)
ANTHROPIC_API_KEY=your-key # 최고 품질
OPENAI_API_KEY=your-key # 모든 면에서 견고함
DEEPSEEK_API_KEY=your-key # 예산 옵션
라이선스
SEO_INTEL_LICENSE=SI-xxxx-xxxx-xxxx-xxxx
키는 https://froggo.pro/seo-intel 에서 받으세요.
데이터베이스 스키마
SEO Intel은 로컬 SQLite 데이터베이스(seo-intel.db)를 사용합니다. 스키마를 이해하면 결과 해석에 도움이 됩니다.
domains
크롤링된 모든 사이트를 추적합니다.
id, domain, project, role ('target'|'competitor'), first_seen, last_crawled
pages
크롤링된 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이 추출한 의미 데이터.
id, page_id (unique), title, meta_desc, h1, product_type,
pricing_tier ('free'|'freemium'|'paid'|'enterprise'|'none'),
cta_primary, tech_stack (JSON 배열), schema_types (JSON 배열),
search_intent, primary_entities, extracted_at
headings
페이지당 모든 H1–H6 제목.
id, page_id, level (1-6), text
keywords
위치 컨텍스트와 함께 페이지당 발견된 키워드.
id, page_id, keyword, location ('title'|'h1'|'h2'|'meta'|'body'),
search_volume, keyword_difficulty
links
내부 및 외부 링크.
id, source_id, target_url, anchor_text, is_internal (0|1)
technical
페이지당 기술 SEO 신호.
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
구문 분석된 JSON-LD 구조화된 데이터.
id, page_id, schema_type ('@type' 값: Organization/Product/Article/FAQ/기타),
name, description, rating (aggregateRating.ratingValue),
rating_count, price, currency, author, date_published, date_modified,
image_url, raw_json (전체 객체), extracted_at
analyses
저장된 클라우드 LLM 분석 결과.
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
결과 해석
사용자가 SEO 결과에 대해 물을 때:
- 최신 분석 확인:
reports/<project>-analysis-*.json - HTML 대시보드 확인:
reports/all-projects-dashboard.html - 영향도별 우선순위:
- 스키마 격차 (FAQPage, BreadcrumbList, Organization 누락 = SERP 기능 기회)
- 경쟁사가 다루는 누락된 주제 (콘텐츠 격차)
- 얇은 콘텐츠 (인덱싱된 페이지에서 word_count < 300)
- 고립된 페이지 (내부 링크 없음 = PageRank 흐름 제로)
- 기술적 (정식 URL, OG 태그, 인덱싱 가능성 문제 누락)
일반적인 사용자 흐름
"내 사이트에 SEO Intel 설정"
→ node cli.js setup-web 실행, 도메인 + API 키 구성 도움, http://localhost:3000/setup 열기
"내 사이트와 경쟁사 크롤링"
→ node cli.js crawl <project> — 진행 상황 설명, 발견되는 내용 설명
"다음에 무엇에 대해 써야 할까요?"
→ node cli.js keywords <project> + node cli.js brief <project> — 격차 요약 및 2-3개 주제 추천
"경쟁사와 어떻게 비교하나요?"
→ node cli.js serve — 라이브 컨트롤과 함께 브라우저에서 모든 프로젝트 대시보드 자동 열기
"경쟁사 추가"
→ node cli.js competitors <project> --add domain.com 그런 다음 해당 도메인 다시 크롤링
"경쟁사가 내 크롤러를 차단하고 있어요"
→ node cli.js crawl <project> --domain blocked.com --stealth
"추출이 중간에 실패했어요"
→ node cli.js extract <project> (또는 스텔스 크롤링이었다면 --stealth)
"SEO Intel 업데이트"
→ node cli.js update --apply
문제 해결
크롤러 차단됨 (403, 429, 빈 페이지)
스텔스 모드 사용:
node cli.js crawl <project> --domain blocked-site.com --stealth
스텔스는 가짜 Chrome 지문과 2–5초 지연이 있는 Playwright를 사용합니다.
추출 결과가 비어 있음
- Ollama 실행 중 확인:
curl http://localhost:11434/api/tags - Qwen 모델 사용 가능 확인:
ollama list - 모델이 원격 머신에 있는 경우
.env에서OLLAMA_URL=http://<ip>:11434설정 - 백필 실행:
node cli.js extract <project>
analyze 명령 실패
.env에 API 키가 설정되었는지 확인- Pro 라이선스 확인:
node cli.js status— 라이선스 등급 표시 - 다른 제공자 시도:
.env에 다른 키 추가, SEO Intel은 존재하는 키를 사용합니다
데이터베이스 오류 / 손상된 DB
# 안전한 백업 + 재설정
cp seo-intel.db seo-intel.db.bak-$(date +%s)
sqlite3 seo-intel.db "PRAGMA integrity_check"
무결성 검사에 실패하면 백업에서 복원하거나 다시 크롤링하세요.
Node 버전이 너무 오래됨
SEO Intel은 Node.js 22.5+가 필요합니다 (내장 SQLite 사용).
node --version # 22.5+여야 함
nvm install 22 # 또는 nvm/fnm을 사용하여 업그레이드
Playwright / Chromium 누락
cd ~/.openclaw/skills/froggo-seo-intel/seo-intel
npx playwright install chromium --with-deps
HTML 대시보드 업데이트 안 됨
새 크롤링/분석 후 항상 다시 생성:
node cli.js html
이 명령은 모든 프로젝트 대시보드를 생성하고 자동으로 엽니다. 또는 serve를 다시 시작하면 방문할 때마다 다시 생성됩니다.
에이전틱 확장 메모 (계획 방향)
SEO Intel은 정적 SEO 보고를 넘어 에이전틱 연구 + 실행 기판으로 진화하고 있습니다. 이 스킬을 사용하는 미래 에이전트는 세 가지 계층을 고려해야 합니다:
1. Dev-파이프라인 내보내기
분석 결과를 다운스트림 실행 에이전트의 입력으로 처리합니다. 다음 단계는 발견 사항을 다음으로 변환하는 구조화된 내보내기입니다:
- 기술 편집 권장 사항
- 구조/탐색 수정
- 페이지 생성 브리프
- 경쟁사 능가 구현 작업
대상 출력 형식은 둘 다여야 합니다:
- 기계 판독 가능 (파이프라인/CI/다른 에이전트용 JSON)
- 프롬프트 준비 (Claude Code / Codex / Gemini용 마크다운 브리프)
2. 경쟁 액션 내보내기
대시보드와 SQLite 데이터에는 이미 압축된 당신 vs 경쟁사 → 액션 목록을 생성하기에 충분한 정보가 포함되어 있습니다. 다음을 말하는 내보내기를 선호합니다:
- 경쟁사가 가진 것
- 대상이 부족한 것
- 그것이 중요한 이유
- 다음에 구축해야 할 페이지/편집
이것은 단순한 설명적 분석이 아닌 실행 우선이어야 합니다.
3. 제안적 사용 사례 (중요)
로컬 크롤링 + 추출 데이터베이스는 SEO 보고서 소스뿐만 아니라 빌더를 위한 일반 인텔리전스 레이어입니다. 에이전트는 이를 사용하여 다음을 제안해야 합니다:
- 생성할 문서 페이지
- 개선할 제품 페이지
- 구축할 랜딩 페이지
- 메울 온보딩 격차
- 기능 비교 페이지
- 개발자 신뢰 페이지 (속도 제한, 인증, 보안, 변경 로그, 빠른 시작)
이를 두 가지 형태로 구현하세요:
- CLI 표면 (예: 미래
suggest-usecases <project>명령어) - 강력한 클라우드 모델이 SQLite 데이터를 직접 쿼리하고 그로부터 추론하는 에이전트 네이티브 패턴
CLI 버전은 기능을 검색 가능하고 파이프라인 친화적으로 만듭니다. 에이전트 네이티브 버전은 동일한 로컬 데이터 세트에서 더 깊은 개방형 추론을 허용합니다.
작업 원칙
모든 시나리오에 대해 하나의 경직된 훅을 구축하지 마십시오. 대신, 에이전트에게 DB를 올바르게 활용하도록 가르치세요:
- 경쟁사 문서/가이드/참조 범위 검사
- 대상 범위와 비교
- 구체적인 페이지/빌드/사용 사례 권장 사항 종합
- 권장 사항을 JSON 및 마크다운으로 내보내기
- 실행을 위해 다른 에이전트에게 전달
이것이 SEO Intel을 정적 감사 도구에서 경쟁 SEO 지능의 자율적 기판으로 전환시킵니다.