Methodology

How the SEO Health Score and GEO Readiness Score are calculated. Looking for the full list of what's actually checked? See every check we run.

KinetixSEO is an SEO and AI-citation (GEO) checker, and it doesn't stop at a score. Every analysis follows the same path — find each issue, hand you a fix tailored to that exact page, then verify the fix went live with an included re-scan. The scoring described below is the "find" step, and it's built to be trustworthy: every score on this page is produced by deterministic, rule-based measurement of your page's real HTML, HTTP headers, and (where available) performance data — never by asking an AI model "how good is this page?" AI is only used downstream, to write the replacement copy for an issue our rules already detected. That distinction matters: it means the same page scores the same way every time, and every point deducted traces back to a specific, checkable fact about the page.

SEO Health Score (0–100)

The SEO Health Score is a weighted average of nine categories. Each category starts at 100 points and loses points for every issue our checks actually find on the page — there is no separate "good behaviour" bonus, just deductions for real, detected problems.

CategoryWeightWhat it measures
Technical SEO20%HTTP status, HTTPS, indexability (noindex/robots.txt), TTFB, soft-404s, canonicalization consistency, security headers, mixed content, sitemap validity, crawlable links.
Content Quality18%Word count vs. page type, readability, filler-phrase ratio, duplicate-content risk, H1-to-body relevance, text-to-HTML ratio, specific claims and first-hand experience language.
On-Page SEO14%Title tag, meta description, canonical tag, H1/heading hierarchy, anchor text quality, Open Graph and Twitter Card tags.
Schema Markup11%Presence and validity of JSON-LD, deprecated or SERP-retired schema types, required fields for rich results, client-side-rendering blind spots.
Performance9%Core Web Vitals — LCP, CLS, FCP, TTFB, INP. Excluded from your score entirely until a real measurement exists (see "Unmeasured categories" below).
Trust & Compliance8%E-E-A-T signal scoring (see below), orphan-page and thin-internal-linking risk, cloaking/hidden-text/keyword-stuffing/link-spam risk signals, malware signals.
Local SEO8%NAP (name/address/phone) completeness, opening hours and geo-coordinates markup, review-count signals — scored only when local-business signals are present.
AI Search Readiness7%Front-loaded answers, entity density, statistics, freshness and author signals, AI-crawler access in robots.txt.
Images5%Alt text coverage, modern format usage (WebP/AVIF), lazy-loading on LCP images, responsive srcset usage.

Unmeasured categories are excluded, not guessed

The Performance category requires a real Core Web Vitals measurement. Until one exists for your page, that category is left out of the score entirely — its weight is not filled in with an assumed value. Instead, the remaining categories' weights are rescaled proportionally so they still sum to 100%. In practice this means your score is always built only from what we've actually measured, never diluted or padded by a category we haven't checked yet.

Grade

Your numeric score maps to a letter grade: A (90+), B (80+), C (70+), D (60+), F (below 60).

A page Google cannot index is capped at 59

A weighted average would let one fatal problem hide behind eight clean categories. So when the page returns an HTTP error, carries a noindex directive, or is blocked by robots.txt, the score is held at 59 (grade F), however good the rest of the page is. The report says which problem caused the cap and what the score would be without it. Fix that one problem and the full score comes back.

What to fix first: severity, then impact × effort

