GEO vs AEO: How to Check If Your Site Is Truly Visible to AI (and Fix the Problem)
A practical guide to diagnosing whether your site is invisible to ChatGPT, Claude, and Perplexity. Includes a 2-minute test, the right fixes, and a concrete audit of the Bauhem site.

Most businesses assume that ranking well on Google is enough. That was true two years ago. It is no longer true.
Today, not all of your prospects go through a Google search bar. They ask ChatGPT questions. They use Claude to compare providers. They query Perplexity before visiting a site.
And if your site is technically invisible to these answer engines, you simply do not exist in their results.
The worst part? You will never notice it by browsing your own site normally. Everything looks perfect in a browser. The problem is somewhere else.
The two layers of AI discoverability
You need to separate two things that almost everyone mixes up.
GEO (Generative Engine Optimization): optimization for Google AI Overviews and AI-generated answers inside search results. Google has a massive index, executes your page JavaScript in a second pass, and eventually understands your content even when it loads dynamically.
AEO (Answer Engine Optimization): optimization for autonomous assistants — ChatGPT, Claude, Perplexity. These tools do not work the same way at all. Their crawlers fetch your raw HTML without executing JavaScript. If your content is injected by JS after the initial load, these crawlers see an empty shell with your logo and navigation, and nothing else.
The result? Google may quote you in an AI Overview while ChatGPT has absolutely no idea what you do. Same site. Same URL. Two completely different outcomes.
Why this happens
Modern sites built with React, Vue, or similar frameworks often load content on the client side. The first HTML response is an almost empty skeleton — a root div and a few scripts. The browser then executes JavaScript to fill the page.
Google has the resources to execute that JavaScript in a second rendering pass. Most AI crawlers do not. They take the first HTML response and move on to the next site.
This problem stays invisible during normal testing because you visit your site in a browser, the JavaScript runs, and everything looks fine. The issue only appears when something reads the raw response without executing scripts — which is exactly what AI crawlers do.
The 2-minute test (no tools required)
You can diagnose this manually right now.
1. Open an important page of your site in a browser.
2. Right-click and choose "View Page Source" — not "Inspect Element", which shows the rendered version and hides the problem.
3. In that source, search (Ctrl+F) for a sentence you can see on the page, ideally from the main body content, not the menu.
4. If the sentence is present in the source, AI crawlers can read it. If it is missing, your content is being loaded via JavaScript and AI assistants see an empty shell.
Run this test on your homepage, a key service page, and a blog article. Results often vary by page type because different templates load content differently.
Confirm what bots actually see
View Source is a good signal, but to see exactly what a specific crawler receives, use curl with the proper user agent:
curl -sL -A "GPTBot/1.0" https://yoursite.com | grep "a sentence from your content"
If grep returns the line, GPTBot sees your content. If it returns nothing, it does not.
Switch the user agent to "ClaudeBot/1.0" or "PerplexityBot/1.0" to test each engine, because they do not all behave the same way.
The Bauhem audit: a concrete example
We applied this method to our own site. Here are the results.
bauhem.com — tested on June 3, 2026
Test | Result
Body text in raw HTML (without JS) | 6,781 characters
GPTBot | ✅ Sees all content
ClaudeBot | ✅ Sees all content
PerplexityBot | ✅ Sees all content
robots.txt | ✅ No AI crawler blocked
Sitemap | ✅ Present, FR/EN hreflang
Schema.org | ✅ Organization + WebSite + WebPage + BreadcrumbList
The site passes all three crawlers without exception. The content — text, services, descriptions, navigation — is fully present in the HTML source before any JavaScript runs.
Why? Because the site is built with server-side rendering (SSR via Next.js). The HTML delivered to the browser already contains the full content. That is an architectural choice, not luck.
Fixes, in order of impact
If your site fails the test, here is what to do.
1. Server-side rendering (SSR) or static generation
This is the fundamental fix. In Next.js, that means getServerSideProps or static generation. In Nuxt, universal rendering is the default mode. Most modern frameworks offer an equivalent option.
The objective is simple: the content must exist in the first HTML response, before any JavaScript execution.
2. Check your robots.txt
Many sites block GPTBot by default without realizing it. Open your robots.txt file and make sure no rule prevents AI crawlers from accessing your pages:
User-agent: GPTBot
Disallow: /
User-agent: ClaudeBot
Disallow: /
If you see that, you have a problem. Those crawlers are banned from your site.
3. Structured data (Schema.org)
For the GEO layer specifically, make sure your schema.org markup is valid and present. Organization, WebSite, WebPage, and BreadcrumbList are the basics. Add BlogPosting for articles. Add LocalBusiness or ProfessionalService when relevant.
4. Standalone, extractable content
A paragraph should be able to answer a question without depending on the paragraphs around it. AI engines extract passages, not whole pages. Structure your content so each section makes sense on its own.
What Bauhem does differently
At Bauhem, we do not treat AI discoverability as a layer added afterward. It is built into the site architecture itself.
When we design a site or web system for a client, three principles guide the work:
1. Structure before style. Content is organized semantically, with clear hierarchy, before we touch the visual design.
2. Server rendering by default. Whether with Ycode (which generates static HTML by design), Next.js in SSR mode, or Astro in hybrid mode — content is always present in the initial HTML.
3. Rich, verified metadata. Schema.org, Open Graph, multilingual sitemaps, audited robots.txt. No shortcuts.
The result: sites that perform for Google, ChatGPT, Claude, Perplexity — and for humans.
The AEO diagnostic checklist
- [ ] View Source on homepage → main content present?
- [ ] View Source on a key service page → content present?
- [ ] View Source on a blog article → content present?
- [ ] curl with GPTBot → content found?
- [ ] curl with ClaudeBot → content found?
- [ ] curl with PerplexityBot → content found?
- [ ] robots.txt → no AI crawler blocked?
- [ ] Schema.org → Organization, WebSite, WebPage present?
- [ ] Sitemap → present and up to date?
- [ ] Is the raw HTML content substantial (>1000 characters of readable text)?
If you can check everything off, your site is ready for AI. If you are missing boxes, you now know where to start.
Want a complete diagnostic of your site? Contact us — we will analyze your AI discoverability and tell you exactly what is missing.
Related Articles
Explore more articles
Let’s build your next solution today.
Whether you’re looking to optimize existing systems or design something entirely new, our team is ready to deliver solutions built for the future.


