# How to Perform a Full GEO + SEO Audit with Claude Code CLI

> Perform a full GEO + SEO audit with Claude Code CLI. The geo-seo-claude repo provides a comprehensive audit with a single command, scoring up to 50 pages for optimized visibility.

- Repository: [Zubair Trabzada/geo-seo-claude](https://github.com/zubair-trabzada/geo-seo-claude)
- Tags: how-to-guide
- Published: 2026-09-08

---

**The geo-seo-claude repository enables a complete Generative Engine Optimization (GEO) audit through a single `/geo audit` command in Claude Code CLI, crawling up to 50 pages and aggregating six weighted category scores into a composite 0-100 GEO score.**

Performing a comprehensive **GEO + SEO audit** requires analyzing how AI engines perceive, cite, and rank your content across platforms like ChatGPT, Perplexity, and Google AI Overviews. The **zubair-trabzada/geo-seo-claude** open-source project implements this as a native Claude Code CLI skill, orchestrating parallel sub-agents that evaluate technical infrastructure, content authority, and platform readiness.

## The Three-Phase Audit Architecture

The audit workflow defined in [`skills/geo-audit/SKILL.md`](https://github.com/zubair-trabzada/geo-seo-claude/blob/main/skills/geo-audit/SKILL.md) executes through three distinct phases that transform raw website data into actionable intelligence.

### Phase 1: Discovery and Crawling

When you invoke the audit command, the CLI initiates **Discovery** by fetching the homepage to determine the business type, then crawls up to **50 pages** via sitemap or internal link analysis. This phase relies on [`scripts/fetch_page.py`](https://github.com/zubair-trabzada/geo-seo-claude/blob/main/scripts/fetch_page.py) to retrieve and parse HTML content, establishing the dataset for downstream analysis.

### Phase 2: Parallel Sub-Agent Analysis

Five specialized sub-agents run concurrently to evaluate distinct optimization vectors:

- **AI Visibility** ([`agents/geo-ai-visibility.md`](https://github.com/zubair-trabzada/geo-seo-claude/blob/main/agents/geo-ai-visibility.md)): Assesses citability, crawler access permissions, and brand authority metrics using [`scripts/citability_scorer.py`](https://github.com/zubair-trabzada/geo-seo-claude/blob/main/scripts/citability_scorer.py) and [`scripts/brand_scanner.py`](https://github.com/zubair-trabzada/geo-seo-claude/blob/main/scripts/brand_scanner.py).
- **Platform Optimization** ([`agents/geo-platform-analysis.md`](https://github.com/zubair-trabzada/geo-seo-claude/blob/main/agents/geo-platform-analysis.md)): Evaluates readiness for ChatGPT, Perplexity, Google AI Overviews, Gemini, and Bing Copilot.
- **Technical SEO** ([`agents/geo-technical.md`](https://github.com/zubair-trabzada/geo-seo-claude/blob/main/agents/geo-technical.md)): Audits robots.txt, server-side rendering (SSR), Core Web Vitals, security headers, and mobile responsiveness.
- **Content E-E-A-T** ([`agents/geo-content.md`](https://github.com/zubair-trabzada/geo-seo-claude/blob/main/agents/geo-content.md)): Scores Experience, Expertise, Authoritativeness, and Trustworthiness signals.
- **Schema Markup** ([`agents/geo-schema.md`](https://github.com/zubair-trabzada/geo-seo-claude/blob/main/agents/geo-schema.md)): Detects, validates, and generates JSON-LD structured data using templates from the `schema/` directory.

Each sub-agent produces a **0-100 score** and a detailed findings report.

### Phase 3: Score Aggregation and Reporting

The **composite GEO score** calculates as a weighted average: **citability 25%**, **brand 20%**, **E-E-A-T 20%**, **technical 15%**, **schema 10%**, and **platform 10%**. The orchestrator generates [`GEO-AUDIT-REPORT.md`](https://github.com/zubair-trabzada/geo-seo-claude/blob/main/GEO-AUDIT-REPORT.md) containing severity-ranked issues and a prioritized 30-day action plan.

## How to Run a Full GEO Audit from the CLI

Execute the complete audit workflow with the primary command:

```text
/geo audit https://example.com

```

This command coordinates the three-phase pipeline: discovery, parallel sub-agent analysis, and weighted score aggregation. The output writes to [`GEO-AUDIT-REPORT.md`](https://github.com/zubair-trabzada/geo-seo-claude/blob/main/GEO-AUDIT-REPORT.md) in your current working directory, containing technical diagnostics and remediation steps.

## Generating Client-Ready Reports

Transform raw audit data into polished deliverables for stakeholders:

```text
/geo report https://example.com

```

This generates [`GEO-CLIENT-REPORT.md`](https://github.com/zubair-trabzada/geo-seo-claude/blob/main/GEO-CLIENT-REPORT.md) with an executive summary, score dashboard, and prioritized action plan.

For PDF distribution (requires the `reportlab` Python package):

```text
/geo report-pdf https://example.com

```

This calls [`scripts/generate_pdf_report.py`](https://github.com/zubair-trabzada/geo-seo-claude/blob/main/scripts/generate_pdf_report.py) to produce `GEO-REPORT-<brand>.pdf` with color-coded score gauges, methodology appendices, and visual charts rendered from [`templates/geo-report-template.html`](https://github.com/zubair-trabzada/geo-seo-claude/blob/main/templates/geo-report-template.html) and [`templates/geo-report-style.css`](https://github.com/zubair-trabzada/geo-seo-claude/blob/main/templates/geo-report-style.css).

## Quick Audits and Individual Sub-Skills

For rapid assessment before committing to a full crawl:

```text
/geo quick https://example.com

```

Returns an inline terminal summary and GEO score within 60 seconds, optionally saving to a CRM prospect record.

Run individual analysis modules by calling specific sub-skills:

```text
/geo technical https://example.com

```

This invokes only the technical SEO agent ([`agents/geo-technical.md`](https://github.com/zubair-trabzada/geo-seo-claude/blob/main/agents/geo-technical.md)), outputting [`GEO-TECHNICAL-AUDIT.md`](https://github.com/zubair-trabzada/geo-seo-claude/blob/main/GEO-TECHNICAL-AUDIT.md) with detailed infrastructure checklists.

## Core Components and File Structure

The audit system relies on these key files within the repository:

| Component | Role | Key Files |
|-----------|------|-----------|
| **Skill Router** | Routes `/geo` commands to sub-skills | [`geo/SKILL.md`](https://github.com/zubair-trabzada/geo-seo-claude/blob/main/geo/SKILL.md) |
| **Audit Orchestrator** | Implements the three-phase workflow | [`skills/geo-audit/SKILL.md`](https://github.com/zubair-trabzada/geo-seo-claude/blob/main/skills/geo-audit/SKILL.md) |
| **Sub-Agents** | Domain-specific analysis modules | [`agents/geo-ai-visibility.md`](https://github.com/zubair-trabzada/geo-seo-claude/blob/main/agents/geo-ai-visibility.md), [`agents/geo-platform-analysis.md`](https://github.com/zubair-trabzada/geo-seo-claude/blob/main/agents/geo-platform-analysis.md), [`agents/geo-technical.md`](https://github.com/zubair-trabzada/geo-seo-claude/blob/main/agents/geo-technical.md), [`agents/geo-content.md`](https://github.com/zubair-trabzada/geo-seo-claude/blob/main/agents/geo-content.md), [`agents/geo-schema.md`](https://github.com/zubair-trabzada/geo-seo-claude/blob/main/agents/geo-schema.md) |
| **Python Utilities** | Data fetching and scoring logic | [`scripts/fetch_page.py`](https://github.com/zubair-trabzada/geo-seo-claude/blob/main/scripts/fetch_page.py), [`scripts/citability_scorer.py`](https://github.com/zubair-trabzada/geo-seo-claude/blob/main/scripts/citability_scorer.py), [`scripts/brand_scanner.py`](https://github.com/zubair-trabzada/geo-seo-claude/blob/main/scripts/brand_scanner.py), [`scripts/llmstxt_generator.py`](https://github.com/zubair-trabzada/geo-seo-claude/blob/main/scripts/llmstxt_generator.py), [`scripts/generate_pdf_report.py`](https://github.com/zubair-trabzada/geo-seo-claude/blob/main/scripts/generate_pdf_report.py) |
| **Schema Templates** | JSON-LD examples for validation | `schema/*.json` |
| **Report Templates** | PDF generation assets | [`templates/geo-report-template.html`](https://github.com/zubair-trabzada/geo-seo-claude/blob/main/templates/geo-report-template.html), [`templates/geo-report-style.css`](https://github.com/zubair-trabzada/geo-seo-claude/blob/main/templates/geo-report-style.css) |

Reference these files in [`docs/architecture.md`](https://github.com/zubair-trabzada/geo-seo-claude/blob/main/docs/architecture.md) and [`docs/commands-reference.md`](https://github.com/zubair-trabzada/geo-seo-claude/blob/main/docs/commands-reference.md) for deep technical implementation details.

## Summary

- **Single-command execution**: Run `/geo audit <url>` to trigger the complete three-phase workflow.
- **Parallel analysis**: Five specialized sub-agents evaluate AI visibility, platform readiness, technical SEO, E-E-A-T, and schema markup simultaneously.
- **Weighted scoring**: The composite GEO score applies specific weights (citability 25%, brand 20%, E-E-A-T 20%) to prioritize AI-citation factors.
- **Multiple output formats**: Generate Markdown technical reports, client-ready summaries, or styled PDFs via `/geo report` and `/geo report-pdf`.
- **Modular architecture**: Individual sub-skills like `/geo technical` allow targeted audits without full site crawls.

## Frequently Asked Questions

### How long does a full GEO audit take to complete?

A standard audit crawls up to 50 pages and typically completes in 3-5 minutes depending on site speed and complexity. The `/geo quick` command provides a 60-second snapshot for rapid assessment, while full PDF generation adds additional processing time for rendering charts and formatting.

### What is the difference between GEO and traditional SEO?

**Generative Engine Optimization** focuses specifically on how AI systems (ChatGPT, Perplexity, Google AI Overviews) cite, summarize, and recommend content, whereas traditional SEO targets ranking in conventional search results. The audit weights **citability** (25%) and **platform optimization** (10%) heavily because these metrics directly influence AI citation behavior rather than just SERP positioning.

### Can I customize the audit crawl depth or scoring weights?

The default configuration in [`skills/geo-audit/SKILL.md`](https://github.com/zubair-trabzada/geo-seo-claude/blob/main/skills/geo-audit/SKILL.md) limits crawling to 50 pages to balance thoroughness with execution time. While the weighted scoring formula (citability 25%, brand 20%, etc.) is hardcoded in the current implementation, you can run individual sub-skills like `/geo technical` or `/geo content` to focus analysis on specific categories without the composite score aggregation.

### What files are generated after running the audit?

The primary output is [`GEO-AUDIT-REPORT.md`](https://github.com/zubair-trabzada/geo-seo-claude/blob/main/GEO-AUDIT-REPORT.md) containing technical findings and action plans. When using `/geo report`, the system creates [`GEO-CLIENT-REPORT.md`](https://github.com/zubair-trabzada/geo-seo-claude/blob/main/GEO-CLIENT-REPORT.md) for stakeholder presentations. The `/geo report-pdf` command generates `GEO-REPORT-<brand>.pdf` using the HTML/CSS templates in the `templates/` directory and the `reportlab` Python library for professional distribution.