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.

  • GPTBot

    OpenAI. Crawls pages for training, and is the token most robots.txt files name first.

  • OAI-SearchBot

    OpenAI. 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-User

    OpenAI. Fetches a page live, at the moment a ChatGPT user or a custom GPT asks for it.

  • ClaudeBot

    Anthropic. Crawls pages for Claude.

  • anthropic-ai

    Anthropic. An older token that a great many robots.txt files still name.

  • PerplexityBot

    Perplexity. Indexes pages so they can appear as sources in its answers.

  • Perplexity-User

    Perplexity. Fetches a page live when someone follows one of its results.

  • Google-Extended

    Google. Controls whether your content can be used for Gemini and Vertex AI grounding. It does not affect ordinary Google Search.

  • CCBot

    Common Crawl. The public web archive a large share of open training sets are built from.

  • Bytespider

    ByteDance. Feeds its Doubao assistant.

  • Applebot-Extended

    Apple. Controls whether your content trains Apple Intelligence.

  • meta-externalagent

    Meta. Crawls for Meta AI.

  • Amazonbot

    Amazon. 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

A check asks your site for your robots.txt, your llms.txt if you have one, your sitemap, and each of the pages we sample, once each. Everything reported is measured from what comes back. Nothing is estimated, and nothing is inferred from your domain or your industry. We read only the first part of each page, because everything we are looking for is near the top of the file, and we never fetch a URL that is not on the domain you gave us.

Why we read raw HTML instead of rendering the page

We read the raw HTML on purpose, without a browser, because that is what a crawler which does not execute JavaScript sees. So JavaScript dependence is worked out structurally from that one response, not by rendering the page and comparing: we look for an empty framework mount point such as a bare div with id root or __next, for a hydration payload, for a noscript block asking the reader to enable JavaScript, and for a page that is almost entirely script with almost no text. That is a categorical signal rather than a statistical one, and it separates a genuinely short page from a JavaScript-dependent one, which a word-count comparison cannot do.

What this tool cannot see

Its blind spots are worth stating. A shell that renders a spinner or a skeleton into its mount point does not look empty, so it falls back to the text measurement and can pass. We only see the pages your sitemap lists, so a page nothing links and no sitemap names is invisible to us for much the same reason it is invisible to a crawler. And a run has a time budget: if it expires part way through, the result reports how many of the 15 we actually finished rather than presenting a short list as the whole sample.

What we keep afterwards

We keep the domain, which crawlers your robots.txt blocks, the addresses of the pages we sampled and what we concluded about each one, so the aggregate figures on this page can be computed. We keep no content from your pages at all: not their HTML, not their text, not even their titles. Checking the same domain twice within a day returns the stored result instead of fetching your site again. Last updated 24 August 2026.

Questions people ask about AI visibility

What is answer engine optimization?

Answer engine optimization, or AEO, is the work of making sure an AI system can find your content, read it and quote it. The same job is called generative engine optimization (GEO), or simply AI SEO, and none of the three labels has settled yet. Visibility is the first half of it. If an assistant is not allowed to fetch your pages, or cannot see your text without running JavaScript, nothing else you do about AEO ever reaches it.

Why does blocking AI crawlers matter?

If your robots.txt disallows GPTBot, OAI-SearchBot, ClaudeBot or PerplexityBot, those systems do not read your pages, and your site cannot appear in their answers. Most sites blocking them never decided to: a security plugin, a CDN bot rule or a theme default added the line. It is the first thing we check, because it is the one that makes everything else moot.

Why does JavaScript matter for AI search?

Google runs JavaScript before reading a page. AI crawlers are far less consistent about it, and several do not run it at all. So if your text only appears after a framework boots in the browser, some of them fetch your page and find an empty shell. We read the HTML as those crawlers see it and tell you which of your pages are empty in it, which is why a site that looks perfect in a browser can still be invisible here.

What is llms.txt, and do I need one?

llms.txt is a plain-text file at your site root that points an assistant at the pages worth reading, in the way robots.txt tells a crawler what it may fetch. It is a proposed convention rather than a standard, and no engine requires it today, so we report whether you have one and leave it there. Adding it is cheap and harmless, and it is one of the few things on this list most of your competitors have not done.

How many pages do you check?

Up to 15, drawn from your sitemap, with your homepage always included when we can find it. The sample is deterministic rather than random, so the same pages are checked every time and two runs of an unchanged site agree with each other. That is deliberate: you can fix something and run it again to watch those same pages change. Checking every page on a sitemap rather than a sample is what an account is for.

Do you store my site?

We store the domain you entered, which crawlers your robots.txt blocks, the addresses of the pages we sampled and what we concluded about each one. We keep no content from your pages: not their HTML, not their text, not even their titles. Checking the same domain twice within a day returns the stored result instead of fetching your site again.

Is the AI visibility checker free?

Checking a site is free, with no signup and no email. There is a rate limit per visitor, which is there to stop the tool being scraped rather than to push you towards an account. If you want every page on your sitemap checked rather than a sample of 15, watched over time and fixed rather than only reported, that is what Evergreen AI does and what an account is for.

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.