Methodology

How we measure AEO Visibility

A clear, honest breakdown of the formula, the five engines we test, the counting rules, and where every number in your report comes from — including the limits of the data.

Illustrative score · five engines, one counting standard

5

AI engines

8–20

Questions in standard samples

40–100

AI checks in standard samples

THE SCORE FORMULA

Five components, weighted to add up to 100. The weights are deliberate: citation rate — the only direct measure of whether AI names you — dominates, and website markup is scored as hygiene, not as a driver. Expand any component for the full reasoning.

Score components

100 pts total

60ptsCitation RateDiscovery answers that cite the business’s website.

Across five AI tools, we count each discovery answer whose saved sources cite the business’s verified website domain or an accepted official alias. Multiple links to the same business in one answer count once. Brand-name searches are excluded. A square-root curve awards 30 of 60 points at a 25% citation rate. Names in answer text, explicit recommendations, clicks and clients are separate signals and do not contribute to this component. Failed answers stay visible in the coverage note; they are not confirmed absences.

14ptsSchema CompletenessRequired JSON-LD coverage for the vertical (hygiene).

Every vertical (medical, legal, home services, hospitality, etc.) has a required schema set — LocalBusiness, Service, etc. We parse JSON-LD from the page content successfully retrieved by the website scan and score per-type completeness. This is not a complete inventory of every page. Weighted as hygiene, not as a citation driver: controlled tests show markup presence by itself does not make AI engines cite you, so it earns a small share of the score rather than half of it.

8ptsOrganization DataStructured organization information (hygiene).

The current scan checks Organization JSON-LD. The formula can also accept verified profile-link and indexed-page counts when supplied, but missing values earn no points. This component is a website-data proxy; it does not measure reputation or prove why an AI engine cited the business.

8ptsQuestion & Answer MarkupFAQ/HowTo structured data (hygiene).

The current scan supplies FAQPage and HowTo markup presence. The formula can accept a measured heading count when available. These are limited structural signals: missing markup does not mean the visible page lacks useful answers, and adding markup does not guarantee an AI citation.

10ptsAI Overview PresenceGoogle AI Overview presence for any audited query.

This small category-level component records whether an AI Overview appeared for any checked query. It does not establish that the business was cited, that every query shows an overview, or that the site is eligible for all AI search surfaces.

citation points = 60 × √(discovery citation rate ÷ 100). Add up to 14 schema + 8 organization + 8 Q&A markup + 10 AI Overview points.

Access controls

Training preferences and search access serve different purposes.

GPTBot and ClaudeBot control training crawls; OAI-SearchBot and Claude-SearchBot serve search. Google-Extended does not control Google Search inclusion. Review restrictions for the specific service. They never erase a website citation already present in a saved answer or cap every engine’s score.

Deterministic

Same inputs always produce the same score — no randomness, no hidden boosts, and the full weighting is published here.

WHAT WE TEST

We run a selected sample of local discovery questions and separate brand checks, against five engines. A broad specialty sample has 18 discovery questions and two brand checks. A focused sample uses six discovery questions per confirmed service, plus two shared brand checks: 40, 70 or 100 AI checks for one, two or three services. Each report shows its actual questions, answers and failures. Historical and expanded regional reports can have different counts.

ChatGPT

OpenAI · LLM scrape via DataForSEO

Claude

Anthropic · LLM scrape via DataForSEO

Gemini

Google · LLM scrape via DataForSEO

Perplexity

Perplexity · LLM scrape via DataForSEO

Google AI Overview

SERP feature · DataForSEO SERP API

The five query categories

BrandedExcluded from the score

"{Business} reviews {city}, {state}"

Checks name recognition separately from discovery.

Local generic

"Best car accident lawyers in {city}, {state}"

Samples local searches for a relevant professional or business.

Service-specific

"Lawyer for a denied work injury claim in {city}, {state}"

Tests a concrete client need within the selected service scope.

Question format

"Which attorneys in {city}, {state} offer an initial consultation?"

Samples natural-language questions about choosing help.

Comparison

"Compare personal injury law firms in {city}, {state} by experience and fees."

Compares options without supplying the subject business name.

Own-name (branded) answers are tracked as a recognition cue and shown separately in the report — the score’s citation rate counts discovery queries only.

WHAT “CITED” MEANS

A query counts as a citation when either of the following is true:

  1. Your domain appears in the engine’s source list (the citation panel ChatGPT/Claude/Gemini render alongside the answer, or the AI Overview source carousel).

  2. Your business name appears in the answer text — case-insensitive, trimmed of legal suffixes (LLC, Inc., DBA), with a token-overlap fuzzy match for common abbreviations.

A mention without a domain link still counts. AI engines often paraphrase without linking, and our goal is to measure who shows up in the answer the user actually reads.

Perplexity

Illustrative answer

Cited

When we asked: “best family dentist in Plano”

“For family dentistry in Plano, locals most often recommend Lakeside Dental Studio for same-day crowns and Saturday hours, with Legacy Smiles and Prairie Creek Dental as alternatives.”

Sourceslakesidedentalstudio.comyelp.complanomagazine.com
Illustrative example — either signal alone makes this recorded answer count as one citation.

WHERE THE DATA COMES FROM

No first-party tracking, no analytics pixels, no scraping behind paywalls. Every number in your report comes from one of these four sources.

DataForSEO

LLM scrapers (ChatGPT/Claude/Gemini/Perplexity), AI Mention index, SERP API, Maps API.

Google PageSpeed Insights

Mobile + desktop performance scores, LCP, TTFB, Core Web Vitals.

Anthropic Claude

Vertical classification, narrative generation, action-plan synthesis.

Schema scraper

First-party — fetches and parses JSON-LD, microdata, and RDFa from the lead's domain.

LIMITATIONS

We want this to be useful, not oversold. The honest constraints:

01

Snapshot in time

AI answers can change between runs. A later score may differ even when the business has made no changes.

02

AI Overview isn't always shown

Google decides when to render it; some commercial verticals see it on <30% of queries.

03

LLM responses have variability

We use deterministic settings where possible, but the same query can return slightly different answers across runs.

04

Sample size is bounded

These are editorial samples, not measured search volumes or independent customer searches. Repeating questions across five engines does not prove a statistical ranking, conversion rate or market-wide share.

05

Schema scoring is limited to the pages we fetch

If your richest schema lives behind an authentication wall, we won't see it.

UPDATES

A report is a snapshot of how AI saw the business at the moment it was generated. A fresh read means a fresh audit — the full pipeline (LLM scrapes, SERP scan, schema audit, speed test) re-runs and writes a new snapshot. We typically recommend an updated report every 30–60 days, or right after shipping a meaningful content change; ask your growth partner, or commission an update the same way you ordered the original.

This methodology, run on your market.

One comprehensive report — every engine, every query category, every number counted exactly as described above.

Commission a report — $997

Working with one of our certified growth partners? Your report may already be covered — ask them.

← Back to MyGrowthReport