ResearchStudy · October 2026

We tested 13 free AI visibility checkers. Most can't tell when a firewall blocks AI crawlers.

By Uncanny Labs · Published

Short answer: most free GEO and AI visibility checkers reward the presence of files and markup, and miss what actually stops AI agents from reaching a page. On October 20, 2026 we built 33 copies of one web page, changed exactly one thing in each, and ran every copy through 13 free third-party checkers, twice, with our own checker as a control. A page whose firewall turns AI crawlers away with a 403 got the same result as a fully open page in 9 of the 11 tools that check crawler access.

What else we found:

  • 9 of 11 access-checking tools didn't react when Googlebot was blocked, and 7 of 11 didn't react when OpenAI's search crawler (OAI-SearchBot) was blocked.
  • Cloudflare's checker passed its AI robots.txt rule on a site that disallows every crawler.
  • Four tools gave points for a broken llms.txt, an HTML error page served at that address.
  • Seven tools scored FAQ markup for questions that aren't on the page exactly like valid FAQ markup.
  • The same page got anywhere from 39 to 100, each tool on its own scale.

We make one of the tools we tested: our own free AI visibility check. It got things wrong too, and we list those misses below.

Where do AI visibility checkers fit next to SEO?

SEO is the foundation: a page search engines can crawl, index and read in plain HTML. AI agent readiness is the layer on top. It asks whether AI agents can see, read and use your page, and it adds to SEO rather than replacing it. A good AI visibility checker tests that layer in order: blockers first, then the things that help, each labelled by how strong the evidence is.

How did we test the checkers?

The test page. One fictional SaaS page: "Kestrel Ledger: invoicing software for freelancers." It has six question-style H2 sections, an author byline, published and updated dates, Open Graph tags, a canonical URL, one link to European Central Bank statistics, a robots.txt that allows everything, a sitemap, /about and /docs pages, no llms.txt and no JSON-LD.

The 32 variants. Each copy changes exactly one thing compared with the base page:

  • Access and indexing (16): nine single-bot robots.txt blocks (GPTBot, OAI-SearchBot, ChatGPT-User, ClaudeBot, Claude-SearchBot, PerplexityBot, Google-Extended, CCBot, Googlebot), Disallow: / for all, robots.txt 404, robots.txt 5xx, a firewall returning 403 to AI crawler user agents, JavaScript-only content, noindex, nosnippet.
  • Files and markup (7): llms.txt, llms-full.txt, a "soft 404" llms.txt (an HTML error page), Organization, Article and FAQ schema, and FAQ schema whose questions aren't on the page.
  • Early agent standards (6): Content Signals, markdown negotiation, Link headers, MCP server card, API catalog, agent skills.
  • Content (3): no dates, keyword stuffing, thin content.

All 33 pages were served from a separate free Vercel project. A parity check matched them to a local copy.

The tools. All free and runnable with no API keys: GEO Optimizer 4.19.5, geo-audit 0.2.1, Scovant 0.20.1, GeoScore (GitHub), agentimization 0.2.2, one-step-seo 0.6.0, agentlint 0.1.0, agentready 0.1.0-alpha.0, answerlint 1.3.2, two public n8n templates (#19988 "10-point SEO audit" and #20481 "Audit AI and search bot access using robots.txt"), Cloudflare's isitagentready (public API), and the "Agentic Browsing" category of Google Chrome's Lighthouse 13.5.0. That's 13 tools. Our own checker ran as a control, using its grading code and firewall probe run locally rather than through the website.

Which tools count as "checking access". Lighthouse tests browser agents, not crawlers, so access variants are outside its scope. answerlint is a content linter with no crawler or indexing checks. That leaves 11 tools that check crawler access, and that's the denominator we use. (If you count answerlint, which can't see these blocks by design, the figures become 10 of 12, 10 of 12 and 8 of 12.)

