GEO-SEO AI Search Optimization Audit Skill
A GEO-first SEO audit skill for the AI search era: scores how citable your site is to ChatGPT, Perplexity, and Google AI Overviews, and produces client-ready reports.
The declared tool surface is broad (Read/Grep/Glob/Bash/WebFetch/Write) without least-privilege refinement, pre-run confirmation, or rollback guidance; data flows are mostly disclosed (writes to cwd and ~/.geo-prospects, with README noting uninstall preserves that directory), and quality gates like robots.txt respect and rate limiting are visible. However, /geo update pulls updates from upstream (supply-chain surface) and external effects of fetching arbitrary URLs are unconstrained. Deducted for: over-broad permissions, no confirmation mechanism, no rollback design.
Instruction self-consistency has gaps: PDF generation requires pandoc + a macOS-only Chrome path in SKILL.md, while the repo tree also contains a ReportLab-based generate_pdf_report.py, with the two paths uncoordinated; sub-skill count is 14 in SKILL.md but 13 in README. Quality gates (50-page cap, timeouts, rate limiting) are sensibly designed. The repo includes a real test suite for fetch_page.py SSR heuristics (covering Issue #19), but it covers only the fetching step, not the audit/scoring/report key paths; failure feedback on abnormal input is not demonstrably explicit. Deducted for: contradictory paths, untested key paths.
Audience and scenarios are clear (six use cases), and business-type detection plus output-file mapping are concrete. But trigger conditions are overly broad ("optimize", "any URL" both trigger — false-invocation risk); PDF depends on a macOS-specific Chrome path, so cross-platform fit is incomplete; no Chinese-language support is declared; reachability depends on the user's network with no boundary disclosure. Deducted for: coarse trigger semantics, insufficient environment-boundary (platform/language) disclosure.
MIT license is explicit; directory structure, output files, and data storage location (~/.geo-prospects) are well documented; progressive disclosure (main SKILL.md → sub-skills → subagents) is architecturally clear. But there is no version number or changelog, the "February 2026" date and sub-skill counts are inconsistent, the maintenance/update path relies solely on the geo-update command without review process, and the description ends with Skool community marketing. Deducted for: missing version governance, inconsistent counts, marketing mixed into technical docs.
The core task (GEO audit, citability scoring, llms.txt generation, report output) is described completely at the documentation level with clear output formats and a clear marginal-value proposition (agency deliverables). But all outputs are static claims with no sample reports or tested artifacts; the PDF path's pandoc/Chrome vs ReportLab contradiction may push debugging cost onto users; scoring is heuristic weighting whose correctness cannot be verified statically. Deducted for: no evidence of usable output, PDF inconsistency weakening direct usability.
The market-data table cites vague sources ("Industry data", "Industry analysts"), with only a few (Yahoo Finance/SparkToro/Gartner) named but no verifiable links; key capability claims (134–167-word optimal passages, 14+ AI crawlers, 11% dual-platform citation rate) lack primary material. The repo does contain a reproducible test suite for fetch_page — limited reproduction evidence but narrow coverage. Deducted for: untraceable marketing metrics, mismatch between test coverage and capability claims.
- Static review only; no commands were executed. All capability conclusions come from source reading, with low confidence.
- PDF reporting depends on a macOS-specific Chrome path plus pandoc; Windows/Linux users may not be able to use it directly, and an uncoordinated ReportLab alternative exists in the repo.
- /geo update pulls updates from upstream — review upstream changes before use to avoid supply-chain risk.
- CRM data is written to ~/.geo-prospects and is NOT removed by the uninstaller; delete manually if it contains prospect data.
- Trigger words are overly broad (e.g. "optimize", any URL), risking false invocation; most market metrics are untraceable "industry data" — verify independently before citing.
- Publisher is unverified and identity unknown; no version numbers or changelog, so upgrade behavior is unpredictable.
What does this skill do, and when should you use it?
This is a GEO (Generative Engine Optimization) audit skill that runs inside Claude Code, with a stated philosophy of GEO-first, SEO-supported. It performs full audits of any website covering AI visibility, citability scoring, AI crawler robots.txt analysis, llms.txt generation, brand mention scanning, schema markup, technical SEO, and content E-E-A-T assessment. During an audit it orchestrates 5 parallel subagents and synthesizes a composite 0-100 GEO Score with a prioritized action plan. It also bundles a lightweight CRM for GEO agencies (prospects, proposals, monthly delta reports) and can export chart-bearing PDF client reports.
Fetches pages via curl/WebFetch, detects business type (SaaS, local, e-commerce, publisher, agency), and crawls up to 50 pages; runs 5 parallel subagents analyzing AI visibility (citability, crawler access, llms.txt, brand mentions), platform readiness (ChatGPT/Perplexity/Google AIO), technical SEO, content quality and E-E-A-T, and schema markup; computes a weighted composite score (citability 25%, brand authority 20%, content 20%, technical 15%, structured data 10%, platform 10%); emits Markdown reports or PDFs converted via pandoc plus headless Chrome; /geo prospect, /geo proposal, and /geo compare manage pipeline data under ~/.geo-prospects/; Python scripts under scripts/ handle fetching, scoring, brand scanning, llms.txt generation, and PDF report building.
- GEO/SEO agencies: run client audits and deliver branded PDF reports and auto-generated proposals
- Marketing teams: track AI search visibility month over month with /geo quick or /geo compare
- Content teams: check whether article passages are structured for AI citation via /geo citability (self-contained 134-167-word passages)
- Local businesses: find out if AI crawlers are blocked in robots.txt and get LocalBusiness schema and Google Business Profile recommendations
- SaaS companies: receive SoftwareApplication schema and comparison-page strategies to improve entity recognition across AI platforms
- E-commerce operators: optimize product pages for AI shopping recommendations (Product schema, review aggregation)
What are this skill's strengths and limitations?
- Unusually complete coverage: an end-to-end GEO workflow from citability scoring and crawler detection to llms.txt and schema generation
- Parallel subagents with a weighted 0-100 scoring model make audits structured, reproducible, and comparable across months
- Built for commercial delivery: charted PDF client reports, proposal generation, monthly delta reports, and a prospect pipeline in one package
- Explicit operating discipline: 50-page cap, 30-second timeout, 1-second request delay, and always respects robots.txt
- MIT-licensed with one-command install/uninstall and dependency isolation in a dedicated venv
- Deeply bound to Claude Code mechanisms (slash commands, subagent orchestration, allowed-tools); porting elsewhere requires rework
- PDF export depends on pandoc and a local Chrome; the documented Chrome path is macOS-only (/Applications/Google Chrome.app) with no documented Linux/Windows equivalent
- Market statistics ($850M market, +527% traffic growth) are third-party citations without verifiable primary research in the source
- The README mentions no automated test suite, and the scoring methodology's exact algorithms cannot be verified from the source material
- Brand mention scanning across 11+ platforms is subject to each platform's anti-scraping measures; success rates are not guaranteed
How do you install this skill?
One-command install (macOS/Linux): curl -fsSL https://raw.githubusercontent.com/zubair-trabzada/geo-seo-claude/main/install.sh | bash. Or manually: git clone https://github.com/zubair-trabzada/geo-seo-claude.git && cd geo-seo-claude && ./install.sh. On Windows, run install-win.sh from Git Bash. Prerequisites: Python 3.8+ (plus python3-venv on Debian/Ubuntu), Claude Code CLI, Git; optionally uv and Playwright. Python dependencies are isolated in ~/.claude/skills/geo/.venv/. PDF export additionally requires pandoc (brew install pandoc) and Google Chrome.
How do you use this skill?
After installing, open a Claude Code session and issue slash commands with a URL, e.g. /geo audit https://example.com for a full audit, /geo quick https://example.com for a 60-second snapshot, /geo crawlers https://example.com to check AI crawler access, or /geo llmstxt https://example.com to generate llms.txt. Trigger words like "geo", "seo", or "AI visibility" also work. Output files land in the current directory (GEO-AUDIT-REPORT.md, GEO-REPORT.pdf, etc.); the PDF flow is to run audit first, then /geo report-pdf.