GEO Audit: Score Your Site for AI Search Citation
A full Generative Engine Optimization audit that crawls a site, scores it 0-100 across six weighted categories, and returns a prioritized 30-day fix list
Your site ranks on Google and still never gets quoted by ChatGPT or Perplexity. Those are two different games with two different scorecards. This playbook runs the second scorecard: crawl the site, score six GEO categories, and hand back the exact fixes that move you from invisible to cited.
Who it's for: SEO consultants adding GEO services, marketing leads at SaaS companies, agency owners running client audits, in-house content strategists, founders who want to know why AI never mentions their product
Example
"Run a GEO audit on acme.io" → A GEO-AUDIT-REPORT.md with an overall score of 58/100, business type detected as SaaS, GPTBot blocked in robots.txt flagged as a High issue, missing FAQ schema on 12 pages, five quick wins, and a week-by-week 30-day action plan
New here? 3-minute setup guide → | Already set up? Copy the template below.
# GEO Audit
Run a full Generative Engine Optimization audit of a website. GEO is the practice of optimizing web content so AI systems (ChatGPT, Claude, Perplexity, Gemini, Google AI Overviews) can discover, understand, cite, and recommend it. This audit measures the site across every GEO dimension and produces a composite score with an action plan.
Traditional SEO optimizes for rankings. GEO optimizes for citation. Sites that score high on GEO metrics see 30-115% more visibility in AI-generated responses (Georgia Tech / Princeton / IIT Delhi, 2024). The two disciplines overlap but have distinct requirements.
When the user gives you a URL, run the workflow below and write `GEO-AUDIT-REPORT.md`.
---
## Phase 1: Discovery and Reconnaissance
### Step 1: Fetch the Homepage and Detect Business Type
Retrieve the homepage. Extract:
- Page title, meta description, H1 heading
- Navigation menu items (reveals site structure)
- Footer content (business info, location, legal pages)
- Schema.org markup on the homepage (Organization, LocalBusiness, etc.)
- Pricing page link (SaaS indicator)
- Product listing patterns (E-commerce indicator)
- Blog/resource section (Publisher indicator)
- Service pages (Agency indicator)
- Address/phone/Google Maps embed (Local business indicator)
Classify the business type:
| Business Type | Detection Signals |
|---|---|
| **SaaS** | Pricing page, "Sign up" / "Free trial" CTAs, app.domain.com subdomain, feature comparison tables, integration pages |
| **Local Business** | Physical address on homepage, Google Maps embed, "Near me" content, LocalBusiness schema, service area pages |
| **E-commerce** | Product listings, shopping cart, product schema, category pages, price displays, "Add to cart" buttons |
| **Publisher** | Blog-heavy navigation, article schema, author pages, date-based archives, RSS feeds, high content volume |
| **Agency/Services** | Case studies, portfolio, "Our Work" section, team page, client logos, service descriptions |
| **Hybrid** | Combination of the above. Classify by dominant pattern |
### Step 2: Crawl the Sitemap and Internal Links
1. Try `/sitemap.xml` and `/sitemap_index.xml`.
2. If a sitemap exists, extract up to 50 unique page URLs, prioritized by:
- Homepage (always include)
- Top-level navigation pages
- High-value pages (pricing, about, contact, key service/product pages)
- Blog posts (sample the 5-10 most recent)
- Category/landing pages
3. If no sitemap exists, crawl internal links from the homepage:
- Extract all `<a href>` links pointing to the same domain
- Follow up to 2 levels deep
- Prioritize pages linked from main navigation
4. Respect `robots.txt`. Do not fetch disallowed paths.
5. Cap at 50 pages, 30-second timeout per fetch.
### Step 3: Collect Page-Level Data
For each page in the crawl set, record:
- URL, title, meta description, canonical URL
- H1-H6 heading structure
- Word count of main content
- Schema.org types present
- Internal/external link counts
- Images with and without alt text
- Open Graph and Twitter Card meta tags
- Response status code
- Whether the page has structured data
---
## Phase 2: Five Analysis Passes
Run five analysis passes over the collected page data. Each pass produces a category score (0-100) plus findings. Run them in parallel if the environment supports it.
**Pass 1: AI Visibility**
- Score content blocks for quotability by AI systems (citability)
- Check AI crawler access via robots.txt and llms.txt presence
- Scan brand presence across YouTube, Reddit, Wikipedia, LinkedIn
- Score the brand authority signals AI models use for entity recognition
**Pass 2: Platform Optimization**
- Assess readiness for Google AI Overviews, ChatGPT, Perplexity, Gemini, Bing Copilot
- Check platform-specific ranking factors and optimization opportunities
**Pass 3: Technical GEO Infrastructure**
- Analyze robots.txt for AI crawler access
- Verify meta tags, headers, and technical accessibility for AI systems
- Check page speed, server-side rendering, and Core Web Vitals
- Assess security headers and mobile optimization
**Pass 4: Content E-E-A-T Quality**
- Evaluate Experience, Expertise, Authoritativeness, Trustworthiness signals
- Check author bios, credentials, source citations
- Assess content freshness, depth, and originality
- Verify About page quality and team credentials
**Pass 5: Schema and Structured Data**
- Validate all schema.org markup
- Check for GEO-critical schema types (FAQ, HowTo, Organization, Product, Article)
- Assess schema completeness and accuracy
- Identify missing schema opportunities
---
## Phase 3: Score Aggregation and Report
### Composite GEO Score
The overall GEO Score (0-100) is a weighted average of six category scores:
| Category | Weight | What It Measures |
|---|---|---|
| **AI Citability** | 25% | How quotable and extractable content is for AI systems |
| **Brand Authority** | 20% | Third-party mentions, entity recognition signals |
| **Content E-E-A-T** | 20% | Experience, Expertise, Authoritativeness, Trustworthiness |
| **Technical GEO** | 15% | AI crawler access, llms.txt, rendering, speed |
| **Schema & Structured Data** | 10% | Schema.org markup quality and completeness |
| **Platform Optimization** | 10% | Presence on platforms AI models train on and cite |
**Formula:**
```
GEO_Score = (Citability * 0.25) + (Brand * 0.20) + (EEAT * 0.20) + (Technical * 0.15) + (Schema * 0.10) + (Platform * 0.10)
```
### Score Interpretation
| Score Range | Rating | Interpretation |
|---|---|---|
| 90-100 | Excellent | Top-tier GEO optimization. Site is highly likely to be cited by AI |
| 75-89 | Good | Strong GEO foundation with room for improvement |
| 60-74 | Fair | Moderate GEO presence. Significant optimization opportunities exist |
| 40-59 | Poor | Weak GEO signals. AI systems may struggle to cite or recommend |
| 0-39 | Critical | Minimal GEO optimization. Site is largely invisible to AI systems |
---
## Issue Severity Classification
Classify every issue found during the audit.
### Critical (Fix Immediately)
- All AI crawlers blocked in robots.txt
- No indexable content (JavaScript-rendered only, no SSR)
- Domain-level noindex directive
- Site returns 5xx errors on key pages
- Complete absence of any structured data
- Brand not recognized as an entity by any AI system
### High (Fix Within 1 Week)
- Key AI crawlers (GPTBot, ClaudeBot, PerplexityBot) blocked
- No llms.txt file present
- Zero question-answering content blocks on key pages
- Missing Organization or LocalBusiness schema
- No author attribution on content pages
- All content behind login/paywall with no preview
### Medium (Fix Within 1 Month)
- Partial AI crawler blocking (some allowed, some blocked)
- llms.txt exists but is incomplete or malformed
- Content blocks average under 50 citability score
- Missing FAQ schema on pages with FAQ content
- Thin author bios without credentials
- No Wikipedia or Reddit brand presence
### Low (Optimize When Possible)
- Minor schema validation errors
- Some images missing alt text
- Content freshness issues on non-critical pages
- Missing Open Graph tags
- Suboptimal heading hierarchy on some pages
- LinkedIn company page exists but is incomplete
---
## Output Format
Write `GEO-AUDIT-REPORT.md` using this structure:
```markdown
# GEO Audit Report: [Site Name]
**Audit Date:** [Date]
**URL:** [URL]
**Business Type:** [Detected Type]
**Pages Analyzed:** [Count]
---
## Executive Summary
**Overall GEO Score: [X]/100 ([Rating])**
[2-3 sentence summary of the site's GEO health, biggest strengths, and most critical gaps.]
### Score Breakdown
| Category | Score | Weight | Weighted Score |
|---|---|---|---|
| AI Citability | [X]/100 | 25% | [X] |
| Brand Authority | [X]/100 | 20% | [X] |
| Content E-E-A-T | [X]/100 | 20% | [X] |
| Technical GEO | [X]/100 | 15% | [X] |
| Schema & Structured Data | [X]/100 | 10% | [X] |
| Platform Optimization | [X]/100 | 10% | [X] |
| **Overall GEO Score** | | | **[X]/100** |
---
## Critical Issues (Fix Immediately)
[Each critical issue with specific page URLs and recommended fix]
## High Priority Issues
[Each high-priority issue with details]
## Medium Priority Issues
[Each medium-priority issue]
## Low Priority Issues
[Each low-priority issue]
---
## Category Deep Dives
### AI Citability ([X]/100)
[Findings, examples of good and bad passages, rewrite suggestions]
### Brand Authority ([X]/100)
[Platform presence map, mention volume, sentiment]
### Content E-E-A-T ([X]/100)
[Author quality, source citations, freshness, depth]
### Technical GEO ([X]/100)
[Crawler access, llms.txt, rendering, headers]
### Schema & Structured Data ([X]/100)
[Schema types found, validation results, missing opportunities]
### Platform Optimization ([X]/100)
[Presence on YouTube, Reddit, Wikipedia, etc.]
---
## Quick Wins (Implement This Week)
1. [Specific, actionable quick win with expected impact]
2. [Another quick win]
3. [Another quick win]
4. [Another quick win]
5. [Another quick win]
## 30-Day Action Plan
### Week 1: [Theme]
- [ ] Action item 1
- [ ] Action item 2
### Week 2: [Theme]
- [ ] Action item 1
- [ ] Action item 2
### Week 3: [Theme]
- [ ] Action item 1
- [ ] Action item 2
### Week 4: [Theme]
- [ ] Action item 1
- [ ] Action item 2
---
## Appendix: Pages Analyzed
| URL | Title | GEO Issues |
|---|---|---|
| [url] | [title] | [issue count] |
```
---
## Quality Gates
- **Page Limit:** Never crawl more than 50 pages per audit. Prioritize high-value pages.
- **Timeout:** 30 seconds maximum per page fetch. Skip pages that exceed it.
- **Robots.txt:** Always check and respect robots.txt before crawling. Note any AI-specific directives.
- **Rate Limiting:** Wait at least 1 second between page fetches so you do not overload the server.
- **Error Handling:** Log failed fetches and continue the audit. Report fetch failures in the appendix.
- **Content Type:** Only analyze HTML pages. Skip PDFs, images, and other binary content.
- **Deduplication:** Canonicalize URLs before crawling. Skip duplicates (HTTP vs HTTPS, www vs non-www, trailing slashes).
---
## Business-Type-Specific Adjustments
### SaaS Sites
- Extra weight on: feature comparison tables (high citability), integration pages, documentation quality
- Check for: API documentation structure, changelog pages, knowledge base organization
- Key schema: SoftwareApplication, FAQPage, HowTo
### Local Businesses
- Extra weight on: NAP consistency, Google Business Profile signals, local schema
- Check for: service area pages, location-specific content, review markup
- Key schema: LocalBusiness, GeoCoordinates, OpeningHoursSpecification
### E-commerce Sites
- Extra weight on: product descriptions (citability), comparison content, buying guides
- Check for: product schema completeness, review aggregation, FAQ sections on product pages
- Key schema: Product, AggregateRating, Offer, BreadcrumbList
### Publishers
- Extra weight on: article quality, author credentials, source citation practices
- Check for: Article schema, author pages, publication date freshness, original research
- Key schema: Article, NewsArticle, Person (author), ClaimReview
### Agency/Services
- Extra weight on: case studies (citability), expertise demonstration, thought leadership
- Check for: portfolio schema, team credentials, industry-specific expertise signals
- Key schema: Organization, Service, Person (team), Review
---
## Note on the Full Suite
This audit is the orchestration layer of the geo-seo-claude toolkit, which ships 15 skills covering citability scoring, llms.txt generation, brand mention scanning, schema generation, PDF reporting, and monthly delta tracking. As a single CLAUDE.md, run the five analysis passes yourself instead of delegating to the specialist subagents. The full suite is at https://github.com/zubair-trabzada/geo-seo-claude
What This Does
Turns Claude into a GEO auditor. Give it a URL and it fetches the homepage, classifies the business type, crawls the sitemap, collects page-level data across up to 50 pages, then runs five analysis passes over that data: AI visibility, platform optimization, technical infrastructure, content E-E-A-T, and schema markup.
The output is GEO-AUDIT-REPORT.md: a composite GEO Score out of 100, a per-category breakdown, every issue sorted into four severity tiers, five quick wins, and a 30-day plan broken into weekly themes.
GEO measures something SEO does not. Traditional SEO optimizes for ranking position. GEO optimizes for whether an AI system quotes you in its answer. A Georgia Tech / Princeton / IIT Delhi study from 2024 found sites scoring well on GEO metrics get 30-115% more visibility in AI-generated responses.
Quick Start
Step 1: Create a Project Folder
mkdir -p ~/Documents/GEOAudit
Step 2: Download the Template
Click Download above, then:
mv ~/Downloads/CLAUDE.md ~/Documents/GEOAudit/
Step 3: Start Working
cd ~/Documents/GEOAudit
claude
Then ask: "Run a GEO audit on https://yourdomain.com"
How the Score Works
Six categories, weighted:
| Category | Weight | What It Measures |
|---|---|---|
| AI Citability | 25% | How quotable and extractable your content is |
| Brand Authority | 20% | Third-party mentions, entity recognition signals |
| Content E-E-A-T | 20% | Experience, Expertise, Authoritativeness, Trustworthiness |
| Technical GEO | 15% | AI crawler access, llms.txt, rendering, speed |
| Schema & Structured Data | 10% | Schema.org markup quality and completeness |
| Platform Optimization | 10% | Presence on platforms AI models train on and cite |
Citability and Brand Authority carry 45% between them. That reflects how AI systems actually pick sources: they need a passage they can lift, and they need to recognize your brand as a real entity.
Scores land in five bands. Above 90 is Excellent, 75-89 Good, 60-74 Fair, 40-59 Poor, and below 40 means AI systems can barely see you.
The Severity Tiers
Every issue gets sorted into one of four buckets with an implied deadline:
- Critical (fix now) — all AI crawlers blocked, no server-rendered content, domain-level noindex, 5xx errors on key pages, zero structured data.
- High (fix this week) — GPTBot, ClaudeBot, or PerplexityBot blocked, no llms.txt, no question-answering content blocks, missing Organization schema, no author attribution.
- Medium (fix this month) — partial crawler blocking, malformed llms.txt, citability under 50, missing FAQ schema, thin author bios.
- Low (when convenient) — schema validation warnings, missing alt text, missing Open Graph tags, heading hierarchy issues.
The tiering is the useful part. Most audit tools hand you 200 undifferentiated findings. This one tells you which five to do on Monday.
Business-Type Adjustments
The audit detects what kind of site it is looking at and shifts weight accordingly:
- SaaS — feature comparison tables score high for citability. Checks API docs structure, changelogs, knowledge base. Key schema: SoftwareApplication, FAQPage, HowTo.
- Local business — NAP consistency, service area pages, review markup. Key schema: LocalBusiness, GeoCoordinates, OpeningHoursSpecification.
- E-commerce — product descriptions, comparison content, buying guides. Key schema: Product, AggregateRating, Offer, BreadcrumbList.
- Publisher — author credentials, source citation practices, freshness, original research. Key schema: Article, NewsArticle, Person, ClaimReview.
- Agency — case studies are the citability engine. Checks team credentials and thought leadership. Key schema: Organization, Service, Person, Review.
Detection runs off homepage signals: a pricing page and free-trial CTA reads as SaaS, a Maps embed and address reads as local, case studies and a portfolio read as agency.
Crawl Behavior
The template sets hard limits so an audit stays polite and finishes:
- 50 pages maximum per audit, prioritized by navigation position and page value
- 30-second timeout per fetch, skip anything slower
- At least 1 second between fetches
- robots.txt respected before any crawl, with AI-specific directives noted
- HTML only. PDFs, images, and binaries get skipped
- URLs canonicalized first so HTTP/HTTPS and www/non-www duplicates do not eat the page budget
Failed fetches get logged and reported in the appendix instead of stopping the run.
Tips
- Run it on a competitor first. The report format makes side-by-side comparison easy, and a competitor scoring 80 while you score 45 is a more useful number than either score alone.
- Start with the Technical GEO category even though it only carries 15%. A blocked GPTBot caps every other category's real-world value at zero.
- Re-run monthly and diff the reports. Score movement per category shows which work paid off.
- The 30-day plan is generated as checkboxes. Keep the file in the repo and tick items off as you ship.
Limitations
- Claude cannot query AI systems to confirm whether they actually cite you. Scores predict citability from page signals, they do not measure real citations.
- Brand Authority scoring depends on what Claude can fetch about your presence on YouTube, Reddit, Wikipedia, and LinkedIn. Coverage varies.
- Core Web Vitals get estimated from page characteristics when real user field data is unavailable. Treat those numbers as directional.
- The 50-page cap means large sites get sampled, not fully crawled. Point the audit at your highest-value section for a deeper read.
- This is the orchestration layer of a 15-skill suite. Running it as a single CLAUDE.md means Claude does all five analysis passes itself instead of delegating to specialist subagents. The full toolkit, including the citability scorer, llms.txt generator, and PDF reporting, lives in the source repo.