Two runs, plus tie-breaks. Every tool ran every variant twice, between 13:27 and 13:52 Lisbon time on October 20, 2026. A difference counts as a finding only if both runs agree and the base page agreed with itself. Where one run was noisy, we did a third run to break the tie and labelled it. Only three cells were noisy: geo-audit's base score (35 vs 39, from a module that does a live web lookup), and one temporary fetch failure each for an n8n template and for our own checker. Every other cell matched across both runs. The test cost $0.

What "correct" means. We judged every tool, ours included, against one written standard:

  • Must fail: a block on a search or retrieval bot (OAI-SearchBot, Claude-SearchBot, PerplexityBot, Googlebot), Disallow: / for all, robots.txt returning 5xx (RFC 9309 says to treat that as a full disallow), a 403 to AI user agents, JavaScript-only content, noindex, nosnippet (Google's AI features documentation).
  • Must not fail: a missing robots.txt (RFC 9309: no restrictions), and a block on a training bot (GPTBot, ClaudeBot, Google-Extended, CCBot). Vendor docs from OpenAI, Anthropic and Google treat that as a policy choice that doesn't remove you from AI search.
  • Should warn: FAQ schema that doesn't match the page, keyword stuffing, thin content, missing dates.
  • Unproven, never required: llms.txt and the early standards. A soft-404 llms.txt should earn nothing.

How we label fixes. Our evidence library grades each fix by published evidence. Supported: allowing search and retrieval crawlers, main content in the initial HTML, and a title and paragraphs that match the buyer's question. Mixed: visible dates and freshness, and adding sources, statistics and quotes. Unproven: FAQ/HowTo schema, llms.txt, and Organization/sameAs markup.

Not run: Pyralis (no public API), paid or keyed tools (the Ahrefs and Semrush AI toolkits, Profound, Otterly, Peec), and n8n templates that need paid LLM nodes. Brand trackers (HubSpot, Semrush, Ahrefs, Mangools) score a brand's mentions, not a page, so test pages can't measure them.

Our bias. We make one of the checkers, so we have a stake. Our checker went through the same fixtures, the same two runs and the same written standard as everyone else. We count our misses the same way, and we kept every raw output (991 JSON files). One limit we can't remove: we chose what to test, so the fixtures reflect our view of what matters.

How did each checker handle the key test pages?

Each cell shows how the tool's main result changed against the base page. Both runs agreed in every cell. "Missed" means the result was identical to the open page.

Tool (base result)Firewall 403 to AI botsGooglebot blockedOAI-SearchBot blockedDisallow: / for allTraining-only block (GPTBot)Broken llms.txtMismatched FAQ schema
GEO Optimizer (58/100)Missed−5Missed−13No change ✓+3+4
geo-audit (39/100)¹MissedMissed−1¹−4¹−1¹No change ✓+3¹
Scovant (95, grade A)MissedMissed (A)Missed (A)Missed (A 95)−14 (A→B)No change ✓No change
GeoScore (47)MissedMissed−1−12−1+5+4
agentimization (50)²MissedMissedMissedMissedNo change ✓No change ✓No change
one-step-seo (AI 75 / Search 79)MissedMissedAI −5AI −70, Search +11AI −5AI +5Search +11
agentlint (72)−7 ✓MissedMissed−14−6+3+3
agentready (54)MissedMissedMissed−3No change ✓No change ✓+3
answerlint (46)³No access checksNo access checksNo access checksRefuses to runNo change ✓No change ✓+17
n8n #19988 (100)MissedMissedMissedMissed (100)No change ✓No change ✓No change
n8n #20481 (12 bots allowed)⁴"Contradiction" ✓Listed ✓Listed ✓All blocked ✓Listedn/an/a
Cloudflare isitagentready (Level 1)MissedMissedMissedMissed: rule passes, Level 1No change ✓No change ✓No change
Lighthouse Agentic Browsing (2 of 2)⁵Out of scopeOut of scopeOut of scopeOut of scopeNo change ✓Fails it ✓No change
**Our checker (as tested)**⁶Warning: "likely firewall block"Gate fail ✓Gate fail ✓Gate fail ✓Info only ✓Ignored ✓Not flagged (our miss)

¹ geo-audit's base score was 35 on one run and 39 on two, so treat its changes of 4 points or less as noise. ² agentimization was frozen at 50 on 31 of 33 variants. See "Why do some scores barely move?" ³ answerlint is a content linter by design, with no crawler or indexing checks. ⁴ n8n #20481 checks robots.txt and bot responses only. It gives verdicts per bot rather than a score, and reports a robots.txt 5xx as "UNKNOWN" rather than blocked. ⁵ Lighthouse tests browser agents, not crawlers, so access variants are outside its scope. Its count of passed audits stayed at 2 on the broken-llms.txt page, but it marked the llms.txt audit as failed. ⁶ Results as tested on October 20, before the fixes described under "Where was our own checker wrong?"

Base results on each tool's own scale ranged from 39 (geo-audit) to 100 (n8n #19988) for the same page.

Can a checker miss a firewall that blocks AI crawlers?

Yes, and most did. robots.txt is a request, not a lock. Sites often block AI crawlers at the CDN or firewall while robots.txt says "allowed". Our bot-403 page did exactly that. Nine of the 11 access-checking tools returned the same result as for the open page. Only agentlint (−7, with its crawler-access check failing) and n8n template #20481 (which flagged a "contradiction" for 10 AI bots) caught it.

If you only test robots.txt, you aren't running an AI crawler checker. You're running a robots.txt reader.

Can "block everything" still pass?

With Disallow: / for every user agent, the strongest robots.txt block there is:

  • Cloudflare isitagentready kept the page at Level 1 and passed its AI robots.txt rule with the message "No AI-specific bot rules; wildcard rules apply to all crawlers including AI bots". Its own details listed every AI bot as disallowed.
  • Scovant kept the page at grade A, 95.
  • one-step-seo's AI score dropped by 70, but its Search score rose by 11. Once crawling was blocked, it stopped evaluating the page, so it counted fewer failures.
  • answerlint obeyed the block and refused to run. That's polite, but it doesn't tell you you're blocked.

Do checkers confuse training bots with search bots?

Often. A search crawler (OAI-SearchBot, Claude-SearchBot, PerplexityBot) decides whether you can appear in AI search answers. A training crawler (GPTBot, ClaudeBot, Google-Extended, CCBot) collects training data. Per the vendors' docs, blocking a training bot doesn't remove you from AI search.

Five tools scored a GPTBot-only block as a loss. The clear cases were Scovant (−14, A to B), agentlint (−6) and one-step-seo (−5). GeoScore dropped 1 point, the same as for a search-bot block. geo-audit's 1-point move is inside its noise band.

Scovant shows the problem most sharply. Blocking the training bots GPTBot, ClaudeBot or Google-Extended dropped it to B (as did blocking PerplexityBot). Blocking OAI-SearchBot, Claude-SearchBot, Googlebot, or every crawler at once left it at A 95.

Six tools also penalised a missing robots.txt, which RFC 9309 treats as "no restrictions".

Does llms.txt work, and why do checkers reward it?

We found no evidence that llms.txt helps AI search visibility, yet six of the checkers give points for it. llms.txt was worth up to 12 points in GeoScore, 5 to 8 in GEO Optimizer, geo-audit and agentready, 5 in one-step-seo's AI score, and 4 in agentlint.

The outside evidence:

  • Google Search says you "don't need to create new machine readable files, AI text files, markup, or Markdown" to appear in its AI features, and that doing so "will neither harm nor help your site's visibility or rankings in Google Search". (Google)
  • Ahrefs analysed llms.txt files on 137K sites and found that 97% of them received zero traffic in May 2026. (Ahrefs, vendor study)
  • SE Ranking found "no correlation between AI citations and LLMs.txt" across about 300,000 domains. (SE Ranking, vendor study, correlational)
  • EZY's 12-week log study of 83 sites saw OpenAI's bots fetch llms.txt 7 times and robots.txt 3,990 times. (EZY, vendor panel that leans toward small businesses)

The part that surprised us: an HTML error page served at /llms.txt still earned 3 to 5 points in GEO Optimizer, GeoScore, one-step-seo and agentlint. Google's Lighthouse was the only competitor that failed it. Our checker gives llms.txt zero weight and ignored the broken file.

(Lighthouse does audit llms.txt. Google Search says it doesn't use the file.)

Do checkers reward schema that breaks Google's rules?

Yes. We added FAQ markup whose questions don't appear on the page, which goes against Google's structured-data guidelines. Seven tools scored it exactly like valid FAQ markup, from +3 up to +17 in answerlint. one-step-seo's own "FAQ parity" check passed it.

We missed this too: at test time, our checker labelled FAQ markup "hygiene only" and didn't flag the mismatch.

Why do some scores barely move?

Hidden caps and checks that only look for basics. agentimization scored 50 on 31 of 33 variants. Its login-wall check looks for login|sign.?in|authenticate on short pages (under 5 KB). Our copy says the software can "assign invoices", and "assign invoices" matched. The tool treated the page as gated and capped the score at 50. Only the two variants that changed the page's length or text escaped the cap.

n8n template #19988 scored 100 on all 33 variants, including JavaScript-only, noindex and fully blocked, because it checks basics like HTTPS, title and H1. And agentlint dropped 6 points when we added an API catalog, because declaring an API switched on five developer checks the page then failed.

Where was our own checker wrong?

Our checker called every robots.txt and firewall variant correctly, and it didn't credit llms.txt or the broken file. Here's what it got wrong when we ran the test:

  • Brand bug. The page has no og:site_name, so our checker used the hostname ("Ulfx-base") as the brand instead of falling back to the H1 (Kestrel Ledger). That weakened three checks. The buyer-question match found 0 of 10 matches against generic "best software tool" prompts. Snippet-ready found "no quotable statement", even though the page says "Kestrel Ledger is invoicing software for freelancers." And the keyword-stuffing check didn't exclude the real brand name. Buyer-question match is our heaviest check outside the gates.
  • Missed trusted source. A link to ecb.europa.eu didn't count as an authoritative source. Our list covered .gov, .edu and a short list of others, but not EU or international bodies.
  • FAQ mismatch not flagged (see the schema section above).
  • Confusing labels. noindex and nosnippet showed up under the crawler-access gate, and thin content warned under "content in HTML". Both verdicts were correct, but people would look in the wrong place.
  • Firewall check is a warning, not proof. Our probe sends each crawler's published user agent from our servers, not from the vendor's IP addresses. A firewall that verifies IPs may treat the real crawler differently, so we say "likely".

What changed since. The first four issues were fixed on Oct 20, after the test. Brand names now fall back to structured data, the title and the H1. EU and international bodies count as authoritative sources. FAQ markup that doesn't match the page gets a warning. noindex and nosnippet have their own "indexable and snippet-eligible" check. On the thin-content test page, the check now says "server-rendered, but the main content is short (536 characters)" instead of blaming rendering. The firewall check stays a warning by design.

Why doesn't our checker give a score out of 100?

Because one number hides the first question: is anything blocking AI agents? In our test, a page that blocked every crawler and the open page got the same grade from Scovant: A, 95.

We're not alone. Google's Lighthouse team ships Agentic Browsing without a 0–100 score "because the standards for the agentic web are still emerging", and shows how many audits pass instead. (Lighthouse docs) In our runs, Cloudflare's API returned a level ("Level 1, Basic Web Presence") and no number.

Our checker reports three gates first: access (crawlers allowed, server lets them in, page indexable), main content in the HTML, and match to buyer questions. Then come fixes labelled by evidence strength, then early standards that we track but never score.

What should you check on your own site?

  1. SEO foundation first: crawlable, indexable, server-rendered. (Supported)
  2. Test your firewall, not just robots.txt. Request your page with AI crawler user agents and confirm you get a 200, not a 403. (Supported: it's part of crawler access; the probe result is "likely", not proof)
  3. Check search bots separately from training bots. Allow OAI-SearchBot, Claude-SearchBot, PerplexityBot and Googlebot if you want to appear in AI search. Blocking GPTBot, ClaudeBot, Google-Extended or CCBot is your call. (Supported)
  4. Keep your main content in the initial HTML, not loaded by JavaScript. (Supported)
  5. Look for noindex and nosnippet. Google says they affect AI features, and 8 to 9 of the 11 access-checking tools ignored them. (Google documentation)
  6. Make sure robots.txt never returns a server error. Under RFC 9309, a 5xx means "crawl nothing". (Standard)
  7. Match your title and paragraphs to the questions buyers ask. (Supported)
  8. Show dates, and cite sources and figures where they help the reader. (Mixed: evidence depends on platform and context)
  9. Don't buy llms.txt as a visibility fix. It's harmless if you want one; just make sure it's a real text file, not an error page. (Unproven)
  10. Treat schema as hygiene, and only mark up what's on the page. FAQ schema should match the visible questions and answers. FAQ/HowTo and Organization/sameAs markup are Unproven for AI visibility.
  11. Ask any tool what's inside its number. The same page got anything from 39 to 100, depending on the tool.

FAQ

What is the best free AI visibility checker? It depends on the job. agentlint and n8n #20481 caught the firewall block. Lighthouse is careful within its browser-agent scope. Ours covers access, rendering and on-page fixes, with the misses listed above. Whichever you use, check that it tests blockers before it gives points for files.

Does llms.txt work? No major AI search engine has confirmed that it uses llms.txt for AI search. Google Search says it doesn't, and third-party log and traffic studies show little use. The file does no harm, and some coding agents fetch it when told to. Just don't expect visibility from it.

How do I test whether AI crawlers can reach my site? Use an AI crawler checker that does two things: reads your robots.txt bot by bot, and requests your page with each crawler's user agent to catch firewall blocks. Treat the result as "likely" unless the test comes from the vendor's own IP addresses.

Should I block GPTBot? It's a business decision. Per OpenAI's docs, GPTBot is for training and OAI-SearchBot is for search, so blocking GPTBot alone doesn't take you out of ChatGPT search. Five of the tools we tested still took points off for it, three of them by 5 or more.

Why doesn't your checker give a score out of 100? Because a blocked site and an open one can get the same total (Scovant gave both an A, 95), and because the standards for AI agents are still moving. That's the reason Google's Lighthouse team gives for not using a 0–100 score.

You built one of the tools. Isn't this biased? We have a stake. So we held ourselves to the same standard and the same runs, and we list our own bugs. See "Our bias" and "What are the limits of this test?".

Will fixing these get me cited by AI? Nobody can promise that. Removing blockers lets AI agents reach and read your page; it doesn't decide whether they cite it. The on-page fixes have evidence of different strength, and we label each one.

What are the limits of this test?

One fictional page; real sites are bigger. Two runs from one network, minutes apart. No requests from vendor IPs. Training-bot rules follow vendor docs as of October 2026. This measures what checkers score, not what AI engines cite. Results apply to the versions listed, on October 20, 2026. We plan to rerun the test and update this page.

Check your own site

Run the free check to see whether AI agents can get in and read your page, and what to fix first, with the evidence behind each fix. It's free, with no password.

If you'd like help with what it finds (firewall rules, crawler policy, rendering, or content that answers buyer questions), book a call with Uncanny Labs.

See what AI agents can find on your site

Our free AI visibility check shows whether AI agents can reach, read and quote your site, with each fix graded by evidence. There's no overall score, and no one can promise citations.

Free. No password.