Scorer changelog

When we change how the score is calculated, your number can move without anything about your brand moving. Every one of those changes is listed here, for both the Tracker score and the free audit, with the dates each version was in force and the reason it changed.

Why this page exists

A visibility score is only comparable with itself. If the scoring method changes underneath a trend line, the line reports our arithmetic rather than your visibility, and nobody looking at it can tell the difference. The IAB framework asks a measurement programme to re-baseline when that happens and to report the periods before and after as separate series rather than stitching them together.

So each scan we store is tagged with the scorer version that produced it and with a measurement baseline. Change the scoring method, the engine panel, one of the underlying models or your question set, and a new baseline opens. Inside the product, a movement measured across a baseline change is not shown as a movement: the dashboard says the baseline reset and names the reason instead of printing a number that would be ours rather than yours. Both fields, the scorer version and the baseline, are also columns in the raw export, so you can group your own rows by them.

Scans collected before we started tagging carry no baseline. We treat an unknown baseline as "no change detected" rather than inventing a boundary, because a fabricated reset is as misleading as a missed one.

Tracker: AI Visibility Score versions

These govern the AI Visibility Score in the Tracker, which measures whether engines name, cite or recommend you.

A brand that appears only inside a link URL was used as a source, not mentioned

In force today

28 August 2026 to today

Grok answered "popular tools include Profound, Otterly.ai, Peec AI, Semrush and Ahrefs" and cited searchscore.io/guides as its footnote source. The domain regex matched the brand inside the URL, so the report said "2 of 12 answers mentioned you" over an answer that recommends five rivals and never says the brand name - and the sentiment pass had already recorded the truth (in_body false, in_sources true) while the mention classifier counted it anyway. Mentioned and cited are different facts: being used as a source is real and stays visible through citedUrls; it is not the answer naming the brand to a customer. The matcher now requires the brand to appear outside link targets - markdown link LABELS still count, bare domains in prose still count, only the URL inside a markdown target and bare scheme-carrying URLs are excluded. This only ever REMOVES mentions. Measured before shipping across everything stored: 8,349 Tracker cells, zero flip; 360 Trust Map cells, exactly 2 flip, both q1/grok on the unreleased searchscore.io preview run. No released customer number moves. The 126-cell labelled fixture re-scores with zero disagreements.

2026-08-28.url-only-source

Three more ways of saying "I have never heard of them"

13 August 2026 to 28 August 2026

The 2026-08-12 epoch stopped a knowledge disclaimer losing its veto to the remedy that followed it. Re-scoring against the labelled set showed six answers still counting as citations, every one of them an engine saying plainly that it did not know the brand. All three causes were vocabulary rather than logic. First, the disclaimer list held "could not find" and "cannot find" but not the contracted "couldn't find", so one spelling of a sentence was an absence and the other was a citation, decided by an apostrophe. Second, "Without public reviews or case studies on X, their effectiveness remains unclear" is an absence of evidence stated about the brand, and it was rescuing the mention because it is a clean clause that happens to name it. Third, a clause that puts a question back to the reader is part of the not-knowing response, not an answer: "do you have a website or company name associated with X?" is the engine admitting it does not know what X is. That rule only applies where the answer disclaims the brand somewhere, so an ordinary question in a real recommendation is untouched. This only ever REMOVES citations. Re-scoring all 5,977 stored cells, 11 stop counting and none start, moving the mention rate from 21.78% to 21.60%. Every one of the 11 was checked by hand and is an engine disclaiming knowledge of the brand.

2026-08-13.disclaimer-vocabulary

An engine saying it has never heard of you is no longer a citation

12 August 2026 to 13 August 2026

Three corrections to what counts as a mention, found by measuring the classifier against a hand-labelled set for the first time. Two of them REMOVE citations, so scores may step down, and that is the correction rather than a drop in visibility. First, a knowledge disclaimer no longer loses its veto to the remedy that follows it. "I have no information about X. To find out, search for X on Google" names the brand twice, and the second clause was clean, so the answer counted as a citation; the same held for "could you tell me more about X?". That is the stock response to a brand an engine does not know, and it was the single largest error in the classifier. Second, a name attributed to a different vendor is that vendor's product: "SearchScore by SearchUnify" and "SearchNode (formerly SearchScore)" were both counted as ours, which inflated our own visibility, and any brand whose name is a common compound was exposed to it. Third, a multi-word brand now matches its own singular or plural in the final word only, so "Millennium Hotels" is found in "Millennium Hotel and Conference Centre". That one ADDS citations that were always real. A single-word brand is untouched, so Boots can never match Boot.

