Methodology

Everything that sits behind the number

43 checks, three pillars weighted differently, and one rule that stops an average from hiding a fatal problem. Here it is in full, so you can argue with it.

Four steps, none of them with surprises

  1. We request, and we say who we are

    Your page, your robots.txt and your sitemap, with the agent ParsigoBot. Your robots.txt is read and its rules applied, bot by bot; separately, we also request your entry page under the names of 8 AI crawlers, with a user agent that still says who we are, to see whether a firewall treats them differently.
  2. We don't run JavaScript

    Just like AI crawlers. What we analyse is the HTML exactly as it leaves your server, which is precisely what they receive.
  3. We walk through several pages

    Up to 12, chosen from your sitemap and the links on the home page, spread across different sections. The home page tends to be the least representative page of a site.
  4. We evaluate with deterministic rules

    There are no language models in the score or the checks. The same conditions always give the same result, today and in six months' time. The optional «What an assistant understands from your site» section does use one, and it doesn't count towards the score.

What we check, exactly

This list comes straight out of the analysis engine, it isn't written by hand: if we add a check, it shows up here on its own. The weight is what it is worth within its pillar.

blocks · ceiling 39
If it fails, the whole score is capped at 39.
informational · 0 pts
We tell you; it never moves the score.
What we check, exactly

Access

Can they get in?· 17 · 45 % of the score
  • Access for the bots that write answers

    blocks · ceiling 39

    The agents that search live and cite with a link. Blocking them costs you real visibility.

    14 pts
  • Page indexability

    blocks · ceiling 39

    A noindex in the tag or in the HTTP header leaves the page out, even when the crawler gets in.

    12 pts
  • Server response

    blocks · ceiling 39

    If the page does not answer with a 2xx, there is nothing to read.

    10 pts
  • Anti-bot challenges

    blocks · ceiling 39

    A badly tuned WAF hands a challenge to legitimate agents. Your robots.txt says yes and your infrastructure says no.

    8 pts
  • Live test with each bot's name

    A firewall can let an unknown crawler through and shut out exactly the AI ones. You only see it by requesting the page under their name.

    8 pts
  • Directives that keep the page out of AI answers

    Become eligible for AI Overviews and Copilot answers without touching robots.txt.

    8 pts
  • robots.txt availability

    blocks · ceiling 39

    A robots.txt that returns a server error, or doesn't respond at all, is read as a blanket ban on crawling.

    6 pts
  • Secure connection (HTTPS)

    Basic requirement. Without it, several agents don't even try.

    4 pts
  • Redirect chain

    Every hop is a chance to lose the crawler along the way.

    4 pts
  • Response time (TTFB)

    An agent resolving a live question is in a hurry: someone is waiting on the answer.

    4 pts
  • Training bots (for information)

    informational · 0 pts

    Blocking them is a legitimate editorial decision and does not affect whether you get cited. We tell you; it costs you no points.

    —
  • Markdown version of the page

    informational · 0 pts

    A Markdown version saves the model from taking your HTML apart, and with it the risk of your text getting lost among menus and banners.

    —
  • Error page in Markdown

    informational · 0 pts

    When an agent asks for an address that doesn't exist, a 404 in Markdown tells it where to go next without taking HTML apart.

    —
  • Commerce manifest (UCP)

    informational · 0 pts

    A commerce manifest lets a shopping agent read your whole catalogue without depending on it reading each product page correctly.

    —
  • Retired bot names in robots.txt

    informational · 0 pts

    Operators rename their bots. A rule written for the old name silently stops applying.

    —
  • “noai” signals (informational)

    informational · 0 pts

    Some CDNs and plugins add noai by default. It is not a standard, but you should know it is there.

    —
  • CAPTCHA on the entry page

    informational · 0 pts

    Agents rarely get past a CAPTCHA: a box in view on the entry page, not just inside a form, can stop one that needs to interact with the page. Informational: it does not affect the score.

    —

Readability

Can they read you?· 11 · 35 % of the score
  • Content available without JavaScript

    blocks · ceiling 39

    No relevant AI crawler runs JavaScript. If the content is assembled in the browser, what they see is an empty page.

    20 pts
  • Fallback without JavaScript (noscript)

    A patch, not a fix: it is there to warn, not to replace.

    5 pts
  • Main heading (H1)

    The most basic signal about what the page is about.

    5 pts
  • Navigation in the HTML

    With no links in the HTML, the crawler never gets past the page it landed on.

    5 pts
  • Declared language

    With no declared language, the content can end up in the wrong group.

    4 pts
  • Main content marked up

    Marking up with <main> or <article> separates the content from the menu and the footer.

    4 pts
  • HTML weight

    Past the size limit the crawler truncates the document, and the end of the page stops existing.

    3 pts
  • Image alt text

    informational · 0 pts

    Whatever is in an image without alt text doesn't exist for a crawler. Informational: it does not affect the score.

    —
  • Heading hierarchy

    informational · 0 pts

    Headings are the outline AI uses to split the page. Informational: it does not affect the score.

    —
  • Form fields with labels

    informational · 0 pts

    An agent filling in a form reads the name of each field; without a label, it guesses. Informational: it does not affect the score.

    —
  • Hidden text aimed at AI

    informational · 0 pts

    Hidden text that gives orders to an AI is a possible injection, for example from a compromised plugin. Informational: it does not affect the score.

    —

Structure

