geo-seo-claude: A GEO and SEO Audit Skill for Claude Code
GEO-first SEO skill for Claude Code. Comprehensive AI search optimization for any website — citability scoring, AI crawler analysis, brand authority, schema markup, platform-specific optimization, and PDF reports. If you want learn how to sell this to real businesses, check out the skool community
At a glance
- What is it?
- geo-seo-claude is a Claude Code skill that installs a set of slash commands for auditing websites against Generative Engine Optimization (GEO) signals, covering AI citability scoring, brand mention analysis, AI crawler access checks, llms.txt generation, structured data validation, and client-ready PDF reporting. It targets engineers and agencies who need to measure and improve a site's visibility in AI-powered answer engines like ChatGPT, Perplexity, and Google AI Overviews.
- Who is it for?
- GEO agencies and marketing teams who build client deliverables should evaluate the `/geo audit` and `/geo report-pdf` commands, which handle the full analysis-to-report pipeline in a single session. The skill requires Claude Code CLI and Python 3.8+.
- Can I use it commercially?
- Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository last received commits 1 day ago.
- What is it written in?
- Mainly Python, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 29, 2026, and from our analysis. They are not legal advice.
Editorial analysis
What GEO Is and Why This Skill Targets AI Answer Engines
Traditional search engine optimization targets Google's link-based ranking signals: backlinks, keyword placement, page authority. Generative Engine Optimization (GEO) targets a different set of signals that determine whether an AI answer engine cites or mentions a site in its responses. The signals that matter for AI citation include how content is structured for extraction, whether the site has an llms.txt file, whether AI crawlers are permitted in robots.txt, and how often the brand is mentioned on AI-cited platforms like Reddit, Wikipedia, and YouTube.
This skill installs into Claude Code as a set of slash commands that run analysis subagents against a target URL. The README frames the need directly: "AI search is eating traditional search. This tool optimizes for where traffic is going, not where it was."
The tool does not replace traditional SEO work. It adds a parallel audit dimension for AI-specific signals. A site that scores well on traditional technical SEO may still score poorly on GEO if it has never optimized for AI citation readiness, has blocked AI crawlers, or lacks structured schema markup that AI systems use to understand content type.
The skill is organized around a primary skill file (`geo/SKILL.md`) that routes Claude Code slash commands to 13 specialized sub-skills in the `skills/` directory. Each sub-skill handles a specific domain of the audit.
Twelve Slash Commands and the Five-Phase Full Audit Flow
The skill exposes 12 slash commands from Claude Code:
`/geo audit <url>` runs the full parallel audit using five subagents simultaneously. `/geo quick <url>` delivers a 60-second GEO visibility snapshot. `/geo citability <url>` scores content for AI citation readiness. `/geo crawlers <url>` checks robots.txt for AI crawler access. `/geo llmstxt <url>` analyzes or generates an llms.txt file. `/geo brands <url>` scans brand mentions across AI-cited platforms. `/geo platforms <url>` provides platform-specific optimization recommendations. `/geo schema <url>` analyzes and generates structured data markup. `/geo technical <url>` runs a technical SEO audit. `/geo content <url>` assesses content quality and E-E-A-T signals. `/geo report <url>` generates a client-ready markdown report. `/geo report-pdf` generates a professional PDF report with charts and score gauges.
The `/geo audit` command is the most comprehensive. According to the README it runs in four phases. Discovery fetches the homepage, detects business type, and crawls the sitemap. Parallel analysis then launches five subagents simultaneously across AI Visibility, Platform Analysis, Technical SEO, Content Quality, and Schema Markup. Synthesis aggregates the five outputs into a composite GEO Score on a 0 to 100 scale. The report phase outputs a prioritized action plan organized by quick wins and longer-term improvements.
The parallel subagent architecture is the mechanism that enables fast full-audit turnaround. Each subagent runs independently, and the synthesis step combines their scored outputs at the end.
Installing on macOS, Linux, and Windows
The skill installs through a shell script that sets up a Python virtual environment and places Claude Code skill and agent files in the appropriate locations.
One-line install for macOS and Linux:
curl -fsSL https://raw.githubusercontent.com/zubair-trabzada/geo-seo-claude/main/install.sh | bashManual install if you want to inspect the script before running it:
git clone https://github.com/zubair-trabzada/geo-seo-claude.git
cd geo-seo-claude
./install.shOn Windows, the README provides a separate script (`install-win.sh`) and specifies that Git Bash is required. PowerShell and Command Prompt are explicitly not supported. Windows users should right-click the project folder and choose "Open Git Bash here" before running the install command.
The hard requirements are Python 3.8 or newer (with `python3-venv` on Debian/Ubuntu), Claude Code CLI, and Git. The `uv` package manager is optional; when detected, the installer uses it for a faster dependency install. Playwright is optional and enables screenshot functionality in certain report commands.
Python dependencies install into a dedicated virtual environment at `~/.claude/skills/geo/.venv/`. The README notes that the system Python is not touched and the skill files reference the venv path directly, so the commands work regardless of which `python3` resolves on the PATH. An `uninstall.sh` script is included to remove the skill and its venv, though the prospect data directory is not removed automatically.
The Scoring Model: Six Categories and Their Weights
The composite GEO Score aggregates six category scores using fixed percentage weights defined in the README:
AI Citability and Visibility contributes 25%, the largest single weight. This reflects the stated premise that citation behavior by AI systems is the central output. Brand Authority Signals and Content Quality (including E-E-A-T assessment) each contribute 20%. Technical Foundations contribute 15%. Structured Data and Platform Optimization each contribute 10%.
The highest-weight category, AI Citability, applies the most specific structural standard. The README states that optimal AI-cited passages run 134 to 167 words, are self-contained, are fact-rich, and directly answer a specific question. Content that is too long, too vague, or embedded in complex layouts without semantic markup scores lower on citability. The citability analysis evaluates individual content blocks against this target structure.
Brand Authority at 20% reflects a specific finding in the README: brand mentions on AI-cited platforms correlate 3x more strongly with AI visibility than backlinks. The brand mentions command scans YouTube, Reddit, Wikipedia, LinkedIn, and more than seven other platforms. For sites with strong traditional SEO (many backlinks) but low brand presence on AI-cited platforms, this category is often the largest gap in a GEO audit.
Platform Optimization at 10% acknowledges the README's observation that only 11% of domains are cited by both ChatGPT and Google AI Overviews for the same query. Recommendations in this category are tailored per platform rather than generic.
Citability Scoring, Brand Mentions, and the llms.txt Standard
The citability command analyzes content blocks on a page against the 134 to 167 word optimal range for AI-cited passages. Content outside this range or lacking clear factual statements and direct question answering scores lower. The README does not describe the methodology behind the optimal range, but presents it as a specific target for the `/geo citability` output.
The AI crawler analysis command checks `robots.txt` for rules affecting 14 or more named AI crawlers. The list includes GPTBot (OpenAI), ClaudeBot (Anthropic), and PerplexityBot among others. Many sites that were never explicitly configured for AI crawlers have accidental block rules from wildcard `Disallow` entries written before these crawlers existed. The command surfaces these and provides specific allow or block recommendations for each crawler.
The llms.txt feature addresses an emerging standard for helping AI systems understand site structure. An `llms.txt` file at the site root provides machine-readable metadata about the site's content, purpose, and structure, analogous to how `sitemap.xml` serves traditional search crawlers. The `/geo llmstxt` command can either analyze an existing file or generate a new one.
The platform-specific optimization command addresses the fragmentation of AI answer engine citation behavior. ChatGPT citation signals differ from Perplexity citation signals, which differ from Google AI Overviews. The 11% overlap figure from the README means that optimizing for one platform does not automatically improve visibility on others.
Where the Tool Falls Short: Data Persistence and the Manual Cleanup Step
The CRM-style commands (`/geo prospect`, `/geo proposal`, `/geo compare`) write data to `~/.geo-prospects/`. This directory stores client and prospect pipeline data in `prospects.json`, proposal documents in `~/.geo-prospects/proposals/`, and monthly delta reports in `~/.geo-prospects/reports/`. The README states explicitly that the uninstaller does not remove this directory. Users who want to clean up all data after removing the skill must delete `~/.geo-prospects/` manually.
This has practical implications for shared machines and for practitioners who want to maintain a clean audit environment between engagements. Client domain names and business context data persist on disk indefinitely unless actively purged.
PDF report generation via `/geo report-pdf` requires Playwright, which is listed as an optional dependency during install. Users who skip the Playwright install can use all other commands but cannot generate PDF reports. Installing Playwright after the initial setup requires running the installation separately; the README does not document the post-install Playwright setup command in the visible architecture section.
The skill operates entirely within the Claude Code session, so audits require an active internet connection. The tool does not cache previous audit results across sessions; each `/geo audit` run performs a fresh crawl.
Screaming Frog SEO Spider and the Difference in Scope
Screaming Frog SEO Spider is the established desktop tool for technical SEO site crawls. It discovers every URL on a site, checks HTTP status codes, audit title and meta description lengths, identifies duplicate content and redirect chains, flags missing canonical tags, and generates crawl reports. It runs as a standalone desktop application and requires no development environment or cloud accounts.
The contrast with geo-seo-claude is in both scope and audience. Screaming Frog operates on traditional technical SEO signals that have been stable for more than a decade: page speed, link equity, structured on-page elements. geo-seo-claude focuses on GEO signals that are less than three years old as a discipline: AI citability structure, AI crawler access, llms.txt, and brand presence on AI-cited platforms. Screaming Frog does not check whether a page is structured to be cited by ChatGPT; geo-seo-claude does not crawl internal link structure or flag redirect chains.
Screening Frog is accessible to non-technical marketers through a GUI. geo-seo-claude requires Claude Code CLI and Python 3.8+, putting it in the developer and technically-oriented marketer category. For a complete site audit, running both tools covers different dimensions: traditional crawl health from Screaming Frog and AI visibility readiness from geo-seo-claude.
Editorial conclusion
GEO agencies and marketing teams who build client deliverables should evaluate the `/geo audit` and `/geo report-pdf` commands, which handle the full analysis-to-report pipeline in a single session. The skill requires Claude Code CLI and Python 3.8+. Before running audits on client sites, confirm that the site's robots.txt does not accidentally block the audit crawl, and establish a cleanup routine for the `~/.geo-prospects/` directory since the uninstaller does not remove it. The skill is under active development: the last push was on 2026-09-27.
Frequently asked questions
What does the GEO skill for Claude do?
The geo-seo-claude skill adds slash commands to Claude Code for auditing websites against GEO signals. The `/geo audit` command runs a full parallel audit across AI citability, brand mentions, platform optimization, technical SEO, and structured data, producing a prioritized action plan and an optional PDF report.
What is GEO SEO and how does it work?
GEO (Generative Engine Optimization) focuses on making web content visible to AI answer engines like ChatGPT, Perplexity, and Google AI Overviews. It works by optimizing the signals AI systems use to decide what to cite: content structure for AI extraction, AI crawler access in robots.txt, brand mentions on AI-cited platforms, and schema markup. geo-seo-claude audits all of these through specialized sub-skills.
Is SEO dead now with AI?
The README's framing is direct: AI-referred traffic is growing rapidly while traditional organic search traffic is projected to decline. The tool is built on the premise that optimizing for where traffic is going (AI answer engines) matters more than optimizing only for where it was (link-based search). Traditional SEO and GEO address different but increasingly overlapping parts of discovery.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/zubair-trabzada-geo-seo-claude)