# The 4-Layer Magento 2 AEO Stack: Making Your Store Visible to ChatGPT, Claude & Gemini (2026)

> Source: <https://dev.to/angeo/the-4-layer-magento-2-aeo-stack-making-your-store-visible-to-chatgpt-claude-gemini-2026-bjd>
> Published: 2026-06-06 19:06:09+00:00

I've written here before about [fixing robots.txt for the AI bots](https://dev.to/angeo/how-to-fix-robotstxt-for-chatgpt-and-gemini-in-magento-2-4e11) and [checking your store's ChatGPT visibility with a free audit module](https://dev.to/angeo/how-to-check-if-your-magento-store-is-visible-to-chatgpt-free-aeo-audit-module-4hkm). This post zooms out and puts the whole thing in one place: the four layers that decide whether an AI assistant can find, trust, and recommend your Magento store — and the honest data on which layers actually matter in 2026.

Default Magento 2 typically scores around **23% on an AEO audit** across the stores I've measured. Not because anything is broken — because every one of these signals ships off by default and nobody flipped them on.

Here's the stack, in priority order.

The most common failure, and almost always accidental. A `robots.txt`

written for Google in 2019 says nothing about the AI fleet, and some security/hardening configs block *unknown* bots — which now includes the crawlers feeding ChatGPT, Claude, Gemini, and Perplexity.

There's no single user-agent to allow. In 2026 you're dealing with ~10 distinct AI bots across four platform families. Minimal explicit allow-list:

```
User-agent: GPTBot
Allow: /

User-agent: OAI-SearchBot
Allow: /

User-agent: ChatGPT-User
Allow: /

User-agent: ClaudeBot
Allow: /

User-agent: PerplexityBot
Allow: /

User-agent: Google-Extended
Allow: /

Sitemap: https://yourstore.com/sitemap.xml
```

Key gotcha: ** Google-Extended is not Googlebot.** Blocking it doesn't touch your Google ranking — it only governs whether Google's AI products may use your content. Tons of sites blocked it during the 2023–24 anti-scraper panic and never revisited. If you want AI visibility, reconsider it.

Highest-leverage 20 minutes in the whole stack. Do it first.

This one is Magento-specific and it's the difference between being eligible for AI Shopping answers and being silently dropped.

**Default Magento 2 outputs product structured data as microdata, not JSON-LD.** AI extraction systems strongly prefer JSON-LD — a clean, self-contained block they can parse without reconstructing meaning from scattered HTML attributes.

And the field that quietly kills you:

`offers.availability`

is frequently missing — and ChatGPT Shopping will skip a product with no availability signal entirely.

From the model's side, it's assembling a *purchasable* recommendation. A product it can't confirm is in stock is a liability, so it drops it. No warning. You just don't appear.

Correct, AI-friendly block:

```
<script type="application/ld+json">
{
  "@context": "https://schema.org/",
  "@type": "Product",
  "name": "Pre-Seasoned Cast Iron Skillet 12\"",
  "sku": "CAST-SKILLET-12",
  "brand": { "@type": "Brand", "name": "YourBrand" },
  "offers": {
    "@type": "Offer",
    "url": "https://yourstore.com/cast-iron-skillet-12",
    "priceCurrency": "EUR",
    "price": "59.00",
    "availability": "https://schema.org/InStock",
    "itemCondition": "https://schema.org/NewCondition"
  },
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.7",
    "reviewCount": "212"
  }
}
</script>
```

Three traps:

`availability`

to real stock`InStock`

. A model that recommends your out-of-stock item once learns to distrust your feed.Verify it's in the raw HTML (no JS):

```
curl -s https://yourstore.com/your-product | grep -A30 'application/ld+json'
```

Nothing returned = the AI layer sees nothing.

`llms.txt`

is a Markdown file at your root giving AI systems a curated map of your store — to LLMs what robots.txt is to crawlers, but editorial rather than access-control.

Now the honest part. **The "llms.txt boosts your AI rankings" pitch isn't supported by 2026 data:**

`llms.txt`

. That's 0.1%.So why ship it? Because it's a **Business-to-Agent (B2A) play, not an SEO play.** Agentic and IDE-style tooling already fetches it, agentic commerce is heading the same way, and conventions like this often get published before platforms formally commit (robots.txt predated official search-engine support). It's half a day of cheap insurance.

```
# YourStore

> Premium cast iron and carbon steel cookware. EU-based, ships across Europe,
> 30-day returns, mid-range pricing.

## Categories
- [Cast Iron Skillets](https://yourstore.com/cast-iron)
- [Dutch Ovens](https://yourstore.com/dutch-ovens)

## Buying Guides
- [Cast iron vs carbon steel](https://yourstore.com/guides/cast-vs-carbon)

## Policies
- [Shipping & Returns](https://yourstore.com/shipping)
```

Ship it, spend the half day, then **stop optimizing it** and put your energy into Layers 1, 2, and 4. And remember: a stale `llms.txt`

is worse than none — wrong stock claims train models to distrust you.

The 2026 shift bigger than schema tweaks: AI is moving from *discovery* ("here are some pans") to *transaction* ("I bought the pan for you"). Two protocols define that layer, and Magento merchants — unlike Shopify merchants — wire it up themselves.

`/.well-known/ucp`

.Reality check:

Shopify gets much of this by partnership default. Magento/Adobe Commerce: you own the stack — full control, full responsibility.

`robots.txt`

so the AI fleet can crawl you. (~20 min, highest leverage)`offers.availability`

. (Hyvä users: confirm you have `curl`

. Not in raw HTML = invisible.`llms.txt`

as cheap B2A insurance, then leave it.Google decides whether you *rank*. AI engines increasingly decide whether you *exist* in the answer. Two separate jobs now.

*The open-source modules behind this (AEO audit CLI, llms.txt generator, multi-store AI description tooling) are on Packagist and documented at angeo.dev. The llms.txt and ACP/UCP figures come from independent 2026 studies — verify current spec versions as you implement, this area moves monthly.*

*If you've pulled your own AI-bot server logs on a Magento store, drop the numbers in the comments — real crawler data is still scarce and I'd like to compare.*