2026-08-12.mention-integrity

Ranks must be corroborated, and sentiment carries its confidence

11 August 2026 to 12 August 2026

Three changes to how a citation is read. A rank is now stated only when the markdown reading and the classifier reading of the same answer agree on the same number; they agreed on 16% of the cells where either had an opinion, and the markdown reading alone was what customers saw. An uncorroborated rank is credited as a prose mention, never as a low rank. The markdown reading itself was also fixed: its list counter did not reset between lists, a prose mention above a list beat the rank below it, and a sentence after a list of rivals inherited the count, which reported a top-3 rank for a brand that was never in the list. Sentiment is now weighted by the confidence the classifier returned with it, which was previously stored and ignored, so a hedged verdict moves the score less than a certain one. Scores may step down slightly where ranks are no longer confirmed; that is the correction, not a change in visibility.

2026-08-11.corroborated-position

Transactional intent added

9 August 2026 to 11 August 2026

Adds a transactional intent, completing IAB's four intent types. It is decision-stage, being the closest of the four to a purchase, so 8 question-instances across the live sets move into the scored set. Prompt-type coverage goes from 3 of 4 to 4 of 4, which is the criteria-matrix row separating directional from decision-grade. Brand-named comparisons were NOT reclassified: that behaviour is deliberate and locked by tests/avs-brand-safety, and they are now marked by isBrandedComparison for separate reporting instead.

2026-08-09.intent-taxonomy

Provenance dropped from cell credit

27 July 2026 to 9 August 2026

Provenance dropped from cell credit: it measured engine retrieval capability (Perplexity 99% vs Gemini 18%) rather than the brand. Sentiment and position only.

2026-07-27.provenance-removed

The first AI Visibility Score

Until 27 July 2026

AVS weighted by sentiment, position and provenance.

2026-06-01.initial

Audit: scoring generations

The free audit is a separate scorer with its own history. It grades what a site itself makes available to an AI engine, and it is stamped on every audit we store, so a saved score always names the generation that produced it. It is on geo-174-2026-10 today.

Most of these enhancements let the audit recognise something it could not previously read, so a score under a newer generation is usually higher for the same unchanged site. Where a generation moved scores the other way, it says so.

Contact details are found on every page the scanner reads

In force today

From 27 October 2026 · scores move in both directions

Phone numbers and postal addresses are now read on every page the scanner fetches, not only the homepage, and international formats are recognised, while dates, prices and runs of numbers are no longer mistaken for a phone number.

geo-174-2026-10

Checks that rarely applied now only test the sites they fit

From 27 October 2026 · scores move in both directions

The terms-of-service check now recognises more ways sites label that link, and only applies to sites that take orders, bookings or sign-ups. The checks for named experts, original data and a distinct point of view now read the other pages the scanner fetched, not only the homepage. An image with an empty description now counts as having no description unless it is decorative. A domain is treated as parked only when the scanner sees parking evidence itself, and a sign-in screen or parking page that appears only once the page has loaded is no longer scored as the website. Three checks that look for phrases about named experts, original data and a distinct point of view are now shown as best-practice tips and no longer count towards the score. Text from neighbouring parts of a page is no longer run together, so phrases at the start of a section are recognised. Privacy-policy links labelled in Korean, Chinese or Japanese are now recognised.

geo-173-2026-10

Sites the scanner could not read are retried, not refused

From 27 October 2026 · scores move in both directions

When a homepage answers with an error, a maintenance notice, a redirect page, a near-empty page or a certificate problem, the scanner now follows the redirect or tries again in a full browser, and scores the site if it reaches it. If it still cannot reach the site, it says the site could not be reached for now, instead of saying it is not a website. A parked domain that moves visitors to a rotating parking address is recognised as parked. A site that answers an address that does not exist with an ordinary page, instead of a "not found" error, now fails the soft-404 check. One slow page no longer stops the scanner checking the rest of a site's footer pages, and a page that is still loading gets a few more seconds before it is read.

geo-172-2026-10

More pages that are not the website are no longer scored

From 27 October 2026 · scores move down

The scanner now recognises more pages that stand in for a website without being it, such as a parking page's browser check, a link-tracking domain that answers with its own notice, and an empty holding page. These are no longer scored as the business's website. A homepage that refuses the scanner with HTTP 401 is now handled the same way as one that refuses it with HTTP 403: as a block, not as the site's own page. No check has changed how it scores: a page that is now refused gets no score instead of one.