Can they understand you?· 15 · 20 % of the score
  • Structured data (JSON-LD)

    Saying outright what otherwise has to be inferred from the prose.

    10 pts
  • JSON-LD validity

    One comma too many and the whole block is discarded. There is no graceful degradation.

    6 pts
  • Canonical URL

    If the same page is reachable through several URLs, the signal is split between them.

    6 pts
  • Declared entity types

    Declaring something is not the same as declaring who you are: that takes an entity type.

    5 pts
  • Page title

    The first thing anyone reads of the page, on it and away from it.

    5 pts
  • XML sitemap

    The list of what you want found, without depending on links.

    5 pts
  • hreflang tags

    When the versions are wired up wrong, search engines serve the page in the wrong language.

    4 pts
  • Meta description

    The summary shown when somebody finds you.

    3 pts
  • Entities linked to each other

    Loose entities leave it to guesswork that they describe the same business; linked, it is stated.

    3 pts
  • Contradictory entity records

    Two records that contradict each other are worth less than one: in doubt, neither gets used.

    3 pts
  • Actions built as buttons

    informational · 0 pts

    A button that navigates only exists with JavaScript. Informational: it does not affect the score.

    —
  • Link preview (Open Graph)

    informational · 0 pts

    It's what shows when someone pastes your link into a chat or a social network. Informational: it does not affect the score.

    —
  • Article author and dates

    informational · 0 pts

    Who wrote it and when: what gets checked before a text is trusted. Informational: it does not affect the score.

    —
  • Trust pages and business details

    informational · 0 pts

    It is what an assistant uses to confirm the business is real and to answer «how do I contact them?». Informational: it does not affect the score.

    —
  • Files for agents (llms.txt)

    informational · 0 pts

    A Markdown index of your key pages. No major assistant has confirmed it reads it, but it costs five minutes and does no harm.

    —

Training is not citation

Blocking GPTBot keeps your content out of a model's training, but it doesn't stop ChatGPT from citing you: that takes OAI-SearchBot and ChatGPT-User. Google-Extended is the subtle one: besides training, it governs grounding (content from Google's index that Gemini uses when answering) in Gemini Apps and on Vertex AI — but not the AI Overviews or search. That is why we check the 34 agents separately and only penalise the blocking of those that affect citation.

They answer right now

6 agents

penalised if blocked

They go out to read when someone asks a question, and they cite with a link. Blocking them costs you visibility: it is the only thing we penalise.
  • ChatGPT-UserOpenAI
  • Claude-UserAnthropic
  • Perplexity-UserPerplexity
  • DuckAssistBotDuckDuckGo
  • MistralAI-UserMistral AI
  • Amzn-UserAmazon

They feed the search index

8 agents

penalised if blocked

They build the index the answers are drawn from. Blocking them has a cost too.
  • OAI-SearchBotOpenAI
  • Claude-SearchBotAnthropic
  • PerplexityBotPerplexity
  • GooglebotGoogle
  • BingbotMicrosoft
  • ApplebotApple
  • Amzn-SearchBotAmazon
  • MistralAI-IndexMistral AI

They collect for training

9 agents
Their content doesn't come back as a citation. Blocking them is a legitimate editorial decision, and it doesn't lower your score.
  • GPTBotOpenAI
  • ClaudeBotAnthropic
  • Google-ExtendedGoogle
  • Applebot-ExtendedApple
  • CCBotCommon Crawl
  • meta-externalagentMeta
  • AmazonbotAmazon
  • AI2BotAllen Institute for AI
  • MistralAI-TrainingMistral AI

We check these too

9 agents
Search and answer crawlers that feed none of the assistants we measure. We show them in the result, but they do not affect the score.
  • BytespiderByteDance
  • Meta-ExternalFetcherMeta
  • DuckDuckBotDuckDuckGo
  • YouBotYou.com
  • DiffbotDiffbot
  • omgiliWebz.io
  • ImagesiftBotImageSift
  • Meta-WebIndexerMeta
  • Diffbot-UserDiffbot

Advertising

2 agents
Their operators document them for advertising. We show them in the result, but they do not affect the score.
  • Meta-ExternalAdsMeta
  • OAI-AdsBotOpenAI

How it's worked out, and why it isn't an average

The pillars are not worth the same

If they can't get in, nothing else gets to matter.

  • Access45 %
  • Readability35 %
  • Structure20 %

What we can't see doesn't pass

If your server doesn't return the HTML, we don't invent a verdict about something we haven't seen: the check drops out of the calculation and is declared separately. Rounding it up would be lying with a number.

One blocker sets a ceiling

6 of the 43 checks take no points away: if they fail, the overall score cannot go above 39. An average would hide one fatal failure behind fifteen minor wins.

039 ceiling100

The scoring rules have a version, and every report keeps its own. When we change them, a site's score can change without the site changing: we explain what changed and why in What's changed.

What each band means

  1. 0–39Blocked
  2. 40–69Problems found
  3. 70–89Ready with reservations
  4. 90–100Ready

The five possible outcomes

  • Pass
    We checked it and it's fine. It scores all its points.
  • Warning
    It works, but not as it should. It scores half.
  • Fail
    We checked it and it's wrong. It scores nothing.
  • Inconclusive
    We couldn't check it. It drops out of the calculation: it counts neither as a pass nor as a failure.
  • Not applicable
    The check makes no sense in your case. It also drops out of the calculation.

We don't check whether an assistant cites you today

The available research suggests that not even the most closely correlated external signal explains more than a small fraction of why a model recommends a brand, and that most of the behaviour cannot be observed from outside. Promising that prediction would mean selling something nobody can stand behind. Parsigo stops at the prerequisite, which is measurable and stable over time.

The other three things we don't do

Now you know how it's worked out. Go and see your score

The 43 checks against your domain, in a few seconds. Free and with no sign-up.