TL;DR — 2 minute version

  • Default Magento 2 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, Product schema missing offers.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 Shopping registration is separate — apply at chatgpt.com/merchants

You’ve optimized your Magento store for Google. But when a shopper asks 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 all 9 AEO signals for Magento 2, what each one means, and how to fix every gap — with exact CLI commands. The tooling referenced is open-source and available on Packagist, but the signal framework applies to any Magento implementation.

Magento 2 AEO Guide 2026 – optimize your store for ChatGPT, Gemini and Perplexity

Key terms

AEO — AI Engine Optimization
The practice of configuring a website so AI assistants — ChatGPT, Gemini, Perplexity — can discover, read, and recommend it. Different from SEO: targets AI-generated answers, not 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. 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’s open standard for structured merchant product data. Defines the feed format (.jsonl.gz) submitted to chatgpt.com/merchants — required for ChatGPT 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. 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-Extended behavior is not publicly documented. Adding it costs nothing and is one less gap.
offers.availability
A required field in Product JSON-LD schema 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 — its absence fails ChatGPT Shopping conformance checks.

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
llms.txt / llms.jsonl
Product JSON-LD schema
FAQPage schema
ACP product feed
sitemap.xml
Open Graph tags
Canonical tags

The 9 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, 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. You need these entries, placed before any wildcard block:

User-agent: OAI-SearchBot
Allow: /

User-agent: GPTBot
Allow: /

User-agent: PerplexityBot
Allow: /

User-agent: Google-Extended
Allow: /

User-agent: ClaudeBot
Allow: /
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 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. Perplexity’s background indexer actively reads it. For ChatGPT Shopping, 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

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

Magento’s default Luma theme outputs basic Product schema per schema.org but almost always omits offers.availability — a hard requirement for ChatGPT Shopping conformance checks. Without it, your merchant application will fail validation.

Q: Does Hyvä theme fix the schema problem automatically?
Partially. Hyvä has better schema defaults than Luma but still requires explicit configuration for offers.availability and variant-level data. 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 on CMS pages.

Product Schema FAIL in Magento 2 AEO Audit — How to Fix It

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

⚠ Before — default install

  • AEO score: 23%
  • ✗ robots.txt — OAI-SearchBot blocked
  • ✗ llms.txt — not found
  • ✗ Product schema — no availability
  • ✗ AI product feed — not registered

✓ After — 90 minutes later

  • AEO score: 84%
  • ✓ robots.txt — 7 AI bots allowed
  • ✓ llms.txt — 2,400 products mapped
  • ✓ 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)

ChatGPT Shopping requires a registered ACP product feed. Without it, products cannot appear in ChatGPT Shopping results regardless of other signals. The feed is .jsonl.gz, submitted to a private SFTP endpoint provided by OpenAI after approval, refreshed every 15 minutes.

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

Apply at chatgpt.com/merchants. Currently US-only and waitlisted. After approval, set up 15-minute cron — stale availability data is the #1 reason for post-approval suppression.

How to Register Your Magento 2 Store for ChatGPT Shopping

Signals #5–#9 — Supporting Signals

FAQPage schema (weight 0.5)
Increases citation probability for answer-style AI queries. Injected automatically alongside Product schema 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 to Google Search Console — also surfaces to Google-Extended (Gemini).
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 — 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 — 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 — operates on Google’s Shopping Graph (50B+ products, updated 2B+ times per hour). Any product in Google Merchant Center is available to Gemini. Google-Extended is the separate crawler for AI Overviews — allowing it does not affect regular Google Search rankings.

Perplexity vs ChatGPT vs Gemini: How Each AI Discovers Your Products


Score interpretation

Score Label Typical situation
0–25%Needs ImprovementDefault Magento install. AI crawlers blocked.
26–50%Needs ImprovementSome fixes applied. Schema or feed still missing.
51–75%ModerateCore signals in place. Feed not yet registered.
76–90%GoodStrong foundation. Minor schema gaps.
91–100%ExcellentFull 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-auditDiagnostic — checks all 9 signals, score trend dashboard
angeo/module-robots-txt-aeoSignal #1 — injects AI bot rules into robots.txt
angeo/module-llms-txtSignals #2, #2b — generates llms.txt and llms.jsonl
angeo/module-rich-dataSignals #3, #5 — Product JSON-LD + FAQPage schema
angeo/module-openai-product-feedSignal #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-txtangeo: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. Use the 15-minute cron for the ACP product feed as the authoritative source for availability.

Adobe Commerce vs Magento Open Source: AI Visibility in 2026


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, 2–6 weeks for Google-Extended, 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 9 signals. Every failed signal shows the exact command to fix it.

Install CLI Audit → Free Web Self-Assessment →


0 Comments

Leave a Reply

Avatar placeholder

Your email address will not be published. Required fields are marked *