geo-171-2026-10

Blog posts, FAQs and the HTTPS redirect read more accurately

From 27 October 2026 · scores move in both directions

A bot-check page that answers instead of the site is now treated as not measured, not as a site that needs JavaScript. The HTTPS redirect is now tested by visiting the http:// address, so a site that still serves pages over http:// is told so. Parked pages, closed shops, maintenance notices and bare sign-in screens are no longer scored as websites. The scanner now finds posts behind a blog or news index, including news pages in other languages, and counts an FAQ built as a list of expandable questions. Scores can move in either direction.

geo-170-2026-10

Your imprint, contact page and main pages now count

From 24 October 2026 · scores move up

The scanner now reads more of the pages that say who a business is and what it offers. It follows the site's own link to its imprint, legal notice or contact page, and reads one page from the section of the site that holds what it sells, such as a care home or a service page. Contact details and structured data on those pages now count, and a strip of client logos introduced by a line that counts customers, such as "200+ brands", is recognised as client logos.

Measured on the same live pages from 132 sites: 38 scores rose, by a median of 0.9 GEO points and up to 6.5, and 94 were unchanged. None fell.

geo-169-2026-10

A blog we could not reach no longer counts against you

From 24 October 2026 · scores move up

When a site links its blog or articles and they do not answer in time, the scanner now asks once more, with a longer wait, while the audit still has time for it. If they still do not load, Article markup is left out of the score instead of being marked as missing: the structured data score is worked out from the checks that remain, so an unreachable blog neither costs nor earns points. The Fix List then says we could not reach the blog, rather than asking for markup the site may already have. The FAQ card also now asks for FAQ structured data, not a new FAQ section, when that is all that is missing.

geo-168-2026-10

Blog posts and FAQ pages now count

From 23 October 2026 · scores move in both directions

Blog posts and FAQ pages now get the credit they have earned. The scanner goes straight to a site's real posts: it tries the blog first, skips index and archive pages and file downloads, recognises posts published at the top level of the site, and reads the news feed a site declares when its blog loads its posts in the browser. FAQ, HowTo and Q&A markup on a site's own FAQ page now counts too.

Measured on the same live pages from 132 sites: 20 scores rose, by a median of 4.6 GEO points and up to 9.9, and 111 were unchanged. One fell, by under 1 point, where the larger posts now read used up the audit's download allowance before its sitemap was checked.

geo-167-2026-10

Grok check retired

From 21 October 2026 · scores move up

We no longer score a Grok crawler check. The name we checked for is not one xAI publishes, so no robots.txt names it, and the check could only fail on a site whose robots.txt blocks every crawler it does not name. That blanket block is still scored, by its own check and by the named AI crawlers.

Measured on the 6,000 most recent audits: 5,817 scores were unchanged and 183 rose, by 0.5 or 0.6 GEO points. Those 183 are the sites with a blanket block.

geo-166-2026-10

A privacy link is not a policies page

From 20 October 2026 · scores move down

A link to a page listing several policies still counts as both a privacy policy and terms, as it has since geo-162. That reading now applies only to a page of several policies, such as /policies or a link labelled "Policies". A link to one document, such as "Privacy policy" at /policy, counts as that document alone and no longer as terms too.

Measured on the same live pages from 139 sites: 138 scores were unchanged and 1 fell, by 0.30 GEO points, where a link to a single privacy policy had been counted as terms too.

geo-165-2026-10

Offers are not addresses, whatever their capitals

From 20 October 2026 · scores unchanged

A number after an offer word such as "Save", "Buy" or "Over" is no longer read as a house number, however the word is capitalised, so "SAVE 5 Market Place deals" is not mistaken for a postal address.

Measured on the same live pages from 142 sites: every score was unchanged.

geo-164-2026-10

Addresses read the way pages print them

From 20 October 2026 · scores move up

A postal address is now found when a page prints it in separate pieces of markup, as many site builders do, and a street name that begins with "The" or contains a hyphen is recognised. A title such as "5 Easy Ways To Drive Traffic" is no longer mistaken for an address.

Measured on the same live pages from 141 sites: 138 scores were unchanged and 3 rose, each by 0.91 GEO points, where an address was already on the page. None fell.

geo-163-2026-10

Trust pages and contact details, however a site links them

From 20 October 2026 · scores move up

