seo-geolisted
Install: claude install-skill sarbak/strategy-skills
# SEO & GEO Optimization
Run `/seo-geo` with an argument to jump to a specific phase, or run without arguments for the full workflow.
Arguments: `research`, `audit`, `gaps`, `geo`, `content`, `monitor`, or a specific page path like `/pricing`.
## Setup
Before running, detect the project context automatically:
1. **Site domain**: Read from the codebase (look for `metadataBase`, canonical URLs, or `NEXT_PUBLIC_` env vars). Ask the user if unclear.
2. **Repo**: Use the current working directory.
3. **Keyword data**: Look for `SEO_KEYWORDS.md` in the project root. Create if missing.
4. **Framework**: Detect from package.json (Next.js, Nuxt, Astro, etc.)
5. **DataForSEO credentials**: Set `DATAFORSEO_CREDENTIALS` env var with your Base64-encoded `email:password`. Get an account at [dataforseo.com](https://dataforseo.com). Example: `export DATAFORSEO_CREDENTIALS=$(echo -n 'you@email.com:yourpassword' | base64)`
Ask the user for:
- **Voice/tone** description (if not in CLAUDE.md)
- **Key competitors** (domains)
- **Seed keywords** for research
- **Brand concerns** (name conflicts, etc.)
If any of these are already documented in CLAUDE.md, SEO_KEYWORDS.md, or memory, use those instead of asking.
---
## Phase 1: Research
Read SEO_KEYWORDS.md first. If it's stale (>30 days) or doesn't exist, run these API calls.
### 1a. Keyword research
Pull search volume for target keywords via DataForSEO:
```bash
curl -s -X POST "https://api.dataforseo.com/v3/keywords_data/google_ads/sea