GEO Audit (AI Readiness)
The GEO (Generative Engine Optimization) audit measures how well your website is optimized for discovery and citation by AI search engines like ChatGPT, Perplexity, Gemini, and Google AI Overviews. It analyzes your structured data, AI crawlability, content structure, and technical signals — then gives you a score and actionable recommendations.
How It Works
Hoppla fetches three resources from your site:
- Your page HTML — analyzed for structured data, content structure, and technical signals
- robots.txt — checked for AI bot access rules across the ~17 tracked AI crawlers (GPTBot, ClaudeBot, PerplexityBot, Google-Extended, CCBot, Bytespider, Amazonbot, Applebot-Extended, meta-externalagent, and more — see Robots.txt monitoring)
- llms.txt — a new standard that helps AI models understand your site
All analysis is done statically from the HTML — no AI API calls are made. This means the check is fast, free, and produces consistent results.
GEO is an advisory check — it produces warning status for low scores but never creates incidents.
Categories
Your GEO score is a weighted average of four categories:
Structured Data (30%)
Evaluates how well your page communicates meaning through machine-readable markup:
| Check | What it measures |
|---|---|
| JSON-LD presence | Are there <script type="application/ld+json"> blocks? |
| High-value schema types | FAQPage, Article, HowTo, Product, Organization, BreadcrumbList |
| Schema completeness | Do blocks include name and description properties? |
| Multiple JSON-LD blocks | Comprehensive markup with multiple schema types |
| Content freshness | datePublished / dateModified in structured data |
| Entity authority | sameAs links to Wikipedia, LinkedIn, or social profiles |
AI Crawlability (20%)
Checks whether AI bots can actually access and understand your content:
| Check | What it measures |
|---|---|
| AI bot access | Are GPTBot, ClaudeBot, Google-Extended, etc. blocked in robots.txt? |
| llms.txt quality | Presence and structure of your llms.txt file (sections, URLs, descriptions) |
| No noai directives | Absence of noai / noimageai meta tags |
| Sitemap discoverable | Can AI crawlers find your sitemap? |
| X-Robots-Tag | No restrictive noindex or noai response headers |
Content Structure (25%)
Evaluates how citable and well-organized your content is:
| Check | What it measures |
|---|---|
| H1 heading | Single, clear H1 tag |
| Heading hierarchy | Proper nesting (H1 → H2 → H3, no skips) |
| FAQ patterns | <details>/<summary>, definition lists, FAQ sections |
| Author attribution | Meta author, rel="author" links, author markup |
| Content length | At least 300 words for meaningful AI analysis |
| Definition patterns | <dfn>, <abbr>, <dl> for key terms |
| List content | Structured lists (AI frequently cites list-format content) |
| Table content | Data tables with comparisons, specs, or structured data |
| Statistics | Numbers, percentages, and data points in content |
| Quotable content | Blockquotes and expert quotes |
| Image alt coverage | Descriptive alt text on images |
| Internal linking | Strong internal link structure |
Technical Signals (25%)
Standard technical SEO signals that also influence AI discovery:
| Check | What it measures |
|---|---|
| Meta description | Present and well-sized (50-160 characters) |
| Open Graph tags | og:title and og:description |
| Canonical URL | <link rel="canonical"> present |
| HTML lang | Language attribute set on <html> |
| Title tag | Present and well-sized (10-70 characters) |
| Semantic HTML | Use of <article>, <section>, <main>, <nav>, etc. |
| Twitter/X Cards | twitter:title and twitter:description meta tags |
| Content freshness meta | article:published_time, article:modified_time, <time> elements |
Scoring and Grades
Each category produces a score from 0 to 100. The overall score is a weighted average:
| Grade | Score Range |
|---|---|
| A+ | 95-100 |
| A | 85-94 |
| B | 70-84 |
| C | 50-69 |
| D | 30-49 |
| F | 0-29 |
Status Mapping
| Grade | Check Status |
|---|---|
| A+ or A or B | ok |
| C, D, or F | warning |
Results
Each GEO audit result includes:
- Overall score — Weighted average from 0 to 100
- Grade — Letter grade from A+ to F
- Category scores — Individual score and findings for each of the 4 categories
- Findings — Per-check pass/partial/fail status with explanations and point values
- Recommendations — Prioritized list of improvements sorted by impact (high, medium, low)
Configuration
| Setting | Default | Description |
|---|---|---|
| Check interval | 24 hours | How often to run the GEO audit. Enforced minimum is 6 hours. |
OK threshold (ok_threshold) | 70 | Score at or above which the check status is ok (0–100). |
Warning threshold (warning_threshold) | 30 | Score at or above which the check status is warning rather than the lowest band (0–100). |
Alerts
GEO is an advisory check. When the grade falls below B (C, D, or F — i.e. the score drops below the ok_threshold), the check status is set to warning and shown on the monitor and in the standard warning lifecycle.
GEO does not emit a dedicated notification event — there is no warning.geo or GEO-specific notification. The result surfaces in the dashboard rather than through a notification feed.
Improving Your Score
Quick wins
- Add JSON-LD structured data — Start with
OrganizationandWebPageschemas. AddFAQPageorArticlewhere relevant. - Create an llms.txt file — Place it at
/llms.txtor/.well-known/llms.txtwith a description of your site, key sections, and links. - Don't block AI bots — Ensure GPTBot, ClaudeBot, and Google-Extended are not disallowed in robots.txt.
- Add
datePublishedanddateModifiedto your JSON-LD and usearticle:published_time/article:modified_timemeta tags. - Use
sameAsin your Organization schema to link to Wikipedia, LinkedIn, and social profiles.
Content citability
AI models are more likely to cite your content when it contains:
- Structured lists — Steps, features, comparisons in
<ul>or<ol>format - Data tables — Specs, pricing, comparisons in
<table>elements - Statistics and data points — Specific numbers, percentages, measurements
- Expert quotes —
<blockquote>elements with attribution - FAQ sections — Questions and answers using
<details>/<summary>or FAQ schema
llms.txt format
A well-structured llms.txt file should include:
# Your Site Name
A clear description of what your site offers (50+ characters).
## Key Sections
https://example.com/features
https://example.com/pricing
https://example.com/docsWARNING
GEO is an emerging field. Scoring criteria will evolve as AI search engines mature and new standards emerge. Hoppla tracks these changes and updates the audit accordingly.