Free tool · AIO Scanner

What do AI agents actually see on your site?

Drop in any public page. You get its score, every fault by name, and the exact Markdown an agent is handed — then open the full report and save it. No signup.

https://free scan
Show:

Try

510
scans run
52/100
average score
8
named checks
Free
no signup, no key
What the scan shows

699 KB in. 17 KB out.

What a browser downloads against what an agent needs — 5 real pricing pages, measured 23 Sep 2026. The scanner gives you the same for your page.

HTML, as served Markdown, as Onto serves itMeasured 23 Sep 2026 · one GET of each live page · cleaned by the engine the API runs
HTML against Markdown, measured 23 Sep 2026
PageHTMLMarkdownLighter
stripe.com/pricing699 KB17 KB97.6%
vercel.com/pricing1,199 KB15.4 KB98.7%
linear.app/pricing801 KB3.4 KB99.6%
notion.com/pricing501 KB23.2 KB95.4%
github.com/pricing688 KB34.7 KB95%
What it sends

Five requests. Make them yourself.

Nothing hidden: these are the requests the scanner makes, in order, with what each one decides — and the curl to check any of them from your terminal.

  1. 01

    GET /robots.txtas GPTBot

    A GPTBot or * group with Disallow: / → score 0, and the Markdown requests below are never sent.

    $ curl -sL example.com/robots.txt | grep -iEA3 'user-agent:.*(gptbot|\*)'
  2. 02

    GET the pageas a browser · no JavaScript

    A 403, a 429 or a challenge page (“Just a moment…”) → score 0. Otherwise this HTML is what the eight checks run on, and what the agent view is cleaned from.

    $ curl -sL -o page.html -w '%{http_code} %{size_download} bytes\n' -A 'Mozilla/5.0 Chrome/124' example.com
  3. 03

    GET the page, Accept: text/markdownas GPTBot

    Markdown back → the site has a Markdown version. Otherwise the next two are tried; the first match wins.

    $ curl -sL -H 'Accept: text/markdown' -A 'GPTBot/1.0' example.com | head -5
  4. 04

    GET /index.md · GET /llms.txtas GPTBot

    The .md twin of the page, then the site-wide /llms.txt. Neither → no Markdown version, −25.

    $ curl -sL -A 'GPTBot/1.0' example.com/llms.txt | head -5
  5. 05

    GET /.onto/index.mdas a browser

    The Serve SDK's signature, here or in the Markdown's X-Onto headers → the Markdown costs 0. Your own Markdown without it costs 10.

    $ curl -sI example.com/.onto/index.md | head -1

Then no more requests: the HTML runs through the eight checks (see them run) and the cleaner the Read API uses builds the agent view.

Questions

Before you scan.

Yes — no signup, no card, no key. The full report is free too; you only need an account to save it.
robots.txt and the Markdown requests go out as GPTBot, the way an AI crawler asks. The page itself is fetched as a browser, so a firewall that blocks the scan shows up as a fault instead of hiding the page. It runs no JavaScript, so anything that only appears after scripts run isn't seen.
It's read first. If it disallows GPTBot or every crawler, the score is 0 and the Markdown requests — the ones sent as GPTBot — never go out. The page is still fetched once, as a browser, to check for a firewall.
The scanner checks the Markdown your site serves; the API scores the Markdown Onto makes. For a site with no Markdown version, the API reads higher — raycast.com gets 45 here and 70 from the API. More on /scoring.
No. A scan adds to three running totals — the number of scans, the sum of their scores and the HTML read — which feed the homepage counters. The URL and the page aren't kept, and nothing is cached; like any web request, it passes through our server logs. A report you choose to save stays in your account until you delete it.
The scanner does one page. For a site, use the Read API: /v1/map finds the pages and /v1/score scores each one, free — the audit guide walks through it.

Next

Found faults? Fix them at the source.

The Serve SDK gives agents a Markdown version of every page — the one fix that clears the biggest penalty.

The scanner is free · the SDK is free on npm