Methodology · v3.0

The transparent GEO scoring rubric

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.

Last updated · Run an audit →

How the overall score is calculated

Each dimension produces a 0–100 sub-score. The overall score is a weighted average, rounded to the nearest integer.

DimensionWeight
AI Crawler Access8%
Citability (Structure)8%
Extractability18%
Schema Markup13%
Content Authority14%
On-Page Trust13%
Technical SEO8%
Brand Presence (SERP)5%
Freshness5%
Entity Consistency8%
Overall score100%

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-checkPointsCriteria
GPTBot (OpenAI / ChatGPT)17Allowed in robots.txt
ChatGPT-User (live browsing)17Allowed in robots.txt
PerplexityBot17Allowed in robots.txt
ClaudeBot (Anthropic)17Allowed in robots.txt
Google-Extended (Gemini / AI Overviews)17Allowed in robots.txt
Googlebot (baseline)4Allowed in robots.txt
Bingbot (baseline)4Allowed in robots.txt
llms.txt present5/llms.txt returns 200 and parses (markdown sections, links)
llms-full.txt present2/llms-full.txt returns 200 (deeper full-text variant)

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-checkPointsCriteria
Exactly one H115 / 5Exactly 1 H1 → 15pts; 2+ → 5pts; 0 → 0pts
H2 subheadings15 / 8≥3 H2 → 15pts; 1–2 → 8pts
H3 nested sections10 / 5≥2 H3 → 10pts; 1 → 5pts
Heading hierarchy skips−5Any jump of more than one level (H1 → H3) subtracts 5pts
Lists + densityup to 20≥3 lists AND ≥1 list per 1000 words → 20pts; lists alone → 14pts; 1–2 → 7pts
Tables10At least one <table> element
FAQ section15FAQPage 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-checkPointsCriteria
TL;DR / Key Takeaways blockup to 25Heading matches TL;DR patterns and is followed by a 3–7 bullet list near the top of the page
H2 openings at 40–60 wordsup to 25Scored by the percentage of H2s whose first paragraph falls in the 40–60 word ideal range
Self-contained section openingsup to 15Opening paragraph does not start with a pronoun (it/this/we) or filler phrase, and references the heading topic
Top-third positioning bonusup to 15Strong (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 definitionsup 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-checkPointsCriteria
Organization (name, url, logo)15 / 8Full → 15pts; missing any required field → 8pts
Article (headline, author, datePublished)15 / 8Full → 15pts; partial → 8pts
FAQPage (mainEntity with questions)15 / 8Full → 15pts; partial → 8pts
HowTo (name, step with items)15 / 8Full → 15pts; partial → 8pts
Product (name, offers)10 / 5Full → 10pts; partial → 5pts
BreadcrumbList (itemListElement)10 / 5Full → 10pts; partial → 5pts
WebSite (name, url)5Present and valid
Intent-match bonusup to 15FAQ-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-checkPointsCriteria
Author attribution20rel=author, byline class/id, itemprop=author, or 'Written by …' pattern
Original data (position-weighted)up to 25Stats / first-hand voice in the first 20% of the page earn full credit; elsewhere earns half credit
Authority hyperlink citationsup to 10Outbound 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 signalsup to 10Ph.D., MD, founder, certified, years of experience — 3+ unique earns full credit
Content depthup to 152000+ words AND 4+ sections → 15; 2000+ → 10; 1000+ → 7; prorated below
Vagueness penaltyup to −20Superlatives 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-checkPointsCriteria
Named customers / logo wallup to 305+ recognizable brand names in 'Trusted by' section or img alt text = full credit
Third-party review ratingsup to 25G2, Capterra, Trustpilot, TrustRadius, Gartner, Forrester, Product Hunt mentions with or without rating numbers
Quantified case metricsup to 25'2x faster', '90% adoption', 'saved 160 hours' patterns — 3+ distinct metrics = full credit
Security / compliance certificationsup to 15SOC 2, HIPAA, GDPR, ISO 27001, PCI DSS, FedRAMP, SSO/SAML — 3+ = full credit
Customer count / adoption claim5Any explicit '250+ teams', '10,000 customers', etc.

Sub-scores are capped at 100 before the overall weight is applied.

Technical SEO

8% weight

Baseline hygiene signals — metadata precision, paragraph density, HTTPS.

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-checkPointsCriteria
Server-rendered content15Detects 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)11Strict length check
Meta description (120–155 chars)11Tightened from 160 — AI/SERP snippets truncate around 155
Paragraph density (≤4 sentences avg)11Average sentences per paragraph across all substantive <p> elements
Open Graph (title + description + image)10All three present
HTTPS9URL uses https://
Response time9First-byte response < 3000ms
Canonical tag7<link rel="canonical"> present
Viewport meta7<meta name="viewport"> present
Single H14Exactly one H1 tag
Content-Type header3Contains text/html
Language attribute3<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-checkPointsCriteria
Reddit mentionsup to 2510+ results earns full 25; prorated below
LinkedIn mentionsup to 2510+ results earns full 25; prorated below
General web mentionsup to 1510+ results earns full 15; prorated below
Platform diversity15 / 8 / 43 platforms → 15; 2 → 8; 1 → 4
Google AI Overview citationup to 20Brand 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-checkPointsCriteria
Structured date present30Any JSON-LD / OG / <time> publication or modified date is parsable
Visible date on the page20'Published on …' or 'Updated on …' text appears in body content
Recency bandup to 40≤180 days → 40; ≤545 days → 28; ≤1095 days → 12; older → 0
Recent re-edit bonus10dateModified 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-checkPointsCriteria
Organization schema with name20 / 10Full Organization JSON-LD with name → 20; present but unnamed → 10
sameAs coverageup to 30Distinct platforms in sameAs[]: 5+ → 30; 3–4 → 22; 1–2 → 10
Brand name agreement across surfacesup to 25Same normalized brand in schema, og:site_name, and <title> → 25; disagreement → 10; only one surface declares → 12
Brand visibility in bodyup to 15Brand mentioned 5+ times in body → 15; 2–4 → 8; 1 → 3
Spelling drift penaltyup to −10Multiple stylized spellings of the brand in body content subtract points (e.g., 'OpenAI' + 'Open AI' + 'open-ai')
Wikipedia / Wikidata sameAs bonus10sameAs includes a Wikipedia or Wikidata URL — the strongest LLM disambiguation anchor