Issues are grouped by severity first: every critical issue comes before every high one, so a quick cosmetic fix never jumps a problem that keeps the page out of Google. Within each severity, issues are ranked by likely return on effort. Each issue gets an impact score (1–5, based on its severity — critical, high, medium, or low — boosted when the issue's own data shows a real measured magnitude, like the percentage of images missing alt text or a Core Web Vitals millisecond value) and an effort score (1–5, a fixed estimate of how much work that specific type of fix is — e.g. removing a stray noindex tag is effort 1, rewriting duplicate content is effort 5). The two combine into a "fix this first" order within each severity, so among equally serious issues the cheapest, most valuable fix comes first.

GEO Readiness Score (0–100)

Generative Engine Optimisation (GEO) readiness measures how likely your page is to be structured in a way that helps AI systems like ChatGPT, Gemini, and Perplexity find and cite it — distinct from AI Citation Tracking, which checks whether you are actually being cited today, currently across ChatGPT, Google AI Overviews, Google AI Mode, Gemini, Claude, Perplexity, Microsoft Copilot, Grok, Meta AI and DeepSeek (Microsoft Copilot is measured through the Copilot answers in Bing search results). It's a weighted average of five dimensions. Each dimension adds up points for the sub-signals it finds on the page, with partial credit where a signal is only partly there.

PillarWeightWhat it measures
Citability25%Does a direct answer land early, in passages short enough to quote cleanly (134–167 words), backed by numbers rather than bare superlatives, with named entities and a freshness date?
Authority & Brand20%Author or organization attribution, Organization structured data, a brand name used consistently across title, meta description and H1, and external presence such as Wikipedia or Wikidata.
Structural Readability20%A question-per-section pattern whose headings are actually answered, semantic <main>/<article>/<section> landmarks, and lists an extractor can scan.
Technical Accessibility20%Whether AI crawlers are allowed and can actually reach the page — robots.txt rules, citation-intent bots unblocked, and substantive content in the raw HTML without JavaScript. llms.txt, ai.txt, TDMRep and RSL licences are checked and reported but no longer scored: no answer engine has confirmed reading them, and log studies across 300,000 domains found almost none are ever requested.
Multi-Modal Content15%Video, a data table, and several images — formats an answer engine can pull from beyond prose.

For real, first-party numbers on which kinds of sources each AI engine actually cites — not just the readiness signals above — see our AI search citation statistics, refreshed monthly with full sample sizes shown.

AI Citation Tracking: how the rates are measured

Readiness says whether a page is built to be cited. Citation tracking checks whether it actually is. Every week, each tracked keyword is checked on ChatGPT, Google AI Overviews, Google AI Mode, Gemini, Claude, Perplexity, Microsoft Copilot, Grok, Meta AI and DeepSeek, and we record whether each answer named or cited your site. The share of answers that did is your citation rate (also called selection rate). A rate is only as good as the evidence under it, so here is exactly what is behind it, and what it cannot tell you.

What one check runs

A tracked keyword carries up to 3 prompts: the questions the engines are asked. With none set, the keyword text itself is the prompt. Scheduled runs are weekly. Each prompt goes to ChatGPT, Gemini, Claude and DeepSeek, which answer from training memory, once each per run. ChatGPT, Google AI Overviews, Google AI Mode, Gemini, Claude, Perplexity, Microsoft Copilot, Grok and Meta AI search the live web or read a live results page, and each answer is read once per run. A few results-page readings take the keyword itself as the question, so they run once per keyword rather than once per prompt. On keywords you also rank-track, Google's AI Overview is read from the same results page every time rankings are checked, at no extra cost, so it is read more often than once a week there. So the number of answers behind a keyword's rate is its prompts, times the engines, times the repetitions, added up over the weeks in the window. A keyword's window is the last 8 weeks; site-wide figures pool the last 4 weeks.

What a credit buys

The weekly check of each keyword's base prompt (the keyword text, or its oldest active prompt) is included in every paid plan and spends no credits. Each further active prompt costs 0.46 credits per weekly run, and that one charge covers every engine the prompt goes to. A run you start yourself with the "Run AI visibility check" button costs 0.46 credits for every prompt it checks, the base prompt included.

Observed versus recalled

Some engines answer by searching the live web, and we read the sources their answer actually linked to. That is an observation. Other answers come from the model's memory, and the model is asked whether it mentioned your site. That is the model's own account, and it can be wrong in both directions. The two are never added into one rate, and each engine's rate is labelled with how it was measured.

Small samples are shown as counts

Below 20 answers a rate is shown as a count ("3 of 12") instead of a percentage, because a percentage of a handful of answers looks far more precise than it is. Your site's headline rate also carries a 95% range, computed as a Wilson score interval: unlike the textbook "plus or minus" range, it stays inside 0–100% and stays honest when a rate is close to either end. Treat that range as the narrowest it could be: answers to the same question are not fully independent of each other, so the true range is wider.

When none of n answers named or cited you, the rate is not shown as a flat 0%. It reads "under 3/n" (for 60 answers, "< 5%"): the rule of three, the upper end of the 95% range when nothing was seen. Zero in a sample is not proof of zero.

What counts as a change

AI answers move around on their own. The same engine asked the same question twice often cites different sources. A change arrow is only drawn when both periods have enough answers, and it compares the two periods' rates directly. A change we call real, in the "Changes judged real" list and in alerts, has to pass a stricter test: the two periods are compared question by question, with a test sized for small samples. Each engine's trend chart also says how large a move it would take to stand out from normal variation, so a flat line never quietly reads as "stable".

When the measurement itself changes (an engine switches model, or we change how its answer is read), the date is noted on the keyword it affects. A jump on that date may be the measurement, not your site. A check that failed (the engine errored, timed out or refused) is shown as failed and left out of the rate. It is never counted as "not cited".

What these rates cannot tell you

  • Whether more citations bring more visitors. We have no evidence yet that a higher citation rate turns into more traffic or sales, and we don't claim it. It measures whether AI answers mention you, not what people do next.
  • How AI answers everyone. The rates describe answers to the questions you track, not every question people ask about your topic.
  • Next month. Engines change how they search and cite from week to week. A rate describes the period it was measured in.
  • Every engine. Only the engines named above are checked. An AI product that is not on that list is not measured at all, so its answers are neither counted as a miss nor as a hit.
  • What a signed-in person sees. We ask without anyone's account, chat history or personal settings, so an answer someone gets in their own app can differ from the one we read.
  • Whether a memory answer is true. When a model answering from memory says it named your site, that is its own account of its answer. We record it as "named", never as "cited", because no source was linked.

Trust & E-E-A-T

Content-level trust signals feed into the Trust & Compliance category above via four weighted dimensions: Trustworthiness (30%), Expertise (25%), Authoritativeness (25%), and Experience (20%) — modelled on Google's published E-E-A-T quality-rater concepts. Each dimension is scored from concrete signals actually found in the page (author attribution, cited sources, organisation schema, first-hand-experience language, and so on), not a subjective AI opinion.

Pages detected as "Your Money or Your Life" topics (health, legal, financial, and similar) are held to a stricter bar automatically — for example, a health or financial claim made under an anonymous byline, or a stated professional qualification with no verifiable profile link backing it up, is flagged as a real problem there in a way it would not be on general content.

From finding to verified fix

Every deduction in your report links back to the exact finding that caused it, in plain language, paired with a fix written for that specific page — copy-paste text or code grounded in the page's own evidence, not generic advice, and produced natively in the page's own language rather than translated from English. When a fix genuinely needs something only you have — a real business fact, or a developer to ship a code change — we say so and flag it for review instead of inventing an answer.

Once you've applied your fixes, one re-scan is included with every paid analysis. It re-measures the page with the same deterministic checks and marks each fix verified, not applied, or regressed, so you can prove the change actually went live rather than take it on faith. That's a single included verification pass per analysis, not continuous monitoring.

Who maintains this

This methodology is written and maintained by Rogier Bruggeman, founder of KinetixSEO. Every scoring weight, threshold, and cap on this page is a deliberate decision rather than a model's preference, and each one is revisited when the evidence behind it changes — the freshness thresholds and the E-E-A-T authority cap have both been re-derived and changed since launch. If you think a check is wrong, say so: get in touch and you'll reach the person who decided it. More about who runs KinetixSEO is on the about page.

If you'd like to see this in practice on a real result, run a free check on your own page, or see our Terms for what we do and don't guarantee about the outcomes these scores predict.