# Magento 2 AEO Guide 2026: How to Make Your Store Visible in ChatGPT, Gemini & Perplexity

> Default Magento 2 scores ~25% on AEO: AI crawlers blocked, no llms.txt, broken schema. Reach 80%+ in 90 minutes with free open-source modules. Full guide.

Source: https://angeo.dev/magento-2-aeo-guide/
Updated: 2026-10-09

TL;DR  -  2 minute version

- Default [Magento 2](https://en.wikipedia.org/wiki/Magento) scores ~25% on AEO  -  based on audits across 50+ stores  -  AI crawlers are blocked by default

- Three critical gaps: robots.txt blocks AI bots, no [llms.txt](https://llmstxt.org/), Product schema missing `[offers.availability](https://schema.org/availability)`

- Run `bin/magento angeo:aeo:audit` to see your exact score and what to fix

- Most stores reach 80%+ in 90 minutes with free open-source Composer modules

- [ChatGPT](https://en.wikipedia.org/wiki/ChatGPT) Shopping registration is separate  -  apply at [chatgpt.com/merchants](https://chatgpt.com/merchants)

 You've optimized your [Magento](https://en.wikipedia.org/wiki/Magento) store for Google. But when a shopper asks [ChatGPT](https://en.wikipedia.org/wiki/ChatGPT) *"what's a good cast iron pan under $80?"*  -  your store isn't in the answer.

 That's not an SEO problem. It's an AEO problem. And the fixes are completely different.

 AI assistants are becoming a product discovery layer  -  not just a search tool. When a user asks for a recommendation, they've already formed intent. If your store isn't accessible to these systems, you're invisible at exactly that moment. That's a different problem from ranking fifth in Google  -  it's not being in the conversation at all.

 This guide covers the 9 core AEO signals for Magento 2 (the CLI audit checks 20 in total), what each one means, and how to fix every gap  -  with exact CLI commands. The tooling referenced is open-source and available on [Packagist](https://packagist.org/packages/angeo/), but the signal framework applies to any Magento implementation.

 [image: Magento 2 AEO Guide 2026 - optimize your store for ChatGPT, Gemini and Perplexity]

## Key terms

 AEO  -  Answer Engine Optimization

 The practice of configuring a website so AI assistants  -  [ChatGPT](https://en.wikipedia.org/wiki/ChatGPT), [Gemini](https://en.wikipedia.org/wiki/Google_Gemini), [Perplexity](https://en.wikipedia.org/wiki/Perplexity_AI)  -  can discover, read, and recommend it. Different from SEO: targets AI-generated answers, not [Google Search](https://en.wikipedia.org/wiki/Google_Search) rankings. Relevant signals: robots.txt access, structured data, llms.txt, ACP product feeds.
 **Q: Is AEO the same as GEO (Generative Engine Optimization)?**
Largely yes  -  both terms describe optimization for AI-generated results. AEO is used primarily in the eCommerce context; GEO is more common in content publishing. The underlying signals are the same.

 OAI-SearchBot

 [OpenAI's live search crawler](https://developers.openai.com/api/docs/bots). Used when ChatGPT answers real-time queries. Respects robots.txt. Must be explicitly allowed  -  default Magento robots.txt blocks it via wildcard.
 **Q: Is OAI-SearchBot the same as GPTBot?**
No. OAI-SearchBot is for live query answering. GPTBot is for training data collection. Blocking GPTBot has no effect on ChatGPT Shopping visibility.

 ACP  -  Agentic Commerce Protocol

 [OpenAI and Stripe's open standard](https://www.agenticcommerce.dev/) for structured merchant product data. Defines the product feed format (JSON Lines, CSV or TSV) merchants share with OpenAI. A feed is optional - ChatGPT can also find crawled stores - but gives more control over shopping results.

 llms.txt

 A plain-text file at `yourstore.com/llms.txt` that gives AI systems a structured map of your catalog. Proposed specification at [llmstxt.org](https://llmstxt.org/). Similar to sitemap.xml but for AI systems  -  categories, products, CMS pages, currency, language.
 **Q: Do all AI systems read llms.txt?**
Not universally. Perplexity's PerplexityBot actively reads it. ChatGPT relies primarily on the ACP product feed and OAI-SearchBot crawl. Google has said Search ignores llms.txt. Adding it costs nothing and is one less gap.

 offers.availability

 A required field in [Product JSON-LD schema](https://schema.org/Product) per schema.org specification. Tells AI systems whether a product is in stock. Value: `https://schema.org/InStock` or `https://schema.org/OutOfStock`. Missing on most default Magento installations  -  without it, a machine cannot confirm the product can be bought.

## AEO vs SEO: what's different

 SEO gets your store ranked in Google's link list. AEO gets your store cited in AI-generated answers.

 Google reads keywords, backlinks, and page authority. AI systems read:

- **robots.txt**  -  can AI crawlers access your store at all?

- **llms.txt**  -  is there a structured map of your catalog?

- **Product JSON-LD schema**  -  can AI read prices, availability, and product details?

- **ACP product feed**  -  have you registered with OpenAI's merchant program?

 Most of these don't exist on a default Magento 2 install  -  not because Magento is broken, but because it was built before AI search existed.

 **Q: Does a store with good SEO automatically have good AEO?**

 No. Based on audits across 50+ Magento stores  -  ranging from 500 to 50,000 SKUs  -  the average AEO score is ~25% regardless of SEO maturity. A store can rank on page one of Google and still score 0% on AI product feed and llms.txt signals  -  because those signals didn't exist when the store was built.

| Signal | Helps SEO | Helps AEO |

| robots.txt AI bot access |  -  | [yes] |

| llms.txt / llms.jsonl |  -  | [yes] |

| Product JSON-LD schema | [yes] | [yes] |

| FAQPage schema | [yes] | [yes] |

| ACP product feed |  -  | [yes] |

| sitemap.xml | [yes] | [yes] |

| Open Graph tags | [yes] | [yes] |

| Canonical tags | [yes] | [yes] |

## The 9 core AEO signals for Magento 2

 Run the free audit to see your current score:

```
composer require angeo/module-aeo-audit
bin/magento setup:upgrade
bin/magento angeo:aeo:audit
```

### Signal #1  -  robots.txt: AI Bot Access (weight 1.0)

 The most common reason for complete AI invisibility. Magento's default `robots.txt` uses a wildcard rule (`User-agent: *`) combined with restrictive `Disallow` directives. Since AI crawlers like `OAI-SearchBot`, `GPTBot`, and `PerplexityBot` aren't explicitly listed, they inherit those restrictions and get blocked unintentionally. Per [OpenAI's crawler documentation](https://developers.openai.com/api/docs/bots), stores that block OAI-SearchBot will not appear in ChatGPT search answers.

 Based on audits across 50+ Magento stores  -  ranging from 500 to 50,000 SKUs  -  this is the most frequently failing signal across all store sizes.

 Check your file at `yourstore.com/robots.txt`. Give the AI search crawlers their own group. Its position in the file does not matter, but it must repeat your `Disallow` lines, because a named group replaces the `User-agent: *` rules for that bot (RFC 9309):

```
User-agent: OAI-SearchBot
User-agent: Claude-SearchBot
User-agent: PerplexityBot
User-agent: ChatGPT-User
Allow: /
Disallow: /checkout/
Disallow: /customer/
Disallow: /catalogsearch/
```

```
composer require angeo/module-robots-txt-aeo
bin/magento setup:upgrade && bin/magento cache:flush
bin/magento angeo:robots:validate
```

 **Adobe Commerce Cloud:** robots.txt is served via Fastly VCL. After any change  -  purge Fastly cache and verify the live file, not the admin config.

### Signal #2  -  llms.txt: AI Content Map (weight 1.0)

 [`llms.txt`](https://angeo.dev/how-to-generate-llms-txt-for-magento-2-in-5-minutes/) is a plain-text file at `yourstore.com/llms.txt`  -  a structured map of your catalog: categories, key products, CMS pages, currency, language. Defined at [llmstxt.org](https://llmstxt.org/). Perplexity's background indexer actively reads it. For [ChatGPT Shopping](https://angeo.dev/magento-2-chatgpt-shopping-registration/), it supplements the ACP product feed.

```
composer require angeo/module-llms-txt
bin/magento setup:upgrade
bin/magento angeo:llms:generate
```

 Also generates `llms.jsonl`  -  the machine-readable sibling. Enable cron for automatic regeneration when your catalog changes.

 -> [How to generate llms.txt for Magento 2 in 5 minutes](https://angeo.dev/how-to-generate-llms-txt-for-magento-2-in-5-minutes/)

### Signal #3  -  Product JSON-LD Schema (weight 1.0)

 Magento's default Luma theme outputs basic [Product schema per schema.org](https://schema.org/Product) but almost always omits `offers.availability`  -  the field that tells a machine the product can be bought right now. The ACP product feed requires availability on every row too.

 **Q: Does Hyvä theme fix the schema problem automatically?**

 Partially. Hyvä marks the product page as a schema.org/Product microdata item with name, image, price and availability, but emits no JSON-LD and no sku, brand, GTIN, shipping or return-policy fields. Neither platform handles this out of the box  -  a dedicated module or theme override is required.

 Quick check on any product page:

```
curl -s https://yourstore.com/sample-product | grep -o '"availability":"[^"]*"'
```

```
composer require angeo/module-rich-data
bin/magento setup:upgrade && bin/magento cache:flush
```

 Adds: `offers.availability` (real-time stock), `aggregateRating`, `BreadcrumbList`. Also closes Signal #5  -  [FAQPage schema](https://angeo.dev/magento-2-product-schema-json-ld-ai-search/) on CMS pages.

 -> [Product Schema FAIL in Magento 2 AEO Audit  -  How to Fix It](https://angeo.dev/magento-2-product-schema-json-ld-ai-search/)

 Example  -  Magento 2 store, home goods, ~2,400 SKUs

 [!] Before  -  default install

- AEO score: **23%**

- [no] robots.txt  -  OAI-SearchBot blocked

- [no] llms.txt  -  not found

- [no] Product schema  -  no availability

- [no] AI product feed  -  not registered

 [yes] After  -  90 minutes later

- AEO score: **84%**

- [yes] robots.txt  -  7 AI bots allowed

- [yes] llms.txt  -  2,400 products mapped

- [yes] Product schema  -  availability live

- ◷ Feed  -  submitted, pending approval

 At this point  -  after signals #1, #2, and #3  -  most stores jump from ~25% to ~60%. Run the audit again to confirm your progress before continuing:

```
bin/magento angeo:aeo:audit
```

### Signal #4  -  AI Product Feed / ChatGPT Shopping (weight 1.0)

 A registered ACP product feed is the most direct route into ChatGPT shopping results. It is not strictly required: OpenAI says a store can also appear through crawling when OAI-SearchBot is allowed. A feed gives you more control and fresher price and stock. The feed can be JSON Lines, CSV or TSV, optionally gzip. After approval you deliver it by SFTP, API or a feed provider, with a full snapshot at least daily.

```
composer require angeo/module-openai-product-feed \
  angeo/module-openai-product-feed-api
bin/magento setup:upgrade
bin/magento angeo:product-feed:generate
```

 Apply at `chatgpt.com/merchants`. As of September 2026 applicants join a waitlist, and shopping is live for US users. Keep price and availability current: stale stock is the fastest way to lose placement.

 -> [How to Register Your Magento 2 Store for ChatGPT Shopping](https://angeo.dev/magento-2-chatgpt-shopping-registration/)

### Signals #5-#9  -  Supporting Signals

 FAQPage schema (weight 0.5)
 Makes visible Q&A easy for parsers to read. Google has shown no FAQ rich results since May 2026, so treat it as structure, not a boost. Injected automatically alongside [Product schema](https://angeo.dev/magento-2-product-schema-json-ld-ai-search/) on CMS pages. Verify: `curl -s yourstore.com | grep FAQPage`

 sitemap.xml (weight 0.8)
 AI crawlers use sitemap.xml to discover your full catalog. Enable in Magento admin: **Stores -> Config -> Catalog -> XML Sitemap**. Submit it in Google Search Console. Googlebot's index also feeds Google's AI features.

 Open Graph tags (weight 0.7)
 `og:title`, `og:description`, `og:image`  -  used as content fallback when structured schema is absent. Most Magento themes include these by default.

 Canonical tags (weight 0.6)
 Prevents AI systems from indexing Magento's multiple URL variants. Enable: **Stores -> Config -> Catalog -> SEO -> Use Canonical Link Meta Tag For Products/Categories**. Note: Magento has no canonical option for the homepage  -  this is expected.

 llms.jsonl (weight 0.75)
 Machine-readable catalog at `yourstore.com/llms.jsonl`. One JSON object per product per line. Used by AI pipelines for vector indexing. Generated automatically by `angeo/module-llms-txt`.

## ChatGPT vs Perplexity vs Gemini: how each AI discovers products

 **[ChatGPT](https://en.wikipedia.org/wiki/ChatGPT)**  -  hybrid approach: trained knowledge + live search via `OAI-SearchBot` + ACP merchant product feed. Requires merchant registration. Feed is the authoritative source for product data.

 **[Perplexity](https://en.wikipedia.org/wiki/Perplexity_AI)**  -  real-time answer engine. Always cites sources with links. `PerplexityBot` actively reads `llms.txt`  -  one of the few AI platforms where this has documented crawl value. No separate product feed required.

 **[Gemini](https://en.wikipedia.org/wiki/Google_Gemini)**  -  operates on [Google's Shopping Graph](https://blog.google/products/shopping/google-shopping-graph/) (50B+ products, updated 2B+ times per hour). Any product in Google Merchant Center is available to Gemini. AI Overviews and AI Mode use the normal Googlebot index. `Google-Extended` is only a robots.txt token for Gemini training and grounding; it has no effect on Search or AI Overviews.

 -> [Perplexity vs ChatGPT vs Gemini: How Each AI Discovers Your Products](https://angeo.dev/perplexity-vs-chatgpt-vs-gemini-how-each-ai-discovers-your-products/)

## Score interpretation

| Score | Label | Typical situation |

| 0-25% | Needs Improvement | Default Magento install. AI crawlers blocked. |

| 26-50% | Needs Improvement | Some fixes applied. Schema or feed still missing. |

| 51-75% | Moderate | Core signals in place. Feed not yet registered. |

| 76-90% | Good | Strong foundation. Minor schema gaps. |

| 91-100% | Excellent | Full compliance. Feed registered and live. |

## Free open-source modules  -  one per signal

 Each AEO signal has a corresponding open-source Magento 2 module. MIT licensed. Install via Composer. Runs on your server  -  no external API calls, no data sent outside your infrastructure.

| Module | Signal |

| [`angeo/module-aeo-audit`](https://packagist.org/packages/angeo/module-aeo-audit) | Diagnostic  -  checks 20 signals, score trend dashboard |

| [`angeo/module-robots-txt-aeo`](https://packagist.org/packages/angeo/module-robots-txt-aeo) | Signal #1  -  injects AI bot rules into robots.txt |

| [`angeo/module-llms-txt`](https://packagist.org/packages/angeo/module-llms-txt) | Signals #2, #2b  -  generates llms.txt and llms.jsonl |

| [`angeo/module-rich-data`](https://packagist.org/packages/angeo/module-rich-data) | Signals #3, #5  -  Product JSON-LD + FAQPage schema |

| [`angeo/module-openai-product-feed`](https://packagist.org/packages/angeo/module-openai-product-feed) | Signal #4  -  ACP product feed for ChatGPT Shopping |

## 90-minute implementation checklist

1. **Baseline audit:** `bin/magento angeo:aeo:audit`  -  note your starting score

2. **Fix robots.txt:** `composer require angeo/module-robots-txt-aeo` -> validate with `angeo:robots:validate`

3. **Generate llms.txt:** `composer require angeo/module-llms-txt` -> `angeo:llms:generate`

4. **Fix Product schema:** `composer require angeo/module-rich-data` -> verify `offers.availability` in page source

5. **Enable sitemap:** Stores -> Config -> Catalog -> XML Sitemap -> Enable -> submit to Search Console

6. **Generate product feed:** `composer require angeo/module-openai-product-feed angeo/module-openai-product-feed-api`

7. **Apply for ChatGPT Shopping:** configure seller name + policy URLs -> apply at `chatgpt.com/merchants`

8. **Final audit:** `bin/magento angeo:aeo:audit` -> target 80%+

## Adobe Commerce Cloud: additional steps

 Adobe Commerce Cloud adds one complication  -  Fastly CDN. robots.txt is stored in `pub/media/` and served via a Fastly VCL snippet. After any robots.txt change:

1. Save in Magento admin

2. Purge Fastly cache

3. Verify the live file at `yourstore.com/robots.txt`  -  not the admin config

 Fastly also caches product pages. If availability changes but Fastly serves a stale page, `OAI-SearchBot` reads incorrect stock data  -  leading to product suppression after ChatGPT Shopping approval. Keep the ACP feed and the product page in step: both should show the same stock.

 -> [Adobe Commerce vs Magento Open Source: AI Visibility in 2026](https://angeo.dev/migrating-from-adobe-commerce-cloud-to-magento-open-source-is-it-worth-it/)

## Frequently asked questions

### Does AEO replace SEO for Magento stores?

 No. They target different channels. SEO gets you ranked in Google Search. AEO gets you cited in AI-generated answers. A store with perfect SEO still scores ~25% on AEO by default  -  because the signals are completely different.

### Is ChatGPT Shopping free for merchants?

 Product discovery is currently organic  -  no cost to appear in results. No transaction fees on purchases that start in ChatGPT as of April 2026. Onboarding is US-only and waitlisted.

### How long before results are visible after fixing AEO?

 Technical fixes take effect as AI crawlers re-index your pages: 1-3 weeks for Perplexity, a few weeks for Google's index, 48-72 hours after ChatGPT Shopping approval for the feed layer.

### What is GPTBot vs OAI-SearchBot?

 `GPTBot` is OpenAI's training crawler. Blocking it opts your content out of GPT model training but has no effect on ChatGPT Shopping visibility. `OAI-SearchBot` is the live search crawler  -  this one must be allowed.

### Does this work with Hyvä theme?

 Yes. All Angeo modules are compatible with Magento Open Source and Adobe Commerce on both Luma and Hyvä themes. PHP 8.2+ required.

## Start with the free AEO audit

 Run `bin/magento angeo:aeo:audit` to see your score across all 20 signals. Every failed signal shows the exact command to fix it.

 [Install CLI Audit ->](https://packagist.org/packages/angeo/module-aeo-audit)
 [Free Web Self-Assessment ->](https://angeo.dev/ai-magento-audit/)

## More on this topic

- [Magento AEO (Answer Engine Optimization)  -  Definition](https://angeo.dev/magento-aeo-definition/)
- [Magento AEO Checklist 2026](https://angeo.dev/magento-aeo-checklist/)
- [AI Commerce Visibility  -  Definition](https://angeo.dev/ai-commerce-visibility-definition/)
- [AI Commerce Stack  -  Definition](https://angeo.dev/ai-commerce-stack-definition/)
- [Magento LLMO (LLM Optimization): Definition & Practice](https://angeo.dev/magento-llmo/)
- [SEO vs GEO vs AEO: Practical Differences for Ecommerce](https://angeo.dev/seo-vs-geo-vs-aeo-practical-differences-for-e-commerce/)
