Every score a Juma audit produces comes from the rubric on this page — ten weighted dimensions, every sub-check documented, every weight versioned. Other GEO tools hide their methodology. We publish ours.
Each dimension produces a 0–100 sub-score. The overall score is a weighted average, rounded to the nearest integer.
Dimension
Weight
AI Crawler Access
8%
Citability (Structure)
8%
Extractability
18%
Schema Markup
13%
Content Authority
14%
On-Page Trust
13%
Technical SEO
8%
Brand Presence (SERP)
5%
Freshness
5%
Entity Consistency
8%
Overall score
100%
v3 weights reflect what independent GEO research (Smarty 2026 and others) finds most predictive: extractability of a quotable answer, content authority, concrete on-page trust proof, consistent entity signals, and content freshness. Crawler Access remains a gate — a full block there effectively zeros out everything else.
Score bands
Excellent
80–100
Good
60–79
Needs Work
40–59
Critical
0–39
Dimensions, in detail
AI Crawler Access
8% weight
Whether AI search engines are actually allowed to read your site — and whether you publish a curated llms.txt index.
If GPTBot, PerplexityBot, ClaudeBot, or Google-Extended are disallowed in robots.txt, every other dimension is moot. v3 also detects the experimental llms.txt protocol — an opt-in, markdown-formatted index that lets AI engines fetch a curated map of your content.
Data source — Fetches /robots.txt directly; parses user-agent blocks and Disallow/Allow directives with wildcard fallback. Also probes /llms.txt and /llms-full.txt and counts sections/links.
Sub-check
Points
Criteria
GPTBot (OpenAI / ChatGPT)
17
Allowed in robots.txt
ChatGPT-User (live browsing)
17
Allowed in robots.txt
PerplexityBot
17
Allowed in robots.txt
ClaudeBot (Anthropic)
17
Allowed in robots.txt
Google-Extended (Gemini / AI Overviews)
17
Allowed in robots.txt
Googlebot (baseline)
4
Allowed in robots.txt
Bingbot (baseline)
4
Allowed in robots.txt
llms.txt present
5
/llms.txt returns 200 and parses (markdown sections, links)
Sub-scores are capped at 100 before the overall weight is applied.
Citability (Structure)
8% weight
How scannable and machine-parseable the page's structure is — separate from the quality of each section's answer.
LLMs walk the heading hierarchy to figure out what a page is about. Missing H1s, skipped levels (H1 → H3), and dense prose without lists/tables all make citation less likely.
Data source — Cheerio heading / list / table inspection + emphasis-tag count.
Sub-check
Points
Criteria
Exactly one H1
15 / 5
Exactly 1 H1 → 15pts; 2+ → 5pts; 0 → 0pts
H2 subheadings
15 / 8
≥3 H2 → 15pts; 1–2 → 8pts
H3 nested sections
10 / 5
≥2 H3 → 10pts; 1 → 5pts
Heading hierarchy skips
−5
Any jump of more than one level (H1 → H3) subtracts 5pts
Lists + density
up to 20
≥3 lists AND ≥1 list per 1000 words → 20pts; lists alone → 14pts; 1–2 → 7pts
Tables
10
At least one <table> element
FAQ section
15
FAQPage JSON-LD, FAQ class/id, or FAQ heading detected
Emphasis markup (bold / mark)
15 / 10
≥10 emphasis tags → 15pts; 3–9 → 10pts
Sub-scores are capped at 100 before the overall weight is applied.
Extractability
18% weight
Whether an AI engine can lift a self-contained answer from a single section of the page.
ChatGPT, Perplexity, and Google AI Overviews cite content that reads as pre-chunked, quotable blocks. The strongest signal is whether each H2 section opens with a 40–60 word direct answer, and whether a TL;DR near the top already formats the key claims as bullets a model can quote verbatim.
Data source — Cheerio parse of the Firecrawl rawHtml; detects TL;DR headings + following lists, measures word count of the first paragraph under each H2, flags pronoun/filler openings.
Sub-check
Points
Criteria
TL;DR / Key Takeaways block
up to 25
Heading matches TL;DR patterns and is followed by a 3–7 bullet list near the top of the page
H2 openings at 40–60 words
up to 25
Scored by the percentage of H2s whose first paragraph falls in the 40–60 word ideal range
Self-contained section openings
up to 15
Opening paragraph does not start with a pronoun (it/this/we) or filler phrase, and references the heading topic
Top-third positioning bonus
up to 15
Strong (ideal + self-contained) H2 sections in the first 33% of body word-count count 1.5× — Smarty 2026 highlights top-third positioning as 45% GEO.
Explicit key-term definitions
up to 20
'X is defined as…', 'refers to', 'stands for', or a bold first-mention followed by 'is/are'
Sub-scores are capped at 100 before the overall weight is applied.
Schema Markup
13% weight
Whether structured data is present, valid, and — critically — matched to the page's intent.
Schema.org JSON-LD lets models resolve entities, authorship, and answer structure without guessing. Presence alone isn't enough: an Article schema on a Q&A-style page misses the easier FAQPage citation path.
Data source — All <script type="application/ld+json"> blocks (including @graph); validates required fields per type and awards an intent-match bonus when schema type aligns with detected page intent.
Sub-check
Points
Criteria
Organization (name, url, logo)
15 / 8
Full → 15pts; missing any required field → 8pts
Article (headline, author, datePublished)
15 / 8
Full → 15pts; partial → 8pts
FAQPage (mainEntity with questions)
15 / 8
Full → 15pts; partial → 8pts
HowTo (name, step with items)
15 / 8
Full → 15pts; partial → 8pts
Product (name, offers)
10 / 5
Full → 10pts; partial → 5pts
BreadcrumbList (itemListElement)
10 / 5
Full → 10pts; partial → 5pts
WebSite (name, url)
5
Present and valid
Intent-match bonus
up to 15
FAQ-intent page has FAQPage → +15; HowTo intent has HowTo → +15; Article → +10; Product → +10
Sub-scores are capped at 100 before the overall weight is applied.
Content Authority
14% weight
Signals that tell an AI model this page is worth trusting as a source.
AI engines systematically over-cite pages with named authors, original data placed early, outbound links to recognized authorities, and specific numbers. Vague superlatives without backing data are actively discounted.
Data source — HTML heuristics: author/byline selectors, position-weighted statistic detection, first-hand voice patterns, outbound-link host matching, credential regexes, and a vagueness scanner.
Sub-check
Points
Criteria
Author attribution
20
rel=author, byline class/id, itemprop=author, or 'Written by …' pattern
Original data (position-weighted)
up to 25
Stats / first-hand voice in the first 20% of the page earn full credit; elsewhere earns half credit
Authority hyperlink citations
up to 10
Outbound links to gov/edu/Nature/Reuters/HBR/McKinsey/arxiv — 5+ earns full credit
Inline source attributions (unlinked)
up to 8
'According to Pew Research', 'per the WHO 2024 report', 'Source: McKinsey' — counted even without hyperlinks (GEO-specific signal)
Credential signals
up to 10
Ph.D., MD, founder, certified, years of experience — 3+ unique earns full credit
Content depth
up to 15
2000+ words AND 4+ sections → 15; 2000+ → 10; 1000+ → 7; prorated below
Vagueness penalty
up to −20
Superlatives like 'best-in-class', 'revolutionary', 'world-class' without an adjacent number subtract 4 points each (capped at −20)
Sub-scores are capped at 100 before the overall weight is applied.
On-Page Trust
13% weight
The concrete proof points an AI model sees when deciding if this product / service is legitimate.
For B2B and SaaS pages especially, AI engines weight on-page social proof more than off-site chatter: named customers, third-party review ratings, quantified case metrics, and security certifications.
Data source — Scans body text and image alt-text for known brand names, 'Trusted by' sections, review platform + rating patterns, quantified outcome regex, and security/compliance certs.
Sub-check
Points
Criteria
Named customers / logo wall
up to 30
5+ recognizable brand names in 'Trusted by' section or img alt text = full credit
Third-party review ratings
up to 25
G2, Capterra, Trustpilot, TrustRadius, Gartner, Forrester, Product Hunt mentions with or without rating numbers
Missing titles, 8-second response times, and 6-sentence paragraphs don't stop a model, but they compound as small trust penalties across every citation decision.
Data source — Cheerio HTML inspection + Firecrawl response metadata.
Sub-check
Points
Criteria
Server-rendered content
15
Detects SPA shells (#root, #__next) with <200 words and empty mount nodes — AI bots that don't execute JS will see an empty page (Smarty 2026: AI agents skip JS-hidden content)
Meta title (30–60 chars)
11
Strict length check
Meta description (120–155 chars)
11
Tightened from 160 — AI/SERP snippets truncate around 155
Paragraph density (≤4 sentences avg)
11
Average sentences per paragraph across all substantive <p> elements
Open Graph (title + description + image)
10
All three present
HTTPS
9
URL uses https://
Response time
9
First-byte response < 3000ms
Canonical tag
7
<link rel="canonical"> present
Viewport meta
7
<meta name="viewport"> present
Single H1
4
Exactly one H1 tag
Content-Type header
3
Contains text/html
Language attribute
3
<html lang="…"> set
Sub-scores are capped at 100 before the overall weight is applied.
Brand Presence (SERP)
5% weight
Whether your brand shows up on the off-site platforms AI models forage for context — including Google AI Overview citations.
LLMs condition on unlinked Reddit/LinkedIn mentions. v3 also extracts AI Overview citations from the same SERP responses we already pay for — directly observing whether Google's Gemini-powered overview already cites the brand (the strongest possible GEO signal).
Data source — DataForSEO SERP API — quoted-brand searches scoped to reddit.com, linkedin.com, and the open web; AI Overview reference URLs extracted from the same response.
Sub-check
Points
Criteria
Reddit mentions
up to 25
10+ results earns full 25; prorated below
LinkedIn mentions
up to 25
10+ results earns full 25; prorated below
General web mentions
up to 15
10+ results earns full 15; prorated below
Platform diversity
15 / 8 / 4
3 platforms → 15; 2 → 8; 1 → 4
Google AI Overview citation
up to 20
Brand cited in observed AI Overview → 20; AI Overview triggered but cites competitors → 5; not triggered → 0
Sub-scores are capped at 100 before the overall weight is applied.
Freshness
5% weight
Whether the page exposes publication and last-modified dates AI engines can read — and whether the content is recent enough to be trusted.
Smarty 2026 rates freshness as 50% SEO / 50% GEO. AI engines actively discount stale answers; a missing or 3-year-old date is a citation-killer. We detect dates from JSON-LD, OpenGraph, <time>, and visible 'Updated on …' strings.
Data source — Cheerio HTML inspection of JSON-LD datePublished / dateModified, OpenGraph article:published_time / article:modified_time, <time datetime>, and visible 'Last updated' / 'Published on' patterns.
Sub-check
Points
Criteria
Structured date present
30
Any JSON-LD / OG / <time> publication or modified date is parsable
Visible date on the page
20
'Published on …' or 'Updated on …' text appears in body content
Recency band
up to 40
≤180 days → 40; ≤545 days → 28; ≤1095 days → 12; older → 0
Recent re-edit bonus
10
dateModified is more recent than datePublished and within the last 365 days
Sub-scores are capped at 100 before the overall weight is applied.
Entity Consistency
8% weight
Whether the page represents a single, well-defined entity that AI models can resolve and aggregate across the open web.
Smarty 2026 calls entity consistency 'the biggest difference for GEO so far'. Inconsistent spellings, missing sameAs profiles, or schema-vs-title-vs-og:site_name drift make AI engines fail to merge mentions back to a single brand.
Data source — Cheerio extraction of Organization schema (name + sameAs), og:site_name, <title> brand fragment, and body brand mention counting with stylization-variant detection.
Sub-check
Points
Criteria
Organization schema with name
20 / 10
Full Organization JSON-LD with name → 20; present but unnamed → 10