Can AI see my site?
Enter a domain, not a single page. We read your robots.txt and check a sample of up to 15 pages from your sitemap, then list the addresses an AI cannot use.
Enter a domain, not a single page. We read your robots.txt, look for an llms.txt and check a sample of pages from your sitemap. We never ask for access to your site.
Checked against the 13 crawlers behind ChatGPT, Claude, Perplexity, Gemini and Meta AI.
Want every page watched, not a sample? Start free
What AI visibility actually means
Search used to end with a list of links. Increasingly it ends with an answer, assembled by ChatGPT, Perplexity, Claude or Google's AI Overviews, with a handful of sources cited underneath it. Being one of those sources is a different job from ranking, and the industry has not settled on a name for it: you will see answer engine optimization (AEO), generative engine optimization (GEO) and plain AI SEO used for the same work, often in the same article.
Whatever it is called, it has a first step everyone skips. A machine has to be allowed to fetch your pages, and able to see your words once it does. Neither of those is a gradient. A crawler is either permitted or refused, and your text is either in the HTML or assembled later in a browser the crawler is not running. A site that fails those two is not doing AEO badly, it is absent from the process entirely, and no amount of work on the writing changes that.
That is what this tool measures, and it is all it measures. It checks the mechanical things that decide whether a machine can reach your content, then hands you the list of your own addresses where something is wrong. There is no number at the end of it, because four yes-or-no facts do not average into one, and a single figure would only hide which of them is the problem.
What we check, and why
Four things. Two are read once for your whole domain, and two are read for every page in the sample. All four are measured from what your server actually returns.
Which AI crawlers your robots.txt blocks
Before anything else can matter, an AI has to be allowed to read you. We read your robots.txt and work out what it says to each of the 13 crawlers that feed today's answer engines, then hand you the list of the ones that are shut out. Most sites blocking a crawler never decided to: a security plugin, a CDN bot rule or a theme default added the line, and nobody has read the file since.
Whether you publish an llms.txt
llms.txt is a plain-text file at the root of your site that points an assistant at what you publish and where the useful parts of it are. It is a proposed convention rather than a standard, and no engine requires it today, so we report whether the file exists and nothing more. Nothing is marked down for the absence of one.
Pages marked noindex
Every page we sample is checked for a noindex directive, both in the HTML and in the X-Robots-Tag response header. The header is the one people miss, because it is set at the CDN or in the framework rather than in your markup, so it does not appear when you view source. A staging rule left switched on can hide an entire section of a live site this way for months.
Pages whose content needs JavaScript
We read your HTML the way a crawler that never runs JavaScript reads it, then look for the fingerprints of a page whose content only shows up once JavaScript has run: an empty framework mount point, a hydration payload, a noscript block asking the reader to turn JavaScript on, or HTML that is almost all script and almost no text. A page that renders its content on the server and then hydrates passes, because the content is genuinely there.
How we choose which pages to check
A sample, chosen the same way every time, from the list your site publishes.
- We check up to 15 pages, with your homepage always included when we can find it.
- The sample is deterministic, drawn from your domain rather than at random, so the same pages are checked on every run. That is what makes it useful: fix something and run it again, and you are looking at the same pages rather than a fresh dice roll.
- We look for your sitemap in the Sitemap lines of your robots.txt first, because that is the authoritative place to declare it, and fall back to /sitemap.xml.
- Gzipped sitemaps are skipped rather than decompressed, and reported as skipped. Decompression is a dependency and an attack surface a tool this small does not need.
- A sitemap index is followed one level down, into at most 2 child sitemaps. An index can point at fifty files, and reading all of them would cost more than the answer is worth.
- Parsing stops at 5,000 addresses. Past that the list we sampled from was partial, and the result says so.
- If there is no sitemap at all, we check your homepage on its own and say plainly that we found nothing else to check.
The result always says where the sample came from and how many addresses your sitemap held, so the counts have a denominator you can see. A sample is a sample: it is enough to tell you whether a problem exists and roughly how widespread it is, and it is not a list of every page on your site that has it.
The 13 crawlers we check
These are the user agents we test your robots.txt against, and what each one governs. Rules are resolved the way the crawlers resolve them: a group naming the crawler beats a wildcard group, every group naming it is combined rather than only the first, and the longest matching path rule wins, with Allow beating Disallow on a tie. That follows RFC 9309 and, where the two disagree, Google's published matcher, because that is what is actually implemented.
GPTBotOpenAI. Crawls pages for training, and is the token most robots.txt files name first.
OAI-SearchBotOpenAI. This is the one that decides whether ChatGPT search can show and cite your page. Blocking it while allowing GPTBot is a common and expensive mistake.
ChatGPT-UserOpenAI. Fetches a page live, at the moment a ChatGPT user or a custom GPT asks for it.
ClaudeBotAnthropic. Crawls pages for Claude.
anthropic-aiAnthropic. An older token that a great many robots.txt files still name.
PerplexityBotPerplexity. Indexes pages so they can appear as sources in its answers.
Perplexity-UserPerplexity. Fetches a page live when someone follows one of its results.
Google-ExtendedGoogle. Controls whether your content can be used for Gemini and Vertex AI grounding. It does not affect ordinary Google Search.
CCBotCommon Crawl. The public web archive a large share of open training sets are built from.
BytespiderByteDance. Feeds its Doubao assistant.
Applebot-ExtendedApple. Controls whether your content trains Apple Intelligence.
meta-externalagentMeta. Crawls for Meta AI.
AmazonbotAmazon. Feeds Alexa when it answers a question from the web.
Googlebot and Bingbot are deliberately not on that list. They do gate AI Overviews and Copilot, but they are general search crawlers as well, and reporting a site as invisible to AI because it blocks Googlebot would roll two different problems, with two different fixes, into one finding. If you are blocking Googlebot you have a larger and more obvious issue than this tool is for. Operator documentation for the tokens above is published by OpenAI and the other vendors, and the llms.txt convention is described at llmstxt.org.
How this works, and what it cannot see
Every limit of the method, stated by us rather than discovered by you.
What we request from your site
Why we read raw HTML instead of rendering the page
What this tool cannot see
What we keep afterwards
Questions people ask about AI visibility
What is answer engine optimization?
Why does blocking AI crawlers matter?
Why does JavaScript matter for AI search?
What is llms.txt, and do I need one?
How many pages do you check?
Do you store my site?
Is the AI visibility checker free?
15 pages is a sample, not a strategy
This tool tells you what a slice of your site looks like to a machine today. Evergreen AI does the rest of it continuously: every page on your sitemap checked, competitors watched, new content written to be quoted, and existing pages re-optimised as the answer engines change their minds.