Links to an About page, a contact page and a privacy policy or terms page are now recognised however a site writes them, including relative links such as about.html and plain menu labels such as "About" and "Contact". A single footer link to a policies page now counts as the privacy policy and the terms it leads to.

Contact details now include an email address protected by Cloudflare, which hides it from automated readers, and a postal address written out on the page in any of the languages we measure, not only a UK one.

Measured on the same live pages from 140 sites: 123 scores were unchanged and 17 rose. None fell, and no score moved by more than 1.96 GEO points.

geo-162-2026-10

Sharper readings across seven checks

From 9 October 2026 · scores move in both directions

Each check now reads a page the way visitors and search crawlers actually experience it, so scores reflect what is really there.

Privacy policies are now recognised in other languages, such as a German /datenschutz page. Cloudflare's protected email links are no longer mistaken for broken links. Images marked as decorative, which is good accessibility practice, no longer count as missing alt text. Only the headings a visitor can actually see are read as the page headline. And the notice that a site needs JavaScript now appears only on pages that are genuinely empty without it.

Sitemaps are now checked properly: a sitemap must list at least one page, so an empty file or an ordinary web page sitting at the sitemap address no longer earns credit. Images with no alt text at all are now counted consistently on every page.

Measured on the same live pages from 141 sites: 109 scores were unchanged, 11 rose, and 21 dipped slightly where a sitemap was empty or images lacked alt text. No score moved by more than 0.73 GEO points.

geo-161-2026-10

Three measurements stopped counting a page's code as its content

From 26 August 2026 · scores move in both directions

Text extraction included the contents of script and style tags, so on a typical page about a third of what was measured as content was actually code, and sites were charged for the JavaScript they ship. Off-site presence now reads links and structured data rather than any appearance of a name in the source, so a page that merely used the word "Reddit" is no longer counted as having a Reddit presence. And the JavaScript-gating check compared a page against itself, which reported no gating for every site ever measured; it now compares what a browser sees against what a crawler sees. Measurement changed in BOTH directions: sites gain where they were charged for their own code, and lose where a presence was counted that was never linked, or where content genuinely is hidden from crawlers. Measured across 446 sites the typical score did not move and the largest single change was 1.6 points.

geo-159-2026-08

Three checks stopped scoring the markup instead of the content

From 26 August 2026 · scores move up

The answer-first check walked SIBLINGS of the h1, so any page builder that nests the heading in a div made a perfectly good lead paragraph unreachable and the check read an empty string. The social-proof checks never fetched /reviews/, /testimonials/, /press/ or /case-studies/, which are the pages that hold reviews and case studies. And the copyright proxy demanded a two-year span, so an accurate "2025-2026" failed while a stale "2025" passed. Measurement moves UP only, and only for sites that already had the signal.

geo-158-2026-08

robots.txt read to the letter of the standard

From 25 August 2026 · scores move in both directions

Two readings of robots.txt were sharpened. A field our parser did not recognise, such as the Content-Signal line Cloudflare now adds by default, no longer ends the rule group it sits in, so a following Allow line is honoured rather than discarded. And a group is now closed by the next User-agent line, as the standard requires, so a rule written for one crawler can no longer apply to a crawler named earlier in the file. Measured by parsing the same 448 live robots.txt files with both versions: 94.0% of sites are unchanged, 21 moved up and 6 moved down, every move being 5.3 GEO points or less. Scores move in BOTH directions and some sites are newly reported as blocking, which is the correction working rather than a regression: a file that disallows everything and then whitelists named crawlers really does block the AI crawlers it leaves out, and the old grouping leaked those whitelist Allow lines to every agent in the file.

geo-160-2026-08

YouTube channels recognised by handle and in structured data

From 25 August 2026 · scores move up

A YouTube channel is now recognised when it is linked by its @handle, the format YouTube has issued since 2022, and when it is declared in Organization structured data rather than as a link. Measurement improved: worth 3 points of brand authority, and sites that had a channel all along are now credited for it, so scores move up only.

geo-157-2026-08

Anthropic's search crawler scored separately from its training crawler

From 25 August 2026 · scores move in both directions

Claude-SearchBot, which indexes content for search, is now scored separately from ClaudeBot, which collects content that may contribute to training. The existing weight is split rather than added to, so no total moves. Measurement changed in BOTH directions: a site that allows search while declining training gains, and a site blocking the search crawler now sees the visibility gap it previously was not shown.

geo-156-2026-08

