seo-geo-optimizer
Universal SEO & GEO skill for AI IDEs — Google, Bing, AI Overviews, Bing Copilot, ChatGPT, Perplexity. Works with Cursor, Windsurf, GitHub Copilot, Replit, Lovable, Bolt, and any AI assistant.
🚀 seo-geo-optimizer
The only AI skill that asks questions first, then does everything itself.
Full SEO + GEO optimization — automated end-to-end by your IDE.
The tool automatically guides your AI assistant to generate and execute 14 rigorous, error-free phases of optimization for your site without asking you a single question after its initial interrogation. In essence, it asks you 40 questions to collect information on all possible states, handles generation of critical ranking components, formats the results for modern LLM-engines to utilize, and delivers concrete AI files, bypassing useless consultation completely. It is ideally geared for developers who view SEO optimization as a necessary but repetitive chore.
⚡ Quick Start
Install in one command
Open your terminal inside your project folder and run:npx seo-geo-optimizer
That's it. The installer auto-detects your IDE and places the skill in the right directory.
Or copy-paste manually — no terminal needed
Choose your IDE below and follow the 2-step instructions.
📄 The raw skill file: skill/SEO_GEO_SKILL.md — this is what you're installing.
Cursor
Step 1 — Create the file .cursor/rules/seo-geo-optimizer.mdc in your project root.
Step 2 — Paste the full contents of skill/SEO_GEO_SKILL.md into it.
# Or via terminal
mkdir -p .cursor/rules
curl -o .cursor/rules/seo-geo-optimizer.mdc \
https://raw.githubusercontent.com/Aryanpanwar10005/seo-geo-optimizer/main/skill/SEO_GEO_SKILL.md
The skill activates automatically in all Cursor AI and Composer sessions.
Windsurf
Step 1 — Create the file .windsurf/rules/seo-geo-optimizer.md in your project root.
Step 2 — Paste the full contents of skill/SEO_GEO_SKILL.md into it.
# Or via terminal
mkdir -p .windsurf/rules
curl -o .windsurf/rules/seo-geo-optimizer.md \
https://raw.githubusercontent.com/Aryanpanwar10005/seo-geo-optimizer/main/skill/SEO_GEO_SKILL.md
The skill activates automatically in all Cascade AI sessions.
GitHub Copilot (VS Code)
Step 1 — Create the file .github/copilot-instructions.md in your project root.
Step 2 — Paste the full contents of skill/SEO_GEO_SKILL.md into it.
# Or via terminal
mkdir -p .github
curl -o .github/copilot-instructions.md \
https://raw.githubusercontent.com/Aryanpanwar10005/seo-geo-optimizer/main/skill/SEO_GEO_SKILL.md
The skill activates automatically in all Copilot Chat sessions inside VS Code.
Replit
Replit does not use rule files. Use this method:
Step 1 — Open your Replit project.
Step 2 — Click the AI assistant icon → open System Prompt or Custom Instructions.
Step 3 — Paste the full contents of skill/SEO_GEO_SKILL.md into the field.
Step 4 — Save and start a new conversation.
Tip: You can also keep the raw file URL open in a browser tab and paste it fresh each session if Replit doesn't persist your system prompt between projects.
Lovable
Step 1 — Open your Lovable project settings.
Step 2 — Navigate to Custom Instructions or System Prompt.
Step 3 — Paste the full contents of skill/SEO_GEO_SKILL.md.
Alternatively, the installer creates .ai/seo-geo-optimizer.md if you run npx seo-geo-optimizer --lovable.
Bolt
Step 1 — Open your Bolt project.
Step 2 — Go to Project Settings → AI Instructions or the prompt configuration panel.
Step 3 — Paste the full contents of skill/SEO_GEO_SKILL.md.
Alternatively, run npx seo-geo-optimizer --bolt to auto-install into .bolt/prompt.
Antigravity (Google IDE)
Global Installation — Works across all projects automatically.
Step 1 — Create the global rules directory:
mkdir -p ~/.gemini
Step 2 — Install the skill globally:
curl -o ~/.gemini/GEMINI.md \
https://raw.githubusercontent.com/Aryanpanwar10005/seo-geo-optimizer/main/skill/SEO_GEO_SKILL.md
Alternatively, run npx seo-geo-optimizer --antigravity to auto-install globally.
The skill activates automatically in all Antigravity sessions across every project.
Any other AI IDE or assistant
If your IDE isn't listed, the pattern is always the same:
- Find where your IDE reads persistent AI instructions (rules file, system prompt, custom instructions, context file)
- Paste the full contents of
skill/SEO_GEO_SKILL.mdthere - Start a new session
The skill file is plain Markdown. It works anywhere an AI can read text.
🤖 How It Works
Step 1: One Conversation (Phase 0 — Intake)
The IDE asks precisely 40 questions collected across 5 distinct groups, forming all the required context data for your site optimization without manual interaction:
- Group A: Site identity (8 questions — URL, brand, description, founding year, etc.)
- Group B: Business type & goals (8 questions — type, audience, competitors, CMS, etc.)
- Group C: Current SEO state (8 questions — existing schema, sitemap, traffic, etc.)
- Group D: Content & links (8 questions — content type, social profiles, GSC, etc.)
- Group E: Brand & AI presence (8 questions — knowledge panel, E-E-A-T, success KPIs, etc.)
Step 2: 14-Phase Auto-Execution
| Phase | Name | What Gets Generated |
|---|---|---|
| 1 | Site Intelligence Report | site_intelligence_report.md |
| 2 | Competitor Analysis | competitor_analysis.md |
| 3 | Execution Plan | execution_plan.md |
| 4 | Content Strategy | keyword_clusters.json + content_brief_{slug}.md |
| 5 | Technical SEO | robots.txt + sitemap.xml + meta_tags.json + cwv_precheck.md |
| 6 | Schema & Structured Data | organization_schema.json + {slug}_schema.json per page |
| 7 | GEO Optimization | llms.txt + geo_tracking.json |
| 8 | Internal Architecture | internal_link_audit.json |
| 9 | Content Generation | content/{slug}.md per page |
| 10 | On-Page Optimization | All HTML meta tags injected |
| 11 | GEO Citation Setup | geo_tracking.json baseline populated |
| 12 | Final Verification | final_verification_report.md |
| 13 | Maintenance Schedule | maintenance_schedule.md |
| 14 | Deliverables Summary | README_DELIVERABLES.md |
🏗️ What Gets Built (File Output Map)
your-project/
├── site_intelligence_report.md ← Phase 1
├── competitor_analysis.md ← Phase 2
├── execution_plan.md ← Phase 3
├── keyword_clusters.json ← Phase 4
├── content_briefs/
│ ├── brief-{slug-1}.md ← Phase 4
│ ├── brief-{slug-2}.md ← Phase 4
│ └── brief-{slug-3}.md ← Phase 4
├── content/
│ ├── {slug-1}.md ← Phase 9
│ ├── {slug-2}.md ← Phase 9
│ └── {slug-3}.md ← Phase 9
├── robots.txt ← Phase 5 (AI crawlers allowed)
├── sitemap.xml ← Phase 5
├── llms.txt ← Phase 7 (GEO: AI context file)
├── meta_tags.json ← Phase 5
├── cwv_precheck.md ← Phase 5
├── organization_schema.json ← Phase 6 (entity resolution)
├── {slug}_schema.json ← Phase 6 (per page)
├── internal_link_audit.json ← Phase 8
├── geo_tracking.json ← Phase 7 + 11
├── final_verification_report.md ← Phase 12
├── maintenance_schedule.md ← Phase 13
└── README_DELIVERABLES.md ← Phase 14
🔒 The 16 Iron Laws
Every task the IDE performs is governed by 16 non-negotiable rules, all verified programmatically:
| # | Law | Automated Check |
|---|---|---|
| LAW_1 | Read the ENTIRE skill file before starting Phase 0 | Completion of this read = prerequisite |
| LAW_2 | Never skip Phase 0. Never assume answers. Always ask first | Phase 0 complete flag must be set |
| LAW_3 | Never execute a phase until the previous phase is verified complete | Phase completion checklist must pass |
| LAW_4 | Every file generated must be written to disk — no output-only responses | fs.writeFileSync or equivalent on every deliverable |
| LAW_5 | Never ask the user a question that can be inferred from their answers | Derive everything possible before asking |
| LAW_6 | All JSON must be validated before use. All schema must validate before injection | JSON.parse() + required fields check |
| LAW_7 | All URLs in schema must be absolute (https://). All dates must be ISO 8601 | Regex validation on every URL and date field |
| LAW_8 | Every page must open with a 40–60 word Direct Answer Block | Word count check on first paragraph |
| LAW_9 | Every page must contain ≥1 cited statistic per 200 words | Fact density counter per section |
| LAW_10 | Organization schema with sameAs[] must exist on every site |
Schema presence check on homepage output |
| LAW_11 | GPTBot, PerplexityBot, ClaudeBot must be ALLOWED in robots.txt | robots.txt parser — allow rules check |
| LAW_12 | No page may be orphaned (zero internal links pointing to it) | Internal link graph — zero-incoming-edge check |
| LAW_13 | H2 headings must be phrased as questions or full statements (>4 words) | Regex: H2 ends in ? OR word count > 4 |
| LAW_14 | Never recommend, implement, or validate based on debunked myths | Anti-pattern check before any recommendation |
| LAW_15 | llms.txt must be generated at site root |
HTTP 200 check on {url}/llms.txt after generation |
| LAW_16 | All generated content must be written to files, not printed to chat | File existence check after every generation step |
🌐 Compatible IDEs
| IDE | Status | Auto-Install Path |
|---|---|---|
| Cursor | ✅ Full Support | .cursor/rules/seo-geo-optimizer.md |
| Windsurf | ✅ Full Support | .windsurf/rules/seo-geo-optimizer.md |
| GitHub Copilot | ✅ Full Support | .github/copilot-instructions.md |
| Bolt.new | ✅ Full Support | .bolt/prompt |
| Lovable | ✅ Full Support | AGENTS.md |
| Replit | ✅ Full Support | .replit/agent/instructions.md |
| Claude Code | ✅ Full Support | CLAUDE.md |
If your IDE isn't listed, place the skill content in your IDE's system prompt or instructions file.
📊 What the Skill Covers
|
SEO Coverage
|
GEO Coverage
|
Anti-Pattern Protection
|
💬 The 40 Intake Questions
Click to see all 40 questions the IDE asks youGroup A — Site Identity (8 questions)
- What is your website URL?
- What is your brand/business name?
- In one sentence, what does your business do?
- What year was the business founded?
- What is your primary contact email?
- What country/region does your business primarily serve?
- What is the main language of your site content?
- Is this site new (under 6 months) or existing?
Group B — Business Type & Goals (8 questions)
- What type of business is this? (Blog / E-commerce / SaaS / Local / Agency / etc.)
- Who is your target audience? (Be specific)
- What are your top 3 target keywords or topics?
- Who are your top 2–3 competitors? (URLs preferred)
- What is your primary business goal for SEO?
- Do you have a Google Business Profile?
- Are there specific pages you want to optimize first?
- What CMS or tech stack is the site built on?
Group C — Current SEO State (8 questions)
- Does the site currently have any schema markup?
- Does the site have a sitemap.xml?
- Does the site have a robots.txt file?
- Roughly how many pages does the site have?
- Has the site ever had a Google penalty or manual action?
- Does the site appear in any AI search results (ChatGPT, Perplexity, AI Overviews)?
- What is the site's approximate monthly organic traffic?
- Are there any specific technical issues you're already aware of?
Group D — Content & Links (8 questions)
- What kind of content does the site primarily publish?
- How often is new content published?
- Does the site have a blog or resource section?
- Are there existing pages that used to get traffic but have declined?
- Has the site done any link building before?
- Which social media profiles does the business have?
- Is the business listed on any third-party directories or platforms?
- Does the site have a Google Search Console account connected?
Group E — Brand & AI Presence (8 questions)
- Does a Google Knowledge Panel appear for your brand name?
- Is your business listed on Wikipedia or Wikidata?
- Have you been cited in any major publications or industry blogs?
- What makes your business the authoritative source on your main topic? (E-E-A-T)
- Do you have any original data or research that only your business has published?
- What is the single most important question your audience asks that you should answer?
- Are there topics or keywords you explicitly want to AVOID appearing for?
- What does success look like in 6 months?
🚫 10 SEO Myths This Skill Will Never Implement
See the anti-pattern list| If you ask for this... | The skill will say... |
|---|---|
| Force Google to crawl via sitemap | Sitemaps are suggestions. Fix internal links instead. |
| Fix all GSC errors to improve rankings | GSC errors don't subtract ranking points. They're informational. |
| Refresh content to boost SEO | Only helps freshness-sensitive queries. Add new information or skip. |
| Disavow low-DA backlinks | Google ignores them. Mass-disavowing loses you authority. |
| Enforce strict H-tag hierarchy | Google doesn't penalize H-tag structure. Optimize for readability. |
| Optimize for bounce rate / dwell time | Google doesn't use on-site engagement metrics as ranking signals. |
| Fix site speed first — it's the top ranking factor | CWV are tiebreakers. Authority matters more. |
| Add images to every post for SEO | Decorative images add load time and zero ranking benefit. |
| Build our EEAT score | There's no EEAT score. Build genuine expertise signals instead. |
| Remove low-DA backlinks — they're hurting us | They don't hurt. Removal wastes time and can harm your profile. |
📁 Repository Structure
seo-geo-optimizer/
├── skill/
│ └── SEO_GEO_SKILL.md ← The skill file (place in your IDE)
├── bin/
│ └── install.js ← Auto-installer (run via npx)
├── assets/
│ └── preview.svg ← Terminal demo image
├── .github/
│ └── workflows/
│ ├── publish.yml ← Auto-publish to npm on release
│ └── validate.yml ← Validate skill + JSON on every push
├── package.json ← npm package config (v1.2.0)
├── seo-geo-prompt.json ← Machine-readable skill schema
└── README.md ← This file
🛠️ Manual Installation
If you prefer to install manually instead of using npx seo-geo-optimizer:
1. Download the skill file
Copy the contents of skill/SEO_GEO_SKILL.md
2. Place it in your IDE's rules folder
| IDE | Path |
|---|---|
| Cursor | .cursor/rules/seo-geo-optimizer.md |
| Windsurf | .windsurf/rules/seo-geo-optimizer.md |
| GitHub Copilot | .github/copilot-instructions.md |
| Bolt.new | .bolt/prompt |
| Lovable | AGENTS.md |
| Replit | .replit/agent/instructions.md |
| Claude Code | CLAUDE.md |
3. Activate in your IDE
Open your AI chat and type: Start seo-geo-optimizer
🤝 Contributing
Contributions are welcome. Before opening a PR:
- Fork the repo
- Make your changes to
skill/SEO_GEO_SKILL.mdorbin/install.js - Run
npm run validateto check skill file integrity - Open a PR with a clear description of what changed and why
What we're looking for:
- New automation phases that require zero manual steps
- More schema types in the auto-detector
- Additional IDE compatibility
- Better intake questions that derive more from fewer answers
What we don't accept:
- Tasks requiring manual user action mid-execution
- Myth-based recommendations (see anti-pattern list)
- Changes that break the
npx seo-geo-optimizerinstall flow
📜 License
MIT — see LICENSE for details.
⭐ Star this repo
if it saves you time — it helps others find it too.
Made with ☕ by Aryan Panwar
Yorumlar (0)
Yorum birakmak icin giris yap.
Yorum birakSonuc bulunamadi