PHPackages                             angeo/module-aeo-audit - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. angeo/module-aeo-audit

ActiveMagento2-module[Utility &amp; Helpers](/categories/utility)

angeo/module-aeo-audit
======================

Magento 2 AEO (AI Engine Optimization) Audit. v3 covers 15 signals — robots.txt AI bots, llms.txt + llms.jsonl, Product / Organization / FAQ schema, merchant return + shipping policies, sitemap.xml, UCP profile, AI product feed, OG tags, canonical + hreflang, JSON-LD quality, well-known endpoint matrix, Core Web Vitals via CrUX. Score Trend dashboard, Admin UI, cron, dynamic fix commands, dependency-injected extension point for custom checkers.

3.0.0(1mo ago)109411MITPHPPHP ~8.2.0||~8.3.0||~8.4.0

Since Apr 2Pushed 2w agoCompare

[ Source](https://github.com/angeo-dev/module-aeo-audit)[ Packagist](https://packagist.org/packages/angeo/module-aeo-audit)[ Docs](https://angeo.dev)[ RSS](/packages/angeo-module-aeo-audit/feed)WikiDiscussions main Synced 4w ago

READMEChangelogDependencies (20)Versions (8)Used By (1)

Angeo AEO Audit — AI Engine Optimization for Magento 2
======================================================

[](#angeo-aeo-audit--ai-engine-optimization-for-magento-2)

[![Packagist Version](https://camo.githubusercontent.com/181037bd739ce5395d9e38ac4198e35f0d5e4765bd9545dd69d1d14a2638f2b7/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f616e67656f2f6d6f64756c652d61656f2d61756469742e737667)](https://packagist.org/packages/angeo/module-aeo-audit)[![Packagist Downloads](https://camo.githubusercontent.com/9e1bfd49fec73813964f9d1e6d68ae6077be3df57681a7f44619b03140cae938/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f616e67656f2f6d6f64756c652d61656f2d61756469742e737667)](https://packagist.org/packages/angeo/module-aeo-audit)[![License](https://camo.githubusercontent.com/7013272bd27ece47364536a221edb554cd69683b68a46fc0ee96881174c4214c/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d626c75652e737667)](LICENSE)[![PHP](https://camo.githubusercontent.com/d840cef9807c8f76051ad687841d67f4d830c84e0d83236968e53124ef6742d5/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f7068702d253345253344382e322d3838393242462e737667)](https://php.net)[![Magento](https://camo.githubusercontent.com/7230ded7e061dba1a4eec8e1d348e93edbdc708e43487a2e0a8e548dd8c541c6/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6d6167656e746f2d322e342e36253230253743253230322e342e37253230253743253230322e342e382d4545363732462e737667)](https://magento.com)

**One CLI command that tells you exactly why ChatGPT, Gemini, Claude, and Perplexity aren't recommending your store — and how to fix it.**

- 🏠 Project home: [angeo.dev](https://angeo.dev)
- 📦 Source: [github.com/angeo-dev/module-aeo-audit](https://github.com/angeo-dev/module-aeo-audit)
- 🐛 Issues: [github.com/angeo-dev/module-aeo-audit/issues](https://github.com/angeo-dev/module-aeo-audit/issues)
- 📖 Full guide: [Magento 2 AEO Guide 2026](https://angeo.dev/magento-2-aeo-guide/)

---

Compatibility
-------------

[](#compatibility)

ComponentVersionMagento Open Source2.4.6, 2.4.7, 2.4.8Adobe Commerce2.4.6, 2.4.7, 2.4.8Adobe Commerce CloudAll current versionsPHP8.2, 8.3, 8.4ThemesLuma, HyväTested with: Magento Open Source 2.4.7-p3 + PHP 8.3 + Hyvä 1.3.

---

What's new in v3.0.0
--------------------

[](#whats-new-in-v300)

> **Major release** — see [CHANGELOG.md](CHANGELOG.md) for the breaking-change migration guide if you have custom checkers.

**15 signals** (up from 9), reflecting the actual AEO landscape of 2026: AI shopping integrations, merchant policies, agentic commerce, and structured-data quality.

**6 new checkers:**

- `merchant_policies` — `MerchantReturnPolicy` + `OfferShippingDetails` — required by Google AI Mode and ChatGPT Shopping since Jan 2026
- `organization_schema` — brand entity in AI knowledge graphs
- `ucp_profile` — Universal Commerce Protocol (`/.well-known/ucp`), with built-in security check that detects leaked JWK private keys
- `jsonld_quality` — three-page schema breadth audit (homepage / category / product), `WebSite+SearchAction`, `BreadcrumbList`, `ItemList`
- `well_known` — discovery matrix for `/.well-known/{ucp,ai-plugin.json,security.txt,mcp}`
- `core_web_vitals` — LCP / INP / CLS via Google CrUX API (free, opt-in with API key)

**Refactored architecture** (this is the BC-break):

- Shared `Service\HttpCache` — eliminates duplicate fetches across checkers (hundreds of redundant HTTP requests on multi-store audits before, dozens now)
- `Service\StoreUrlSampler` — single source of truth for product / category / CMS URL sampling
- New `--category` and `--fail-on-severity` CLI flags for CI workflows
- Per-checker exception isolation — slow or failing checkers no longer halt the audit run

> **Note on access-log monitoring**: an `ai_bot_traffic` checker was prototyped during v3 development and excluded from the release after security review — it encouraged broad read access on `/var/log/nginx/`, didn't work on Cloud/containerised hosting, and was dominated by false positives behind edge caches. AI-bot traffic is better measured at the edge (Fastly/Cloudflare Analytics) or via APM (New Relic, Datadog) than inside a PHP module. See CHANGELOG.md "Considered and rejected" for the full rationale. The `live_signal` category remains in `CheckerInterface`for third-party modules with secure live-signal sources — notably `angeo/module-aeo-brand-visibility`.

---

What it checks — 15 signals
---------------------------

[](#what-it-checks--15-signals)

\#SignalCodeWeightCategoryWhat it validates1**robots.txt — AI bots**`robots_txt`1.0technical12 AI bots, syntax errors, versioned UAs, conflicting rules2**llms.txt — content map**`llms_txt`1.0technicalSpec compliance + store-locale + currency match + cross-host links3**llms.jsonl — catalog**`llms_jsonl`0.75technicalJSON Lines validity, required fields, eCommerce fields4**sitemap.xml**`sitemap`0.8technicalXML, lastmod, `.gz`, catalog disproportion5**Product schema**`product_schema`1.0technicalJSON-LD on real product, offers, Hyvä detection6**Merchant policies** ★ NEW`merchant_policies`0.9technical`hasMerchantReturnPolicy`, `OfferShippingDetails`, `priceValidUntil`, `itemCondition`7**Organization schema** ★ NEW`organization_schema`0.8technical`Organization` / `OnlineStore` on homepage, `sameAs`, logo8**UCP profile** ★ NEW`ucp_profile`0.9technical`/.well-known/ucp`, signing keys, leaked-private-key detection9**AI product feed**`ai_product_feed`1.0feedFeed file, `/.well-known/ai-plugin.json`, REST endpoint10**JSON-LD quality** ★ NEW`jsonld_quality`0.7technicalBreadcrumb, ItemList, WebSite+SearchAction, duplicate schemas11**Canonical + hreflang**`canonical`0.7technicalCanonical agrees with og:url + JSON-LD url; hreflang on multi-store12**Open Graph**`open_graph`0.7technicalAll 5 OG tags, description length13**FAQ schema**`faq_schema`0.5technicalFAQPage JSON-LD on homepage or sampled CMS page14**Well-known matrix** ★ NEW`well_known`0.5technicalucp / ai-plugin.json / security.txt / mcp inventory15**Core Web Vitals** ★ NEW`core_web_vitals`0.5external\_apiLCP / INP / CLS via Google CrUX (API key required)★ NEW = added in v3.0.0.

---

Installation
------------

[](#installation)

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

For full coverage, install the companion modules:

```
composer require \
  angeo/module-llms-txt \
  angeo/module-rich-data \
  angeo/module-openai-product-feed \
  angeo/module-openai-product-feed-api \
  angeo/module-ucp \
  angeo/module-aeo-brand-visibility
```

---

CLI usage
---------

[](#cli-usage)

```
# Audit all stores
bin/magento angeo:aeo:audit

# Specific store
bin/magento angeo:aeo:audit --store=en_us

# JSON output (for dashboards / CI)
bin/magento angeo:aeo:audit --format=json

# Markdown report to file
bin/magento angeo:aeo:audit --format=markdown --output=/var/www/html/aeo-report.md

# Fast technical-only checks (skip external APIs)
bin/magento angeo:aeo:audit --category=technical

# Run only external-API checks (Core Web Vitals + any third-party live signals)
bin/magento angeo:aeo:audit --category=external_api,live_signal

# Fail build if score below threshold
bin/magento angeo:aeo:audit --fail-on=80

# Fail build if any critical-severity check fails
bin/magento angeo:aeo:audit --fail-on-severity=critical

# Run without saving to DB (CI / read-only environments)
bin/magento angeo:aeo:audit --no-save
```

Sample output:

```
  AEO Score: [████████████████░░░░] 81% — Good
  ✓ Pass: 12  ⚠ Warn: 3  ✗ Fail: 1

  Critical fixes needed:
  → Install angeo/module-openai-product-feed and register at chatgpt.com/merchants

  💡 Fix with angeo modules:
     composer require angeo/module-openai-product-feed angeo/module-openai-product-feed-api
     composer require angeo/module-ucp

```

---

Configuration
-------------

[](#configuration)

Some checkers need configuration. All are accessed via: **Stores → Configuration → Angeo AEO**.

SettingPurpose**CrUX API Key**Required by `core_web_vitals` checker. Free key from [console.cloud.google.com](https://console.cloud.google.com/) — enable the Chrome UX Report API. Stored encrypted.---

Admin UI
--------

[](#admin-ui)

- **Marketing → Angeo AEO → AEO Audit Results** — full history grid
- **Marketing → Angeo AEO → Score Trend** — line chart of AEO score over time
- **▶ Run Audit Now** button (on the Audit Results grid, Score Trend, and result view pages) — triggers an on-demand audit. Since 3.1.0 this is a POST action protected by the admin form key and the dedicated `Angeo_AeoAudit::run_audit` ACL permission; the old GET menu entry was removed.

---

Score interpretation
--------------------

[](#score-interpretation)

ScoreLabelTypical situation0–25%CriticalDefault Magento install. AI crawlers blocked. No schema.26–50%Needs ImprovementSome fixes applied. Feed or merchant policies missing.51–75%Needs ImprovementCore signals in place. UCP, ai-plugin.json, or hreflang missing.76–90%GoodStrong foundation. Minor gaps in well-known or CWV.91–100%ExcellentFull 2026 AEO compliance.---

Cron
----

[](#cron)

Weekly audit every Monday at 03:00 server time. Results saved to DB, last 50 per store retained.

```
bin/magento cron:run --group=default
```

For fast daily checks (without external APIs or log scans), schedule an additional cron job calling the audit with `--category=technical`.

---

Extending with custom checks
----------------------------

[](#extending-with-custom-checks)

Implement `Angeo\AeoAudit\Api\CheckerInterface` (or extend `Angeo\AeoAudit\Model\Checker\AbstractChecker`, which provides HTTP cache, URL sampling and JSON-LD parsing), and register via `di.xml`:

```

            Vendor\Module\Model\Checker\MyChecker

```

v3 interface:

```
public function getName(): string;       // "My Custom Check"
public function getCode(): string;       // "my_check"
public function getWeight(): float;      // 0.0–1.0
public function getCategory(): string;   // CheckerInterface::CATEGORY_*
public function getSeverity(): string;   // CheckerInterface::SEVERITY_*
public function getFixCommand(): string; // "composer require vendor/fix-module" or ""
public function check(\Magento\Store\Api\Data\StoreInterface $store): CheckResult;
```

Migrating from v2? See [CHANGELOG.md](CHANGELOG.md) for the migration guide.

---

Running tests
-------------

[](#running-tests)

```
vendor/bin/phpunit -c app/code/Angeo/AeoAudit/phpunit.xml
```

v3 ships with unit tests covering all 15 checkers, both services (`HttpCache`, `StoreUrlSampler`), the `AuditRunner`, and the report value objects.

---

Code quality
------------

[](#code-quality)

```
# Magento Coding Standard
vendor/bin/phpcs --standard=Magento2 \
    --extensions=php,phtml --severity=10 \
    app/code/Angeo/AeoAudit/

# PHPStan static analysis
vendor/bin/phpstan analyse -l 5 app/code/Angeo/AeoAudit/
```

---

The Angeo AI Visibility Suite
-----------------------------

[](#the-angeo-ai-visibility-suite)

ModuleSignalPurpose[`angeo/module-aeo-audit`](https://packagist.org/packages/angeo/module-aeo-audit)—**This module** — audit all 15 signals[`angeo/module-robots-txt-aeo`](https://packagist.org/packages/angeo/module-robots-txt-aeo)\#1Inject AI bot rules into robots.txt[`angeo/module-llms-txt`](https://packagist.org/packages/angeo/module-llms-txt)\#2, #3Generate llms.txt and llms.jsonl[`angeo/module-rich-data`](https://packagist.org/packages/angeo/module-rich-data)\#5, #6, #7, #13Product, Organization, FAQ JSON-LD + merchant policies[`angeo/module-openai-product-feed`](https://packagist.org/packages/angeo/module-openai-product-feed)\#9ACP product feed for ChatGPT Shopping[`angeo/module-openai-product-feed-api`](https://packagist.org/packages/angeo/module-openai-product-feed-api)\#9REST API — 6 ACP endpoints[`angeo/module-openai-instant-checkout`](https://packagist.org/packages/angeo/module-openai-instant-checkout)—Agentic Commerce Protocol — instant checkout from ChatGPT[`angeo/module-ucp`](https://packagist.org/packages/angeo/module-ucp)\#8Universal Commerce Protocol — `/.well-known/ucp`[`angeo/module-aeo-brand-visibility`](https://packagist.org/packages/angeo/module-aeo-brand-visibility)(extends)Live AI visibility across ChatGPT, Claude, Perplexity, Gemini, Groq---

Contributing
------------

[](#contributing)

Issues and PRs welcome at [github.com/angeo-dev/module-aeo-audit](https://github.com/angeo-dev/module-aeo-audit).

Before opening a PR:

1. Run `vendor/bin/phpunit -c phpunit.xml` — all tests must pass
2. Run `vendor/bin/phpcs --standard=Magento2` — no MCS violations
3. Add tests for any new checker

---

License
-------

[](#license)

MIT — see [LICENSE](LICENSE)

---

Made with care by [Ievgenii Gryshkun](https://angeo.dev) — open-source contributions to the Magento + AI commerce ecosystem.

###  Health Score

48

—

FairBetter than 94% of packages

Maintenance95

Actively maintained with recent releases

Popularity20

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity56

Maturing project, gaining track record

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~9 days

Total

7

Last Release

34d ago

Major Versions

1.0.0 → 2.0.02026-04-16

2.1.2 → 3.0.02026-05-28

PHP version history (2 changes)1.0.0PHP &gt;=8.2

2.1.2PHP ~8.2.0||~8.3.0||~8.4.0

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/557748?v=4)[angeo](/maintainers/angeo)[@angeo](https://github.com/angeo)

---

Tags

adobe-commerceaeoaeo-auditai-engine-optimizationai-searchai-visibilityauditchatgptecommercegenerative-engine-optimizationjson-ldllms-txtmagentomagento2phprobots-txtsitemapstructured-dataJSON-LDstructured-dataGeminiclaudemagento2ChatGptperplexityrobots.txtmagento 2 modulecore-web-vitalsschema markupangeoagentic commerceaeollms.txtai-searchucpaeo auditai engine optimizationai visibilitychatgpt shoppingllms.jsonlmerchant return policyoffer shipping details

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan

Type Coverage Yes

### Embed Badge

![Health badge](/badges/angeo-module-aeo-audit/health.svg)

```
[![Health](https://phpackages.com/badges/angeo-module-aeo-audit/health.svg)](https://phpackages.com/packages/angeo-module-aeo-audit)
```

###  Alternatives

[angeo/module-llms-txt

Magento 2 module for AI Engine Optimization (AEO). Generates spec-compliant llms.txt and llms-full.txt per llmstxt.org standard, plus streaming JSONL for vector indexing. Multi-store, multi-website, CLI, cron, async admin UI, Page Builder-aware sanitization, customer-group pricing, atomic writes, ETag/Cache-Control, .md mirrors.

111.1k](/packages/angeo-module-llms-txt)[mollie/magento2

Mollie Payment Module for Magento 2

1131.9M16](/packages/mollie-magento2)[run-as-root/magento2-prometheus-exporter

Magento2 Prometheus Exporter

68357.9k](/packages/run-as-root-magento2-prometheus-exporter)[loki/magento2-components

Core module for defining Alpine.js components with advanced AJAX features

1011.8k23](/packages/loki-magento2-components)[opengento/module-category-import-export

This module add the capability to import and export the categories from the back-office.

1310.9k2](/packages/opengento-module-category-import-export)[buckaroo/magento2

Buckaroo Magento 2 extension

32420.3k7](/packages/buckaroo-magento2)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