Trust-page and canonical signals recognised in more languages

From 20 August 2026 · scores move up

The four trust-page signals now recognise contact, about, privacy and terms pages in languages whose words do not contain the English spelling, and the canonical-domain check is sharpened again. Measurement improved: worth up to 15 points of brand authority, and non-English sites gain most. Both changes move scores up only.

geo-155-2026-08

A blocked crawler is no longer read as JavaScript gating

From 20 August 2026 · scores move up

The rendering signal now distinguishes a page that hides its content behind JavaScript from one whose crawler request was refused by a firewall or timed out. Measurement improved: a site that was never gated is no longer told that it was, and scores move up for every site whose audit had been blocked rather than gated.

geo-154-2026-08

llms.txt assessed against the specification

From 19 August 2026 · scores move down

The llms.txt signal now assesses the file against the specification - a Markdown document with a heading and at least one link - rather than recording only that a file exists. Measurement changed and this one moves DOWN: a site whose file exists but does not meet the spec now scores lower than under geo-152. Adoption figures published before this generation were measured on presence and continue to say so.

geo-153-2026-08

Article detection distinguishes content from card grids

From 19 August 2026 · scores move up

Article detection now distinguishes a published article from a grid of cards that happens to use the same markup. Measurement improved: homepages laid out as card grids are no longer asked for a publication date they were never going to carry, and gain the 6 points that question was costing them.

geo-152-2026-08

SEO and AI-search signals judged on the same pages

From 19 August 2026 · scores move up

Breadcrumb, Article and FAQPage signals in the SEO score are now judged across the same pages the AI-search score already used. Measurement improved: the two halves of a report now agree, and a site credited by one is no longer queried by the other.

geo-151-2026-08

FAQ and speakable content found beyond the homepage

From 19 August 2026 · scores move up

FAQ and speakable signals are now judged across every page the audit fetches rather than the homepage alone, and the audit reaches /faq, /faqs and /pricing alongside /about. Measurement improved: a site publishing questions away from its homepage is now credited for them, so scores move up only.

geo-150-2026-08

Canonical-domain check compares the host it lands on

From 19 August 2026 · scores move up

The canonical-domain signal now compares the host the alternate address resolves to, so a site that correctly redirects one address to the other is recognised as consistent. Measurement improved: sites with a single correct canonical gain 3 points they were previously not credited with.

geo-149-2026-08

Quotable statistics recognised beyond English and dollars

From 13 August 2026 · scores move up

The quotable-statistics signal now recognises money outside dollars, ordinary English sentences where the figure follows the object, verb-final languages, and a space as the thousands separator. It is worth 8 points. Measurement improved: scores read higher than geo-146 for any site previously unread, and non-anglophone sites gain most.

geo-148-2026-08

Authorship and dates read from structured data

From 1 August 2026 · scores move up

The audit now reads authorship and publication dates from structured data, follows a site's own navigation to find its content, and no longer counts a soft 404 as a content page. Measurement improved: scores read higher than geo-145 for the same site, so figures must name the generation they were measured under.

geo-146-2026-08

Generations before geo-146 predate this record. Their identifiers are still stamped on the scans they produced, so an older score can always be told apart from a newer one, but we do not publish notes we cannot source.

This page is generated from the scoring code, not written alongside it. The entries above are read at build time from the version history the scorer itself uses to decide which method applied on a given date, so the page cannot describe a scorer we do not run. That matters because one of the changes listed above originally shipped with no history entry at all, and nine surfaces went on describing the retired method for weeks. That is the failure a hand-maintained changelog invites.

What counts as a change

The version above moves whenever the scorer would produce a different result for identical input. A wording change, a new chart or a faster query does not move it. Anything that alters what a cell is worth does, and a golden corpus of stored answers is re-scored on every change so that "identical input, identical output" is checked rather than assumed.

Changes that are not ours are handled the same way. An AI engine swapping its underlying model, or joining or leaving the panel we query, also breaks comparability, so those open a new baseline for your account even though our code did not change. We record the model that actually answered on every observation for that reason.

Back to measurement standards, where we grade each plan against the IAB criteria and name what it falls short on, or on to the IAB disclosure fields, where the rest of the method is set out field by field and generated the same way this page is.

If you have read this far, the useful next step is your own numbers: the free check scores any site and asks for no email.

Current scorer version 2026-08-28.url-only-source. Framework reference: IAB, Measuring Visibility in the AI Era, August 2026.