A site can score 98 on Lighthouse, carry a clean backlink profile, and pass every item on a standard technical SEO checklist, and still be functionally invisible to ChatGPT. That's not a contradiction. Traditional SEO audits were never built to check what AI answer engines actually read.
The audit checks the wrong eleven things
Run a typical SEO audit tool against almost any site and you'll get a list: title tag length, meta description presence, image alt text, page speed, mobile-friendliness, XML sitemap validity, canonical tags, broken link count, HTTPS status, keyword density, backlink count. Every item on that list is a real signal for Google's classic crawler-and-rank model.
None of them tell you whether GPTBot can parse your homepage. None check for an llms.txt file. None measure whether your JSON-LD schema goes deeper than a bare Organization block. A site can nail all eleven and still hand AI crawlers nothing useful to extract.
llms.txt isn't optional anymore, it's just unfamiliar
llms.txt is a plain-text file at your domain root (yourdomain.com/llms.txt) that gives AI language models a direct summary of who you are, what you offer, and where your key pages live. No search engine requires it. ChatGPT, Claude, and Perplexity check for it anyway, because it's a faster, cleaner first read than parsing a JavaScript-heavy homepage and guessing at intent.
Most business owners have never heard of it, which is a fair reaction to a standard that's maybe three years old. But "new" and "optional" aren't the same thing. Sites that have one get read differently than sites that don't.
Schema depth is the real gap
A lot of sites have some structured data, usually a bare Organization schema block dropped in by a theme or plugin years ago. That's a start, not a system. AI systems build an understanding of a business from structured entities: what type of organization it is, what FAQs it answers, what local area it serves, how its pages relate to each other through breadcrumbs.
A site with a full stack (Organization, FAQPage, LocalBusiness where relevant, connected BreadcrumbList) hands an AI system a map. A site with one orphaned Organization tag hands it a business card with half the fields blank.
AI crawlers extract from your site instead of indexing it
Google's crawler builds an index it ranks later. GPTBot, ClaudeBot, and PerplexityBot work closer to retrieval: they pull specific passages to answer a specific query, often without a human ever visiting the page directly afterward. A robots.txt with a wildcard User-agent: * Disallow: / rule (a default a lot of WordPress sites shipped with for years, meant to keep search engines out during development and never removed) blocks every one of those crawlers along with everything else, unless explicit Allow rules exist for each by name.
Nobody sets out to block GPTBot. It happens because a robots.txt written for 2015's crawler landscape never got updated for 2026's.
The counterintuitive part
A site with a mediocre Lighthouse score but a complete llms.txt, open crawler access, and real schema depth will sometimes get cited in an AI-generated answer over a technically flawless competitor that has none of those three things. AI systems don't weigh page speed the way Google's ranking algorithm does. They weigh whether there's something specific and structured to extract.
That's uncomfortable for anyone who's spent a year optimizing Core Web Vitals and assumed the work was done. Page speed still matters for human visitors. It doesn't buy you a seat at the AI-answer table by itself.
What to actually check
Not a recap. Three things to look at directly, today: open yourdomain.com/robots.txt and check whether GPTBot, ClaudeBot, and PerplexityBot have explicit Allow rules. Check whether yourdomain.com/llms.txt returns anything at all. Run your homepage through a JSON-LD validator and count how many schema types actually appear versus how many are missing.
Indexora's GEO Score Analyzer checks all three in about 30 seconds and generates the full file set (llms.txt, schema, robots.txt with AI crawler rules included) if the gaps turn out to be real.
Frequently Asked Questions
Does a good SEO score mean AI engines can read my site? No. Standard SEO audits check page speed, meta tags, sitemaps, and backlinks, none of which tell you whether GPTBot, ClaudeBot, or PerplexityBot can access your content or whether you have an llms.txt file and structured schema those systems rely on.
What is llms.txt and do I actually need it? llms.txt is a plain-text file at your site's root that summarizes your business, key pages, and technical details specifically for AI language models. It's not required by any search engine, but ChatGPT, Claude, and Perplexity check for it as a fast first-read before crawling further.
Can I block AI crawlers without realizing it? Yes. A robots.txt with a wildcard User-agent: * disallow rule blocks GPTBot, ClaudeBot, and PerplexityBot along with everything else, unless you add explicit Allow rules for each. Many sites built years ago carry this exact rule without anyone noticing.
How is GEO different from SEO? SEO optimizes for ranking in search results a human scrolls through. GEO (generative engine optimization) optimizes for being the specific passage an AI system extracts and cites in a generated answer. The mechanics (crawler access, structured data, entity clarity) overlap, but the target output is different.
Will fixing this guarantee ChatGPT cites my business? No single fix guarantees a citation. Adding llms.txt, robots.txt access, and schema removes the barriers that prevent AI systems from considering your site at all. The content still has to be specific and relevant enough to earn the citation once it's readable.