geo-audit – Security skill for AI agents
Full website GEO+SEO audit with parallel subagent delegation.
Install the geo-audit skill with one command
Pick the tool you use, copy the command and paste it in your terminal. The skill lands in that tool's skills folder and is ready in your next session.
Claude Code
mkdir -p ~/.claude/skills && curl -fsSL https://skill.dn1nguoi.com/z/geo-audit-ef54e.tgz | tar xz -C ~/.claude/skills
Call it in Claude Code: /geo-audit – then describe the task you want done.
Codex
mkdir -p ~/.codex/skills && curl -fsSL https://skill.dn1nguoi.com/z/geo-audit-ef54e.tgz | tar xz -C ~/.codex/skills
Call it in Codex: $geo-audit – then describe the task you want done.
Hermes Agent
mkdir -p ~/.hermes/skills && curl -fsSL https://skill.dn1nguoi.com/z/geo-audit-ef54e.tgz | tar xz -C ~/.hermes/skills
Call it in Hermes Agent: /geo-audit – then describe the task you want done.
DeepSeek
mkdir -p ~/.deepcode/skills && curl -fsSL https://skill.dn1nguoi.com/z/geo-audit-ef54e.tgz | tar xz -C ~/.deepcode/skills
Call it in DeepSeek: /geo-audit – then describe the task you want done.
SKILL.md content
GEO Audit Orchestration Skill
Purpose
This skill performs a comprehensive Generative Engine Optimization (GEO) audit of any website. GEO is the practice of optimizing web content so that AI systems (ChatGPT, Claude, Perplexity, Gemini, etc.) can discover, understand, cite, and recommend it. This audit measures how well a site performs across all GEO dimensions and produces an actionable improvement plan.
Key Insight
Traditional SEO optimizes for search engine rankings. GEO optimizes for AI citation and recommendation. No validated relationship between this skill's heuristic score and real platform visibility is established here. Research results from controlled benchmarks do not guarantee gains for a live site. The two disciplines overlap but have distinct requirements.
---
Audit Workflow
Phase 1: Discovery and Reconnaissance
Step 1: Fetch Homepage and Detect Business Type
1. Use WebFetch to retrieve the homepage at the provided URL.
2. Extract the following signals:
- Page title, meta description, H1 heading
- Navigation menu items (reveals site structure)
- Footer content (reveals business info, location, legal pages)
- Schema.org markup on 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)
3. Classify the business type using these patterns:
| 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 above signals -- classify by dominant pattern |
Step 2: Crawl Sitemap and Internal Links
1. Attempt to fetch /sitemap.xml and /sitemap_index.xml.
2. If 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 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 directives -- do not fetch disallowed paths.
5. Enforce a maximum of 50 pages and a 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/without alt text
- Open Graph and Twitter Card meta tags
- Response status code
- Whether the page has structured data
---
Phase 2: Parallel Subagent Delegation
When authorized parallel agents and companion skills are available, delegate analysis to 5 specialized subagents; otherwise perform the same bounded analyses sequentially and disclose missing coverage. Each subagent operates on the collected page data and produces a category score (0-100) plus findings.
Subagent 1: AI Visibility Analysis (invoke skill geo-citability)
- Analyze content blocks for quotability by AI systems (citability scoring)
- Check AI crawler access via robots.txt and llms.txt presence
- Scan brand presence across YouTube, Reddit, Wikipedia, LinkedIn
- Score brand authority signals that AI models use for entity recognition
Subagent 2: Platform Optimization (invoke skill geo-platform-optimizer)
- Assess readiness for Google AI Overviews, ChatGPT, Perplexity, Gemini, Bing Copilot
- Check platform-specific ranking factors and optimization opportunities
Subagent 3: Technical GEO Infrastructure (invoke skill geo-technical)
- 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
Subagent 4: Content E-E-A-T Quality (invoke skill geo-content)
- 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
Subagent 5: Schema & Structured Data (invoke skill geo-schema)
- 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 Generation
Composite GEO Score Calculation
The overall GEO Score (0-100) is a weighted average of six category scores:
| Category | Weight | What It Measures |
|---|---|---|
| AI Citability | 25% | How quotable/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; strong performance on this local rubric; citation likelihood unmeasured |
| 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; many rubric items unmet; actual AI visibility unmeasured |
---
Issue Severity Classification
Every issue found during the audit is classified by severity:
Critical (Fix Immediately)
- Unintended crawler blocking conflicting with the site owner's documented access policy
- Verified failure to render/index important content; JavaScript-only delivery is not automatically nonindexable
- Domain-level noindex directive
- Site returns 5xx errors on key pages
- Proven material accessibility/data-integrity defect (schema absence alone is not critical)
- Brand not recognized as an entity by any AI system
High (Fix Within 1 Week)
- Unintended blocking of a specifically desired supported crawler; training and search crawlers serve different purposes
- Missing useful machine-readable documentation where a specific consumer demonstrably requires it; llms.txt absence alone is not a known ranking defect
- 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
- Inaccurate supported structured data; FAQ markup alone does not establish AI visibility or Google feature eligibility
- Thin author bios without credentials
- Missing relevant independent evidence, where justified; never create inauthentic platform 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
Generate a file called GEO-AUDIT-REPORT.md with the following structure:
# 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] |
| Con… (full content is in the download package)
Related skills
- geo-platform-optimizer – Platform-specific AI search optimization — audit and optimize for Google AI Overviews…
- geo-proposal – Auto-generate a professional, client-ready GEO service proposal from audit data.
- geo-report – Generate a professional, client-facing GEO report combining all audit results into a…
- geo-schema – Schema.org structured data audit and generation optimized for AI discoverability —…
- geo-technical – Technical SEO audit with GEO-specific checks — crawlability, indexability, security…
- senior-secops – Senior SecOps engineer skill for application security, vulnerability management…
- senior-security – Use when the user asks for STRIDE threat modeling, DREAD risk scoring, data-flow-diagram…
- hardware-security – Authorized hardware and embedded interface security research: UART/JTAG discovery…