How is the GEO score calculated?
The GEO score is a weighted average of 60 scored checks in 8 categories (ruleset 2026.10). A pass earns full points, a warning half, and a fail none. Checks that don't apply to a page are left out rather than counted against it.
What caps an engine's score?
An engine's score is capped at 10 when a check that blocks it fails. For example, a robots.txt rule that disallows OAI-SearchBot caps the ChatGPT score, because ChatGPT search cannot read the page at all.
Which training crawlers are ignored?
Training crawlers such as GPTBot, ClaudeBot and Google-Extended are reported for information only. Blocking them is a valid choice that does not affect AI search citations.
AI crawler access (20%)
| Check | Points | Blocks engine |
|---|
| Page responds with HTTP 200 | 3 | chatgpt, perplexity, claude, google, copilot |
| robots.txt is reachable | 1 | – |
| OAI-SearchBot (OpenAI) can crawl this page | 4 | chatgpt |
| PerplexityBot (Perplexity) can crawl this page | 4 | perplexity |
| Claude-SearchBot (Anthropic) can crawl this page | 3 | claude |
| Googlebot (Google) can crawl this page | 4 | google |
| bingbot (Microsoft) can crawl this page | 3 | copilot |
| Other AI search crawlers are allowed | 1 | – |
| User-triggered AI fetchers are allowed | 2 | – |
| AI training crawlers (informational) | info | – |
| AI crawlers aren't blocked by a firewall or CDN | 3 | – |
| Page is indexable (no noindex) | 4 | chatgpt, perplexity, claude, google, copilot |
| Content is snippet-eligible | 2 | google |
| HTTPS with a short redirect chain | 1 | – |
| Fast, lightweight HTML response | 1 | – |
| robots.txt declares a sitemap | 1 | – |
Indexability & discoverability (10%)
| Check | Points | Blocks engine |
|---|
| XML sitemap lists this page | 4 | – |
| Sitemap lastmod matches the page's modified date | 1 | – |
| Canonical URL is set correctly | 3 | – |
| Last-Modified or ETag header | 1 | – |
Renderability without JavaScript (15%)
| Check | Points | Blocks engine |
|---|
| Main content is in the HTML (no JavaScript needed) | 6 | – |
| H1 and opening paragraph are in the raw HTML | 3 | – |
| Structured data is in the raw HTML | 2 | – |
| Healthy text-to-HTML ratio | 2 | – |
| Markdown version advertised (bonus) | info | – |
Content structure & answer-first writing (20%)
| Check | Points | Blocks engine |
|---|
| One H1 and a logical heading hierarchy | 3 | – |
| Headings match how people ask questions | 2 | – |
| Sections open with a direct answer | 4 | – |
| Passages make sense on their own | 3 | – |
| Short introduction before the first section | 2 | – |
| Lists or tables for scannable facts | 2 | – |
| FAQ section | 2 | – |
| Enough substantive content | 3 | – |
| Readable sentence length | 1 | – |
| Specific facts, numbers and dates | 3 | – |
| Quotes or attributed statements | 1 | – |
| Cites external sources | 2 | – |
| No keyword stuffing | 1 | – |
| Defines the main subject near the top | 2 | – |
Structured data (12%)
| Check | Points | Blocks engine |
|---|
| Valid JSON-LD structured data | 3 | – |
| Organization or Person entity with sameAs | 3 | – |
| WebSite entity | 1 | – |
| Schema type matches the page | 2 | – |
| Article has dates and an author | 2 | – |
| FAQ schema matches visible text | 1 | – |
| Breadcrumb structured data | 1 | – |
| Product offers include a price | 1 | – |
| Schema headline matches the H1 | 1 | – |
Entity clarity & trust (10%)
| Check | Points | Blocks engine |
|---|
| Brand name is consistent | 3 | – |
| Visible author byline | 2 | – |
| About and Contact pages are linked | 2 | – |
| Visible publish or update date | 1 | – |
| Links to official brand profiles | 2 | – |
Freshness (5%)
| Check | Points | Blocks engine |
|---|
| Content updated within the last year | 3 | – |
| Dates agree across sources | 1 | – |
| Copyright year is current | 1 | – |
Metadata & previews (5%)
| Check | Points | Blocks engine |
|---|
| Descriptive title tag | 2 | – |
| Meta description | 1 | – |
| Open Graph and Twitter tags | 1 | – |
| Page language is declared | 1 | – |
llms.txt & agent files (bonus) (bonus)
| Check | Points | Blocks engine |
|---|
| llms.txt | 2 | – |
| llms-full.txt | 1 | – |