Sub-scores are capped at 100 before the overall weight is applied.

Versioning

  • v3.0 · 2026-05-14Added Freshness (publication / last-modified dates with recency bands) and Entity Consistency (Organization schema, sameAs coverage, brand-name agreement across surfaces, spelling-drift penalty, Wikipedia anchor bonus) as new top-level dimensions. Extended Crawler Access with llms.txt detection. Added Server-Rendered Content check inside Technical to flag JS-only SPAs that AI bots can't see. Added top-third positioning bonus to Extractability. Added detection of inline (non-linked) source attributions to Content Authority. Extracted Google AI Overview citations from the existing SERP responses for Brand Presence (zero-cost DataForSEO leverage). Rebalanced all weights — extractability 18%, content authority 14%, on-page trust + schema 13% each, the four gate/structure dimensions 8% each, freshness + brand presence 5% each.
  • v2.0 · 2026-04-23Split Citability into Citability (structure) + Extractability (per-section answer quality). Split Brand Presence into Brand Presence (SERP) + On-Page Trust (named customers, ratings, case metrics, security certs). Added position-weighting for Content Authority's original-data signal and a vagueness penalty for unbacked superlatives. Added schema intent-match bonus.
  • v1.0 · 2026-04-15Initial published methodology. Six weighted dimensions.

Audit a site against this rubric

Every score uses the same published rubric. No paywall, no login.

Run a free audit