Methodology

How AlpineRank measures AI visibility

Most GEO tools show a dashboard without explaining how to fix anything. AlpineRank is built differently: every score maps to a concrete, actionable fix — and this page explains exactly how each score is calculated.

What we measure — and what we don't

Every score on this page is calculated from one page: the exact URL you submit. We do not crawl your site, follow links, or aggregate across pages.

That is deliberate rather than a shortcut. AI engines cite individual pages, not sites — an answer that lives on your FAQ page does not help the visitor who lands on your homepage. But it does mean a homepage audit will mark questions as missing that your site answers elsewhere. If FAQ or service content matters to you, audit those pages too.

Two of these checks read the whole domain rather than the page, because that is where they live: AI Crawler Access reads /robots.txt, and the llms.txt bonus reads /llms.txt.

30% of overall

AI Question Coverage (your differentiator)

This is the most important signal — and the one no other tool measures the same way.

When someone searches on ChatGPT or Perplexity, they don't type a keyword — they ask a question. AlpineRank detects your page's niche, then uses Claude to generate 25 real questions that people in your niche actually ask AI engines. It then checks whether your page answers each one.

The scoring is three-tiered: covered (full answer present), partial (topic mentioned but not directly answered), or missing (no coverage). The score is (covered × 1.0 + partial × 0.5) / total × 100.

Princeton's 2024 GEO study found that pages with statistics, citations, and direct answers to common questions received up to 40% more citations from LLMs than comparable pages without them. AI Question Coverage is the operationalisation of that finding.
20% of overall

AI Crawler Access

We fetch your robots.txt and parse it for 9 AI crawlers: GPTBot, ChatGPT-User, OAI-SearchBot, ClaudeBot, Claude-SearchBot, anthropic-ai, PerplexityBot, Perplexity-User, and Google-Extended.

Each bot is scored individually. The final score is the proportion of bots that are allowed. Additionally, if any of the three primary gating bots (GPTBot, ClaudeBot, PerplexityBot) are blocked, the overall scorecard is capped at 40— because even a perfect content score is meaningless if the crawler can't reach the page.

15% of overall

Structured Data

We parse all application/ld+json blocks in your page and look for five schema types that AI engines use to understand content: FAQPage, Article, Organization, Product, and HowTo. We also check @graph arrays for nested schemas.

Score: found / 5 × 100. Each missing schema type generates a specific JSON-LD snippet you can copy directly into your <head>.

15% of overall

Answer Structure

AI engines prefer pages that structure content as question → answer pairs, because it maps directly onto how queries are formed. We look for H2 and H3 headings that either end with a ? or begin with a question word (how, why, what, when, where, who, which, can, is, are…).

For each question heading, we check whether a substantive paragraph (more than 20 characters) follows before the next heading. Score: answered / question-headings × 100.

10% of overall

Citations & Statistics

Pages that cite data and link to external sources are cited more often by AI. We count two signals in the main content (excluding nav, footer, and sidebars):

  • Statistics: percentage values and multi-digit numbers (e.g. 45%, 1,200)
  • External links: outbound links to domains other than your own

5+ stats contribute 50 points; 3+ external links contribute 50 points. Scores are scaled linearly below those thresholds.

5% of overall

Freshness

AI models prefer recent, maintained content. We extract the most recent date from your page — first from JSON-LD (dateModified / datePublished), then from Open Graph meta tags (article:modified_time, article:published_time).

Scoring tiers: ≤1 month → 100, ≤3 months → 85, ≤6 months → 70, ≤12 months → 50, ≤24 months → 25, older → 10. No date found → 0.

5% of overall

E-E-A-T Signals

Experience, Expertise, Authoritativeness, and Trust — Google's framework, increasingly adopted by AI engines for source evaluation. We check three signals:

  • Author byline: itemprop="author", rel="author", or a class containing author on any element (detection only — fixes recommend Person JSON-LD or an author field in an existing Article schema)
  • Author or About link: a link to /author, /about, /team, /staff, or /writers
  • Organization schema: Organization or LocalBusiness JSON-LD

Score: signals_found / 3 × 100. Fixes use JSON-LD structured data; CSS-only markup is not reliably parsed by AI engines.

not scored

Agent Readiness (bonus, tracked separately)

Some emerging signals are tracked by AlpineRank but kept outside the GEO score — because no major AI provider has confirmed they affect search citation ranking. Folding unconfirmed signals into the score would make it less meaningful.

These appear in a separate “Agent Readiness” section on your audit report, clearly labeled as optional preparation rather than critical fixes.

LLMs.txt

The llmstxt.org standard proposes placing a /llms.txtfile at your domain root to guide AI agents about your site's content and structure. We check for its presence with a HEAD request (binary: 0 or 100). If absent, we generate a starter template.

We track it because it is low-cost to add and may become relevant as agentic AI use grows — but Google has explicitly stated it does not use llms.txtfor ranking or citation, and no other major AI provider has committed to it either. Until confirmed adoption exists, it belongs in “Agent Readiness” rather than the core score.

What we don't measure — and why

We can't guarantee that any AI engine will actually cite your page. No tool can. AI citation behaviour is non-deterministic: the same query returns different results across sessions, models, and time.

What AlpineRank measures are the structural signalsthat correlate with higher citation rates in published research. Improving these signals increases the probability of citation — it doesn't guarantee it.

We also don't currently measure: page load speed, mobile usability, internal linking structure, or domain authority. These matter for SEO and may correlate with GEO — they're on the roadmap.

Check your page now

Free audit — no sign-up required for the first result.

Run a free audit →

Known limitations

Every number on a report is a measurement, and every measurement has edges. These are ours.

Technical checks are validated against a hand-labelled test set.Schema detection, crawler access, freshness and answer structure are tested against real pages whose correct answer we established by hand, and the tests run on every change. That is how we catch a parser that stops recognising a valid markup format — a class of bug that otherwise surfaces as a confident, wrong finding on a customer's site.

Citation checks are a snapshot, not a rate.Ask an AI engine the same question twice and it may cite different sources. A regular audit asks each sampled question once, so "0 of 5" means we did not see your site in those five answers — not that it is never cited. Distinguishing "never" from "sometimes, and we got an unlucky draw" needs repeated sampling, which is what the confidence check is for: it asks the same question twenty times and reports a rate with the range around it.

E-E-A-T measures machine-readable proxies, not expertise. We can see an author byline, a link to an about page, and Organization markup. We cannot see whether the named author knows the subject, whether the team on your about page is real, or whether your company is trusted in its field. A genuine expert with no schema markup will score poorly here, and that is a statement about the markup rather than about the expert.

One page, not the site.Scores describe the exact URL submitted. See "What we measure — and what we don't" above.