Journal

Article

May 12, 20266 min read

Why AI search can't see your website (and what to do about it)

Most service-business websites are invisible to ChatGPT, Perplexity, and Google AI Overviews — not because AI is broken, but because the sites are built wrong.

ME

Matthew Esposito

Founder, Espo Studio

The Bottom Line

Most service-business websites are invisible to AI search engines — not because AI is broken, but because the sites are built wrong. Content trapped inside JavaScript never gets read. When a buyer asks ChatGPT or Perplexity who to trust in your category, sites that can't be read don't get named. You lose before the shortlist.

How AI engines actually read a website

When ChatGPT, Perplexity, or Google's AI Overviews pull information about a business, they are not running a browser. They are reading raw HTML — the text that exists before JavaScript executes. This is the same way Google's original web crawler worked, but AI engines are even stricter: they typically do not wait for client-side rendering at all.

Here is what that means in practice:

A website built with a JavaScript framework that renders content on the client — meaning the HTML file that arrives from the server is mostly empty, and a script tag fills it in — looks blank to an AI crawler. The words the business owner spent weeks writing, the services list, the pricing, the case studies — none of it is visible.

This is not a hypothetical. A CMS-free React or Vue SPA, a WordPress site where the theme blocks render via block-editor JavaScript, a Webflow site with heavy client-side interactions — all of them can fail this test. The page looks fine in a browser because the browser runs JavaScript. The AI crawler does not.

The three specific things that block AI visibility

1. Client-side rendering

If your homepage's h1 heading is inserted by JavaScript, an AI crawler reading the server HTML sees no headline. It cannot understand what the business does or what the page is about. Server-side rendering (SSR) or static site generation (SSG) — where the complete HTML is delivered with the first HTTP response — is the fix.

2. No structured data

AI engines use JSON-LD schema markup to understand entities: what is this business, who runs it, what does it offer, where is it located, who is it for. A site with no JSON-LD schema is like a business card with no name. The engine has to guess — and it guesses wrong, or not at all.

Specifically: an Organization schema tells AI engines your company name, URL, and contact information. A Service schema on each services page tells them exactly what you offer and at what price range. Without these, your site is contextless.

3. No llms.txt

llms.txt is an emerging standard — a plain-text file at the root of your site that AI crawlers are beginning to use as a shortcut to understand your business. Think of it as a direct, machine-readable brief: who you are, what you do, who you serve, what makes you different. ChatGPT's browse feature and several AI research tools check for it.

Most sites do not have one. The ones that do get indexed more accurately.

What "found by AI" actually means

Being recommended by AI search is not about SEO tricks. It is about being legible. An AI model recommending a service business is pattern-matching against everything it has read. If your site is in the training data and your entity profile is coherent — your name, what you do, who you serve, your location, your reviews — you are a candidate for a recommendation.

If your site is not in the data, or is in the data but incoherent (mismatched schema, no clear entity structure), you are not a candidate.

The service businesses getting named by ChatGPT when buyers ask "who is a good [attorney / advisor / contractor] in [city]" are not necessarily the ones with the most backlinks or the best copy. They are the ones whose sites the AI could actually read and understand.

The audit checklist

Run through this for your own site:

  • View source on your homepage. Does your headline appear in the raw HTML, or is it missing until JavaScript runs? Search the page source for your most important keyword. If it is not there, you have a rendering problem.
  • Check for JSON-LD. In the same view-source output, search for application/ld+json. If you see nothing, your schema matrix is empty.
  • Check for llms.txt. Visit yourdomain.com/llms.txt. If you get a 404, it does not exist.
  • Check for answer capsules. Under your main page heading, is there a direct, plain-English sentence that describes what you do and who you serve? Or does your page start with a vague slogan? AI systems extract the first substantive sentence after a heading — make it count.

What the fix looks like

The technical fix is a framework change for most sites — moving from client-rendered JavaScript to server-rendered HTML. On Next.js, this means using server components or static generation. On other platforms, it means choosing SSR options explicitly.

The schema fix is writing and deploying JSON-LD for every page type: Organization on every page, Service on services pages, Article on blog posts, FAQPage on FAQ pages, Person on about pages.

The llms.txt fix is writing one. It should be under 500 words and answer: who you are, what you do, who you work with, what you do not do, and what makes you credible.

The answer capsule fix is copy editing — making sure the first sentence after every major heading is a direct, quotable statement of fact, not a windup.

None of these are complicated individually. The problem is that most web builders and most website platforms do not do them by default. You have to build for it intentionally.

The compounding effect

A site that is legible to AI today compounds over time. As AI engines see it consistently, the entity graph around your business gets more confident. More confident entity graphs get cited more often. Citations from AI search drive buyers to your site. Those buyers convert at a higher rate because they already trust the source that recommended you.

The businesses building AI-legible sites now are getting in early. The ones waiting will find that the entity graph already has a preferred result in their category, and displacing it takes much longer than establishing it in the first place.

Start with the audit. View source on your own site. If you cannot find your headline, you have the problem. If you can find it but there is no JSON-LD, you have a different version of the same problem. Either way, the fix is knowable and buildable.

Start a project with Espo Studio and we will audit your current site against all nine non-negotiables before we write a single line of new code.

Filed under

ai-discoverabilityseo

Ready to build?

Looks like nothing else. Found by AI.

Tell us about the business. We will show you exactly what we would build — design and discoverability both.