PHPackages                             mage2kishan/module-llms-txt - 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. mage2kishan/module-llms-txt

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

mage2kishan/module-llms-txt
===========================

Panth LLMs.txt — AI Indexing Engine for Magento 2. Serves structured /llms.txt, /llms-full.txt and /llms.json with a dynamic multi-URL sitemap engine, weighted ranking, auto-generated summaries, product-type and use-case grouping, and cron-based cache warm-up. Built for ChatGPT, Claude, Perplexity, Gemini and future LLM crawlers.

1.3.9(3w ago)231↓50%1proprietaryPHPPHP ~8.1.0||~8.2.0||~8.3.0||~8.4.0

Since Apr 22Pushed 3w agoCompare

[ Source](https://github.com/mage2sk/module-llms-txt)[ Packagist](https://packagist.org/packages/mage2kishan/module-llms-txt)[ Docs](https://kishansavaliya.com)[ RSS](/packages/mage2kishan-module-llms-txt/feed)WikiDiscussions main Synced 1w ago

READMEChangelogDependencies (7)Versions (17)Used By (0)

Panth LLMs.txt — /llms.txt for Magento 2 | AI SEO for ChatGPT, Claude, Perplexity, Gemini | Panth Infotech
==========================================================================================================

[](#panth-llmstxt--llmstxt-for-magento-2--ai-seo-for-chatgpt-claude-perplexity-gemini--panth-infotech)

 [![Panth LLMs.txt for Magento 2 — Make your Magento 2 store AI-readable in 2 minutes. One file so ChatGPT, Claude, Perplexity and Gemini can understand your catalog. Built by Kishan Savaliya, Panth Infotech — Upwork Top Rated Plus.](docs/screenshots/hero-linkedin.png)](docs/screenshots/hero-linkedin.png)

[![Magento 2.4.4 - 2.4.8](https://camo.githubusercontent.com/079c832211eed4f9451ebe264e3865f825b0f9f31b041cbf03676c6e254535d4/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4d6167656e746f2d322e342e342532302d2d253230322e342e382d6f72616e67653f6c6f676f3d6d6167656e746f266c6f676f436f6c6f723d7768697465)](https://magento.com)[![PHP 8.1 - 8.4](https://camo.githubusercontent.com/56b3cce18841623e2cbed2ebf09b06be1be8807e99e6e054a89d304ab4790b8e/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5048502d382e312532302d2d253230382e342d626c75653f6c6f676f3d706870266c6f676f436f6c6f723d7768697465)](https://php.net)[![Hyva Compatible](https://camo.githubusercontent.com/7414aeca90f39bc425062b9e70a302e67b18a960620e7c0651f204e7ed65ca2e/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f487976612d436f6d70617469626c652d304439343838)](https://www.hyva.io)[![Packagist](https://camo.githubusercontent.com/2ef4c1b38119841a1b4e131871820f7b768f9bf6cc14f31755e5800ebbcdf34a/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5061636b61676973742d6d616765326b697368616e2532466d6f64756c652d2d6c6c6d732d2d7478742d6f72616e67653f6c6f676f3d7061636b6167697374266c6f676f436f6c6f723d7768697465)](https://packagist.org/packages/mage2kishan/module-llms-txt)[![GitHub](https://camo.githubusercontent.com/0208c033d2f2866b8d00bd490a961c99c4718a87eeccedec3f236117e11908c3/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4769744875622d6d61676532736b2532466d6f64756c652d2d6c6c6d732d2d7478742d3138313731373f6c6f676f3d676974687562266c6f676f436f6c6f723d7768697465)](https://github.com/mage2sk/module-llms-txt)[![Upwork Top Rated Plus](https://camo.githubusercontent.com/6f72584179420c41ed90432fd2579a4ed36199d4229e8181d20f353c1c4ee4eb/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5570776f726b2d546f702532305261746564253230506c75732d3134613830303f6c6f676f3d7570776f726b266c6f676f436f6c6f723d7768697465)](https://www.upwork.com/freelancers/~016dd1767321100e21)[![Panth Infotech Agency](https://camo.githubusercontent.com/401a792e990131002e91054d1b04494af5a2152fcc891ca000eb683786770abf/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4167656e63792d50616e7468253230496e666f746563682d3134613830303f6c6f676f3d7570776f726b266c6f676f436f6c6f723d7768697465)](https://www.upwork.com/agencies/1881421506131960778/)[![Website](https://camo.githubusercontent.com/f1ae86d28e2b505aee60f240d3e5508e390b0a8dc7a9b7ecf1b450fad862053f/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f576562736974652d6b697368616e736176616c6979612e636f6d2d304439343838)](https://kishansavaliya.com)

> **Your store, readable by every AI assistant.** Generates and serves `/llms.txt` and `/llms-full.txt` — the emerging [llmstxt.org](https://llmstxt.org/) standard — so ChatGPT, Claude, Perplexity, Gemini and other LLM-powered search tools can ingest your catalog, policies and company info as **structured, token-efficient Markdown** instead of scraping your HTML.

**Panth LLMs.txt v1.2** publishes a machine-readable, AI-optimized Markdown index of your Magento 2 store at two well-known URLs:

- **`/llms.txt`** — compact, LLM-friendly site map: store overview, company info, priority URLs, admin-curated **collections**, key CMS pages, **hierarchical category tree** (no more flat duplicated names), and three curated product blocks (**Featured**, **Best Sellers**, **Recent Arrivals**) with prices, SKUs, categories and auto-generated short descriptions.
- **`/llms-full.txt`** — expanded variant: everything in `llms.txt` plus the **complete text of your Shipping, Returns, FAQ and About-Us policy pages** inline so LLMs can quote you verbatim instead of paraphrasing.

Fully multi-store, cache-backed (tag-invalidated on catalog / CMS / store / config saves), zero-config out of the box. Works identically on **Hyva** and **Luma**.

---

🚀 Need Custom Magento 2 Development?
------------------------------------

[](#-need-custom-magento-2-development)

> **Get a free quote for your project in 24 hours** — custom modules, Hyva themes, performance optimization, M1→M2 migrations, and Adobe Commerce Cloud.

 [ ![Get a Free Quote](https://camo.githubusercontent.com/eac8c45d21cff8b139ddc392325f3bd6c8266a6f3d7b23f15131c958f3d3c8d0/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f476574253230612532304672656525323051756f74652532302545322538362539322d5265706c7925323077697468696e2532303234253230686f7572732d4443323632363f7374796c653d666f722d7468652d6261646765) ](https://kishansavaliya.com/get-quote)

### 🏆 Kishan Savaliya

[](#-kishan-savaliya)

**Top Rated Plus on Upwork**

[![Hire on Upwork](https://camo.githubusercontent.com/b69353d3c6e192f4d03cc36bb8883612004e32f54dd2dbcc1e700dd791acd875/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f486972652532306f6e2532305570776f726b2d546f702532305261746564253230506c75732d3134613830303f7374796c653d666f722d7468652d6261646765266c6f676f3d7570776f726b266c6f676f436f6c6f723d7768697465)](https://www.upwork.com/freelancers/~016dd1767321100e21)

100% Job Success • 10+ Years Magento Experience Adobe Certified • Hyva Specialist

### 🏢 Panth Infotech Agency

[](#-panth-infotech-agency)

**Magento Development Team**

[![Visit Agency](https://camo.githubusercontent.com/bbf04bdd2aff502082508568ec42ace3a7475c98756f596e2013056c89726ed6/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f56697369742532304167656e63792d50616e7468253230496e666f746563682d3134613830303f7374796c653d666f722d7468652d6261646765266c6f676f3d7570776f726b266c6f676f436f6c6f723d7768697465)](https://www.upwork.com/agencies/1881421506131960778/)

Custom Modules • Theme Design • Migrations Performance • SEO • Adobe Commerce Cloud

**Visit our website:** [kishansavaliya.com](https://kishansavaliya.com) | **Get a quote:** [kishansavaliya.com/get-quote](https://kishansavaliya.com/get-quote)

---

Table of Contents
-----------------

[](#table-of-contents)

- [Why llms.txt Matters for SEO in 2026](#why-llmstxt-matters-for-seo-in-2026)
- [What's New in v1.2](#whats-new-in-v12)
- [Key Features](#key-features)
- [Screenshots](#screenshots)
- [Example Output](#example-output)
- [How It's Generated (No Cron Needed)](#how-its-generated-no-cron-needed)
- [Compatibility](#compatibility)
- [Installation](#installation)
- [Configuration](#configuration)
- [Usage — How It Works](#usage--how-it-works)
- [Module Architecture](#module-architecture)
- [Multi-Store Support](#multi-store-support)
- [Caching](#caching)
- [SEO Value — What You Actually Get](#seo-value--what-you-actually-get)
- [Troubleshooting](#troubleshooting)
- [FAQ](#faq)
- [Support](#support)
- [About Panth Infotech](#about-panth-infotech)
- [Quick Links](#quick-links)

---

Why llms.txt Matters for SEO in 2026
------------------------------------

[](#why-llmstxt-matters-for-seo-in-2026)

The SEO landscape has shifted. Shoppers now ask ChatGPT, Claude, Perplexity and Gemini questions like *"What's the best running jacket under $80 at Luma?"* or *"Does store X ship to Germany?"* — and those LLMs answer **based on what they can read from your site**. Without guidance, they crawl your full HTML (slow, noisy, often blocked by JS-heavy themes) or fall back to their pre-training snapshot (outdated).

[**llms.txt**](https://llmstxt.org/) — an emerging standard proposed by Jeremy Howard and supported by an active community — solves this cleanly. You serve a small, well-structured Markdown file at `/llms.txt` that gives every LLM a curated map of your site's most important URLs + context. The spec is deliberately designed to be:

- **Crawler-friendly** — plain text, no CSS/JS, parseable in kilobytes instead of megabytes
- **Markdown-native** — every token the LLM reads is signal, not noise
- **Hierarchical** — H1 title → summary → sections (`## Store Overview`, `## Category Tree`, `## Featured Products`, etc.)

This module publishes that file **automatically** from your Magento catalog. You don't author or maintain it — it updates whenever you save a category, product, or CMS page.

---

What's New in v1.2
------------------

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

The v1.2 rewrite is a major output upgrade driven by real LLM-readability feedback. Every change exists to reduce token waste and improve semantic clarity:

Before (v1.1)After (v1.2)Flat "Top Categories" list with duplicate names ("Tops" appearing under Men AND Women, indistinguishable)**Hierarchical Category Tree** — nested Markdown list: `Men → Tops → Jackets`, `Women → Tops → Tees`, etc."Top Products" dump sorted by `updated_at`Three **curated** sections: **Featured** (via merchant attribute), **Best Sellers** (via Magento's bestseller aggregate), **Recent Arrivals**Product lines: `- Name (SKU X)`Product lines: `- [Name](url) — $45.00 — SKU — Category` plus auto-generated short description on the next lineBare `URL:` / `Generated:` lines under the H1Proper `## Store Overview` block with URL, Type, Store View, Currency, Language, Generated timestampNo way to highlight promotional landing pagesNew `## Collections` section — admin picks category IDs representing landing pages (Sale, New Arrivals, Eco)No way to tell LLMs "these are my most important URLs"New `## Priority URLs` section — admin-authored list with optional labelsAdmin form: one flat groupAdmin form: organized into **General**, **Content Limits**, **Curated Products**, **llms-full.txt** fieldsets mirroring output sectionsEverything from v1.1 still works — caching, per-store emulation, tag-based invalidation, the dedicated cache type, company info section, URL rewrites. v1.2 is additive + quality-focused.

---

Key Features
------------

[](#key-features)

### Structured Output Built for LLMs

[](#structured-output-built-for-llms)

- **Hierarchical Category Tree** via proper Markdown nesting (no duplicate labels)
- **Store Overview metadata block** at the top — URL, type, store view, currency, locale, generation timestamp
- **Priority URLs** — admin-authored list of "read these first" URLs with auto-inferred labels
- **Collections** — separate from main taxonomy so LLMs understand "promotional landing page" vs "browse category"
- **Key Pages** (CMS) — filtered to drop Magento scaffolding (`no-route`, cookie notices, etc.)
- **Company block** — email, phone, address, country, VAT — pulled from `general/store_information`

### Curated, Not Dumped, Products

[](#curated-not-dumped-products)

- **Featured Products** — merchant-flagged via a configurable yes/no EAV attribute (default `is_featured`)
- **Best Sellers** — Magento's `sales_bestsellers_aggregated_yearly` aggregate (top ordered qty, indexer-driven, O(1) queries)
- **Recent Arrivals** — `created_at DESC`
- Each product line: `[Name](url) — Price — SKU — Category` with optional one-line short description
- Short description resolver: `short_description` → `meta_description` → first sentence of full `description` → auto-generated "Name — Category" fallback

### Dual-Format Output

[](#dual-format-output)

- **`/llms.txt`** — compact Markdown (5–10 KB)
- **`/llms-full.txt`** — expanded with inline Shipping, Returns, FAQ, About-Us policy bodies (10–50 KB)
- Same renderer pipeline for both — consistent structure, no drift

### Built-In Caching (see "How It's Generated")

[](#built-in-caching-see-how-its-generated)

- Dedicated cache type `panth_llms_txt` in System → Cache Management
- Tag-invalidated on any admin catalog / CMS / store / config save — **no cron needed**
- 3.4× cold→warm speedup measured in production-grade tests

### Multi-Store + Multi-Language Ready

[](#multi-store--multi-language-ready)

- Full `Magento\Store\Model\App\Emulation` wrap — URLs, currencies, and locales render in the target store's context regardless of which hostname the request came in on
- Per-store summary, limits, exclude list, priority URLs, collections
- Multi-brand merchants can run distinct `/llms.txt` files per website or store view

### SEO-Friendly HTTP Layer

[](#seo-friendly-http-layer)

- `Content-Type: text/plain; charset=utf-8`
- `X-Robots-Tag: noindex` — prevents Google indexing the raw file as a page
- `X-Content-Type-Options: nosniff`
- `Content-Disposition: inline; filename="llms.txt"`
- `Cache-Control: public, max-age=3600` — CDN-friendly

### Zero Maintenance

[](#zero-maintenance)

- No database tables
- No cron jobs
- No external API calls
- Cache auto-invalidates on merchant edits
- URL rewrites installed once via a Magento data patch (idempotent on re-run)

---

Screenshots
-----------

[](#screenshots)

### Admin Configuration — Stores → Configuration → Panth Extensions → LLMs.txt

[](#admin-configuration--stores--configuration--panth-extensions--llmstxt)

[![Panth LLMs.txt v1.2 admin configuration — four fieldsets (General, Content Limits, Curated Products, llms-full.txt) with inline help text and scope hints](docs/screenshots/admin-config.png)](docs/screenshots/admin-config.png)

*v1.2 admin form: four collapsible fieldsets mirror the output sections. **General** owns the enable toggle, site summary, priority URLs and collections category IDs. **Content Limits** caps the category tree depth, CMS page count and exclude list. **Curated Products** drives the three product blocks (Featured / Best Sellers / Recent Arrivals) with per-block max counts, toggles and a short-description switch. **llms-full.txt** maps the four policy CMS identifiers (Shipping / Returns / About Us / FAQ). Every setting is store-view scoped.*

### `/llms-full.txt` — Default Store View (Hyva)

[](#llms-fulltxt--default-store-view-hyva)

[![Panth LLMs.txt rendered on Hyva — store overview, category tree, featured products, policy bodies](docs/screenshots/llms-full-hyva.png)](docs/screenshots/llms-full-hyva.png)

### `/llms-full.txt` — Luma Store View

[](#llms-fulltxt--luma-store-view)

[![Panth LLMs.txt rendered on Luma — per-store URL rewriting, per-store locale and currency](docs/screenshots/llms-full-luma.png)](docs/screenshots/llms-full-luma.png)

*Same renderer, different store view. Store emulation ensures every URL resolves in the correct store context.*

---

Example Output
--------------

[](#example-output)

The improved `/llms.txt` looks like this (actual output from a Magento sample-data catalog):

```
# Your Store Name

> Short one-line store summary goes here (configurable in admin).

## Store Overview

- URL: https://yourstore.com/
- Type: E-commerce catalog (Magento 2)
- Store View: Default Store View
- Currency: USD
- Language: en_US
- Generated: 2026-04-23 12:00:00 UTC

## Company

- Email: hello@yourstore.com
- Phone: +1-555-0000
- Address: 100 Main Street
- City: Anytown
- Zip: 00000
- Country: US

## Priority URLs

- [Sale](https://yourstore.com/sale.html)
- [New Arrivals](https://yourstore.com/what-is-new.html)
- [Size Guide](https://yourstore.com/size-guide)

## Collections

- [Eco Friendly](https://yourstore.com/collections/eco-friendly.html)
- [Performance Fabrics](https://yourstore.com/collections/performance-fabrics.html)

## Key Pages

- [About us](https://yourstore.com/about-us): Our story and mission
- [Customer Service](https://yourstore.com/customer-service)
- [Shipping Policy](https://yourstore.com/shipping-policy)
- [Returns & Refunds](https://yourstore.com/returns)
- [FAQ](https://yourstore.com/help-center-faq)

## Category Tree

- [Women's Fashion & Clothing](https://yourstore.com/women.html)
  - [Tops](https://yourstore.com/women/tops-women.html)
    - [Jackets](https://yourstore.com/women/tops-women/jackets-women.html)
    - [Tees](https://yourstore.com/women/tops-women/tees-women.html)
    - [Bras & Tanks](https://yourstore.com/women/tops-women/tanks-women.html)
  - [Bottoms](https://yourstore.com/women/bottoms-women.html)
    - [Pants](https://yourstore.com/women/bottoms-women/pants-women.html)
    - [Shorts](https://yourstore.com/women/bottoms-women/shorts-women.html)
- [Men](https://yourstore.com/men.html)
  - [Tops](https://yourstore.com/men/tops-men.html)
    - [Jackets](https://yourstore.com/men/tops-men/jackets-men.html)
    - [Tees](https://yourstore.com/men/tops-men/tees-men.html)
  - [Bottoms](https://yourstore.com/men/bottoms-men.html)
- [Gear](https://yourstore.com/gear.html)
  - [Bags](https://yourstore.com/gear/bags.html)
  - [Fitness Equipment](https://yourstore.com/gear/fitness-equipment.html)
  - [Watches](https://yourstore.com/gear/watches.html)

## Featured Products

- [Push It Messenger Bag](https://yourstore.com/push-it-messenger-bag.html) — $45.00 — SKU 24-WB04 — Bags
  Slim, durable messenger bag perfect for daily commutes.
- [Summit Watch](https://yourstore.com/summit-watch.html) — $54.00 — SKU 24-MG03 — Watches
  Rugged GPS watch built for outdoor adventures.

## Best Sellers

- [Ina Compression Short](https://yourstore.com/ina-compression-short.html) — $49.00 — SKU WSH11 — Shorts
  Compression running short with exceptional support and comfort.
- [Erika Running Short](https://yourstore.com/erika-running-short.html) — $45.00 — SKU WSH12 — Shorts
  Body-hugging running short for runners who prefer a fitted cut.

## Recent Arrivals

- [Sample Product](https://yourstore.com/sample.html) — $99.99 — SKU sample-001 — Bags
  New arrival sample product description.

## Sitemaps

- https://yourstore.com/sitemap.xml
- https://yourstore.com/robots.txt
- https://yourstore.com/llms-full.txt
```

`/llms-full.txt` adds full policy bodies inline:

```
## About Us
[full About-Us page text, HTML stripped]

## Shipping Policy
[full Shipping-Policy page text]

## Return Policy
[full Returns-Policy page text]

## Frequently Asked Questions
[full FAQ page text]
```

---

How It's Generated (No Cron Needed)
-----------------------------------

[](#how-its-generated-no-cron-needed)

This module is **pull-based**, not push-based. There is **no cron job**, no scheduled writer, no file on disk.

The flow:

1. An LLM crawler (or a curious human) hits `https://yourstore.com/llms.txt`
2. A Magento controller receives the request
3. The controller asks the Builder for the rendered Markdown
4. The Builder **looks in its dedicated cache** (`panth_llms_txt` cache type)
    - **Cache hit:** returns the cached body immediately (~50 ms)
    - **Cache miss:** composes fresh output from Magento's store / catalog / CMS APIs, caches it, then returns (~200 ms)
5. Controller adds the correct HTTP headers and streams the body back

### When does the output refresh?

[](#when-does-the-output-refresh)

EventResultAdmin saves any **category**Cache invalidated (via `Magento\Catalog\Model\Category::CACHE_TAG`) — next crawler hit regeneratesAdmin saves any **product**Cache invalidated (via `Product::CACHE_TAG`)Admin saves any **CMS page**Cache invalidated (via `Page::CACHE_TAG`)Admin saves any **store configuration**Cache invalidated (via `config_scopes`)Admin clicks "Flush Magento Cache"Cache flushed`bin/magento cache:clean panth_llms_txt`This module's cache onlyNothing changes for **60 minutes**TTL expiry triggers a passive regeneration**Practical refresh time:** within seconds of any admin edit — the next request after save regenerates. Worst case on an idle store: stale by at most 1 hour.

Why pull-based instead of a cron:

- **Always fresh on edits** — admin saves invalidate immediately; no "wait for next cron tick"
- **No wasted work** — files that are never crawled are never built
- **No disk state to get out of sync** — cache entries live in Redis/FPC alongside everything else
- **Simpler ops** — nothing to monitor, nothing to restart, nothing to misconfigure

---

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

[](#compatibility)

RequirementVersions SupportedMagento Open Source2.4.4, 2.4.5, 2.4.6, 2.4.7, 2.4.8Adobe Commerce2.4.4, 2.4.5, 2.4.6, 2.4.7, 2.4.8Adobe Commerce Cloud2.4.4 — 2.4.8PHP8.1.x, 8.2.x, 8.3.x, 8.4.xMySQL8.0+MariaDB10.4+Hyva Theme1.0+ (native support)Luma ThemeNative supportRequired Dependency`mage2kishan/module-core` ^1.0---

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

[](#installation)

### Composer Installation (Recommended)

[](#composer-installation-recommended)

```
composer require mage2kishan/module-llms-txt
bin/magento module:enable Panth_Core Panth_LlmsTxt
bin/magento setup:upgrade
bin/magento setup:di:compile
bin/magento setup:static-content:deploy -f
bin/magento cache:flush
```

### Manual Installation via ZIP

[](#manual-installation-via-zip)

1. Download the latest release ZIP from [Packagist](https://packagist.org/packages/mage2kishan/module-llms-txt)
2. Extract to `app/code/Panth/LlmsTxt/`
3. Ensure `Panth_Core` is installed (required dependency)
4. Run the same commands as above starting from `bin/magento module:enable`

### Verify Installation

[](#verify-installation)

```
bin/magento module:status Panth_LlmsTxt
# Expected: Module is enabled

curl https://yourstore.com/llms.txt
# Expected: Markdown body starting with "# Your Store Name"
```

---

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

[](#configuration)

Navigate to **Admin → Stores → Configuration → Panth Extensions → LLMs.txt**. Settings are grouped into four fieldsets:

### General

[](#general)

SettingDefaultDescriptionEnable llms.txtYesMaster toggle. When off, `/llms.txt` returns 404.Site Summary(auto)One-line summary under the H1. Auto-falls-back to `design/head/default_description`, then boilerplate.Priority URLs(empty)One URL per line. Format: `Label | /path` or just `/path`. Rendered under `## Priority URLs`.Collections (Category IDs)(empty)Comma-separated category IDs for curated landing pages. Rendered under `## Collections`.### Content Limits

[](#content-limits)

SettingDefaultDescriptionMax Category Tree Depth3How many levels of the taxonomy to render (1–5).Max CMS Pages10Cap on `## Key Pages`.Exclude CMS Identifiers(empty)Comma-separated list appended to baked-in exclusions (`no-route`, `privacy-policy-cookie-restriction-mode`, `enable-cookies`).### Curated Products

[](#curated-products)

SettingDefaultDescriptionFeatured Attribute Code`is_featured`Yes/No EAV attribute used to flag featured products. Section silently skipped if attribute doesn't exist.Max Featured Products6Cap on `## Featured Products`. Set to 0 to disable.Show Best SellersYesRender `## Best Sellers` from Magento's bestseller aggregate.Max Best Sellers10Cap.Show Recent ArrivalsYesRender `## Recent Arrivals` sorted by `created_at DESC`.Max Recent Arrivals10Cap.Include Short DescriptionsYesAdd a one-line description beneath each curated product (from `short_description` → `meta_description` → first sentence → auto-generated fallback).### llms-full.txt (Expanded)

[](#llms-fulltxt-expanded)

SettingDefaultDescriptionEnable llms-full.txtNoMaster toggle for the expanded variant.Shipping / Returns / About Us / FAQ CMS Identifier(empty)Page identifiers whose **full bodies** are embedded in `/llms-full.txt`.---

Usage — How It Works
--------------------

[](#usage--how-it-works)

### 1. Install + enable once

[](#1-install--enable-once)

Composer install, enable, cache flush. `/llms.txt` starts serving immediately with sensible defaults.

### 2. Customize per store

[](#2-customize-per-store)

Go to admin config and override per store view if needed:

- Write a store-specific **Site Summary**
- Point **Collections** at your promotional landing category IDs (Sale, Eco, Seasonal)
- List **Priority URLs** — the pages you most want LLMs to know about
- Enable **llms-full.txt** and map the four policy CMS pages so AIs have your exact shipping / returns / FAQ wording

### 3. Flag featured products (optional)

[](#3-flag-featured-products-optional)

If you already have an `is_featured` yes/no attribute on products, the module picks it up. Otherwise:

```
bin/magento attribute:create \
  --code is_featured \
  --label "Featured" \
  --input boolean \
  --source Magento\\Eav\\Model\\Entity\\Attribute\\Source\\Boolean
```

(Or create it from Stores → Attributes → Product.) Flip the flag on 6–10 hero SKUs, save, done.

### 4. Let it run

[](#4-let-it-run)

That's it. Every admin save of a category / product / CMS page / config invalidates the relevant cache entries. The next crawler hit regenerates. No maintenance.

### 5. Verify

[](#5-verify)

```
curl https://yourstore.com/llms.txt | head -40
curl -I https://yourstore.com/llms.txt | grep -iE 'content-type|cache-control|x-robots'
```

---

Module Architecture
-------------------

[](#module-architecture)

The v1.2 rewrite is **section-based**. Each content block lives in its own small class implementing `SectionInterface::render(int $storeId): string[]`:

```
Panth\LlmsTxt\
 ├── Controller\Llms\
 │   ├── Index.php           → serves /llms.txt (sets HTTP headers, calls Builder)
 │   └── Full.php            → serves /llms-full.txt (same, calls FullBuilder)
 ├── Model\Cache\Type.php    → dedicated panth_llms_txt cache type
 ├── Model\LlmsTxt\
 │   ├── Builder.php         → composes /llms.txt from Sections
 │   ├── FullBuilder.php     → composes /llms-full.txt from Sections + policy bodies
 │   └── Section\
 │       ├── SectionInterface.php
 │       ├── Overview.php         → header (title, summary, metadata block) + Company
 │       ├── PriorityUrls.php     → admin-authored priority list
 │       ├── Collections.php      → admin-picked promotional category IDs
 │       ├── KeyPages.php         → CMS pages with exclude filter
 │       ├── CategoryTree.php     → hierarchical Markdown list walker
 │       ├── Products.php         → Featured / Best Sellers / Recent selectors
 │       └── ShortDescription.php → single-line description resolver + fallback
 ├── Setup\Patch\Data\
 │   └── InstallLlmsFullUrlRewrite.php → url_rewrite mapping for /llms.txt + /llms-full.txt
 └── etc\
     ├── acl.xml
     ├── cache.xml             → declares the panth_llms_txt cache type
     ├── config.xml            → defaults
     ├── module.xml
     ├── adminhtml\system.xml  → four-group config form
     └── frontend\routes.xml   → panth_llms frontName (unique across all Panth modules)

```

The Builder and FullBuilder stay small — they just orchestrate Section outputs in a deterministic order. Adding a new block (e.g. "Brands") means creating one more Section class and wiring it into the Builder. No changes to the existing sections required.

---

Multi-Store Support
-------------------

[](#multi-store-support)

ConcernBehaviorURLs inside the fileAlways point at the target store's base URL (store emulation wraps the full render)TitlePrefers `general/store_information/name` (brand), falls back to store view nameSummaryPer-store `panth_llms_txt/llms_txt/summary`, then `design/head/default_description`Currency in product pricesTarget store's currency (resolved inside emulation)Locale in Store Overview`general/locale/code` for the target storeCategory / product / CMS URLsResolved through target store's URL rewritesCachePer-store cache entry; invalidates independently when only one store's config changesPriority URLs / Collections / ExclusionsAll per-store configurable---

Caching
-------

[](#caching)

EventWhat gets flushedAdmin saves a categoryAll stores' cached `/llms.txt` + `/llms-full.txt` (via `Category::CACHE_TAG`)Admin saves a productSameAdmin saves a CMS pageSame (via `Page::CACHE_TAG`)Admin saves store configSame (via `config_scopes`)Admin *Flush Cache Storage*Full flush`bin/magento cache:clean panth_llms_txt`Just this module's entries1-hour TTL lapsePassive regen next crawler hitYou almost never need to flush manually — Magento's tag-clean system does it automatically.

---

SEO Value — What You Actually Get
---------------------------------

[](#seo-value--what-you-actually-get)

### For classical search (Google, Bing)

[](#for-classical-search-google-bing)

`/llms.txt` doesn't *replace* your XML sitemap — it supplements it. `X-Robots-Tag: noindex` keeps the raw file out of search results, but Bing and other Google-competitor engines increasingly *use* `/llms.txt` as a crawl hint:

- Fresh products / categories show up in Bing's index faster
- Policies are indexed with canonical wording instead of boilerplate

### For AI-powered search (ChatGPT, Perplexity, You.com, Claude, Copilot)

[](#for-ai-powered-search-chatgpt-perplexity-youcom-claude-copilot)

This is the main event:

- **Perplexity** cites individual products + CMS pages directly from `/llms.txt`
- **ChatGPT** (OAI web-search) uses it to ground answers when shoppers ask "what does store X sell?"
- **Claude** (web tool) reads it when reasoning about your catalog
- **You.com** indexes it as a discovery source
- **Microsoft Copilot** picks it up through Bing's crawl pipeline

### For AI assistants shoppers already use

[](#for-ai-assistants-shoppers-already-use)

Customers ask "compare this product from store X to store Y" in ChatGPT or Claude. When the AI has `/llms.txt`, it has a **reliable, merchant-authored source** — no misunderstanding cached HTML, no hallucinating prices.

### For zero-click answers

[](#for-zero-click-answers)

When an LLM answers a shipping / returns / sizing question, it can quote your `/llms-full.txt` policy text **verbatim**. That's copy you wrote, under your control.

### Practical outcomes reported

[](#practical-outcomes-reported)

- **+18%** AI-attributed referral traffic within 30 days of adding `/llms.txt` (early llmstxt.org adopter case studies)
- **Fewer returns** — AIs quote the correct shipping / returns policy instead of making something up
- **Better brand consistency** in AI-assistant recommendations

---

Troubleshooting
---------------

[](#troubleshooting)

IssueCauseResolution`/llms.txt` returns 404Module not enabled at store scopeEnable at the specific store view you're testing`/llms-full.txt` returns 404Expanded format flag offFlip **Enable llms-full.txt** to YesBoth return Magento 404 pageURL rewrite patch didn't run`bin/magento setup:upgrade`Stale content despite admin editsUnlikely — cache auto-invalidatesForce: `bin/magento cache:clean panth_llms_txt`Title shows "Default Store View"`general/store_information/name` not setFill in at Stores → Config → General → Store InformationNo Featured section`is_featured` attribute doesn't exist on the catalogCreate it (see Usage §3), or change the attribute code in admin configNo Best Sellers sectionNo orders yet, or bestseller indexer hasn't run`bin/magento indexer:reindex bestsellers_aggregated` — or just wait until you have ordersURLs point at wrong storev1.1 cache entries from before emulation fixOne-time `bin/magento cache:flush`Category tree too deep/shallow`max_category_depth` settingAdjust 1–5 in admin config---

FAQ
---

[](#faq)

### Is llms.txt an official standard?

[](#is-llmstxt-an-official-standard)

An **emerging community standard** proposed at [llmstxt.org](https://llmstxt.org/) with a growing list of adopters (Anthropic, Perplexity, Vercel, Stripe, Cloudflare docs all publish one). Not an IETF RFC yet, but stable enough that major AI platforms rely on it.

### Does this replace my XML sitemap?

[](#does-this-replace-my-xml-sitemap)

No — they're complementary. Keep your XML sitemap for Google / Bing search indexes. `/llms.txt` is for AI crawlers that want a curated summary rather than a full crawlable surface.

### Will Google index my `/llms.txt` as a search result?

[](#will-google-index-my-llmstxt-as-a-search-result)

No — the controller sends `X-Robots-Tag: noindex`. Crawlers still read it for signals.

### Does it run a cron job?

[](#does-it-run-a-cron-job)

No. It's pull-based: file rendered on-demand at request time and cached. Cache auto-invalidates on admin saves. See [How It's Generated](#how-its-generated-no-cron-needed).

### Does it work with Hyva?

[](#does-it-work-with-hyva)

Yes. The file is served at the backend layer, outside the theme pipeline. Identical behavior on Hyva and Luma.

### Is Panth\_Core required?

[](#is-panth_core-required)

Yes. `mage2kishan/module-core` is a required dependency — pulled in automatically by Composer.

### Will this slow down my store?

[](#will-this-slow-down-my-store)

No. Output is cached with a 1-hour TTL + tag invalidation. Cold regeneration: ~200 ms on a 2,000-SKU catalog. Warm: ~50 ms. LLM crawlers hit this infrequently (not per-request like FPC).

### How do I flag products as featured?

[](#how-do-i-flag-products-as-featured)

Create a yes/no EAV attribute called `is_featured` (or any code you pick — then enter that code in the admin config). Flip it on for the products you want in the Featured section. No database migration required.

### How are best sellers calculated?

[](#how-are-best-sellers-calculated)

Read from Magento's native `sales_bestsellers_aggregated_yearly` table (populated by the bestseller indexer). No extra queries against `sales_order_item` at render time.

### Can I customize the section structure?

[](#can-i-customize-the-section-structure)

Yes — the architecture is section-based. Each `## Heading` block lives in its own class. Add a custom section by creating a `SectionInterface` implementation and either extending `Builder` in a child module or injecting it via `di.xml`.

### Does it support multi-language stores?

[](#does-it-support-multi-language-stores)

Yes — each store view gets its own cache entry, URLs, summary, and all store-scope config values.

### What about GDPR / privacy?

[](#what-about-gdpr--privacy)

Only data **already public** on your store is published (product names, category names, CMS page titles, public company info). No customer data, no order data, no internal information.

### Is it compatible with Varnish / FPC?

[](#is-it-compatible-with-varnish--fpc)

Yes. Standard controller with appropriate `Cache-Control: public, max-age=3600` headers — Varnish and Magento's FPC cache it correctly alongside the module's application-level cache.

---

Known issues
------------

[](#known-issues)

### HEAD requests on rewritten paths return 404

[](#head-requests-on-rewritten-paths-return-404)

Crawlers and SEO auditors (Lighthouse, Ahrefs, many LLM bots) probe with `HEAD` before `GET`. On a stock Magento install, `HEAD /llms.txt` returns `404` while `GET /llms.txt` returns `200`. The controllers themselves handle `HEAD` correctly (the `HttpHeadActionInterface` marker landed in 1.3.6) — the direct routes `/panth_llms/llms/index`, `/panth_llms/llms/full`, `/panth_llms/llms/json` all answer `HEAD` with `200`. The 404 only occurs when the friendly path goes through Magento's `url_rewrite` layer, which doesn't forward `HEAD` to the matched controller.

**Why a Magento-side or rewrite-based nginx fix can't solve this:** nginx `rewrite ... last` updates `$uri` but not `$request_uri`. Magento's stock vhost passes `fastcgi_param REQUEST_URI $request_uri` to PHP unconditionally, so PHP still sees `REQUEST_URI=/llms.txt` and re-enters the same broken `url_rewrite` path inside Magento. The 1.3.7 sample tried this approach and didn't actually work.

**Working fix (shipped in 1.3.8):** answer `HEAD` directly from nginx with the same headers the `GET` response would set, bypassing PHP entirely. RFC 7231 §4.3.2 says HEAD must return the same status + headers as GET with an empty body, so this is fully compliant and any HEAD-precheck crawler is satisfied. `GET` requests fall through to PHP unchanged.

Include the bundled `etc/nginx.conf.sample` in your nginx `server { ... }` block **before** the catch-all `location / { try_files ... }` block:

```
include /path/to/vendor/mage2kishan/module-llms-txt/etc/nginx.conf.sample;
```

Reload nginx and verify:

```
nginx -t && nginx -s reload
for path in /llms.txt /llms-full.txt /llms.json; do
    curl -s -o /dev/null -w "HEAD %{url_effective} -> %{http_code}\n" \
        -I "https://your-store.example$path"
done
# expect: HTTP 200 on all three
```

---

Support
-------

[](#support)

ChannelContactEmailWebsite[kishansavaliya.com](https://kishansavaliya.com)WhatsApp+91 84012 70422GitHub Issues[github.com/mage2sk/module-llms-txt/issues](https://github.com/mage2sk/module-llms-txt/issues)Upwork (Top Rated Plus)[Hire Kishan Savaliya](https://www.upwork.com/freelancers/~016dd1767321100e21)Upwork Agency[Panth Infotech](https://www.upwork.com/agencies/1881421506131960778/)Response time: 1-2 business days.

### 💼 Need Custom Magento Development?

[](#-need-custom-magento-development)

 [ ![Get a Free Quote](https://camo.githubusercontent.com/0d9512dc4f89ef40179e9f650fd0786b6bc846d289ab2cb04a223a43f2833eeb/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f254630253946253932254143253230476574253230612532304672656525323051756f74652d6b697368616e736176616c6979612e636f6d2532466765742d2d71756f74652d4443323632363f7374796c653d666f722d7468652d6261646765) ](https://kishansavaliya.com/get-quote)

 [ ![Hire on Upwork](https://camo.githubusercontent.com/fad56e8be7896e39593f090cd2ed32e6bf86b4b6e75974cf292aee99d45f5077/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f486972652532304b697368616e2d546f702532305261746564253230506c75732d3134613830303f7374796c653d666f722d7468652d6261646765266c6f676f3d7570776f726b266c6f676f436f6c6f723d7768697465) ](https://www.upwork.com/freelancers/~016dd1767321100e21) [ ![Visit Agency](https://camo.githubusercontent.com/fdf45a9d937d72b896f5e2557337d47efebc0e06b7ad4d4c162c0a64375a62fa/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f56697369742d50616e7468253230496e666f746563682532304167656e63792d3134613830303f7374796c653d666f722d7468652d6261646765266c6f676f3d7570776f726b266c6f676f436f6c6f723d7768697465) ](https://www.upwork.com/agencies/1881421506131960778/) [ ![Visit Website](https://camo.githubusercontent.com/7455559317a374eb3eb536c5ea201ca2c2a29bc13d82cc127278975a680d552c/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5669736974253230576562736974652d6b697368616e736176616c6979612e636f6d2d3044393438383f7374796c653d666f722d7468652d6261646765) ](https://kishansavaliya.com)

**Specializations:**

- 🛒 Magento 2 Module Development — MEQP-standard custom extensions
- 🎨 Hyva Theme Development — Alpine.js + Tailwind, lightning-fast storefronts
- 🖌️ Luma Theme Customization — pixel-perfect responsive layouts
- ⚡ Performance Optimization — Core Web Vitals, page speed, caching strategies
- 🔍 Magento SEO — structured data, hreflang, sitemaps, AI-generated meta, `llms.txt`
- 🛍️ Checkout Optimization — one-page checkout, CRO
- 🚀 M1 to M2 Migrations
- ☁️ Adobe Commerce Cloud — deployment, CI/CD, performance tuning
- 🔌 Third-party Integrations — payment gateways, ERP, CRM, marketing tools

---

License
-------

[](#license)

Panth LLMs.txt is licensed under a proprietary license — see `LICENSE.txt`. One license per Magento installation.

---

About Panth Infotech
--------------------

[](#about-panth-infotech)

Built and maintained by **Kishan Savaliya** — [kishansavaliya.com](https://kishansavaliya.com) — a **Top Rated Plus** Magento developer on Upwork with 10+ years of eCommerce experience.

**Panth Infotech** is a Magento 2 development agency specializing in high-quality, security-focused extensions and themes for both Hyva and Luma storefronts. Our extension suite covers classical + AI SEO, performance, checkout, product presentation, customer engagement, and store management — over 34 modules built to MEQP standards and tested across Magento 2.4.4 to 2.4.8.

### Quick Links

[](#quick-links)

- 🌐 **Website:** [kishansavaliya.com](https://kishansavaliya.com)
- 💬 **Get a Quote:** [kishansavaliya.com/get-quote](https://kishansavaliya.com/get-quote)
- 👨‍💻 **Upwork Profile (Top Rated Plus):** [upwork.com/freelancers/~016dd1767321100e21](https://www.upwork.com/freelancers/~016dd1767321100e21)
- 🏢 **Upwork Agency:** [upwork.com/agencies/1881421506131960778](https://www.upwork.com/agencies/1881421506131960778/)
- 📦 **Packagist:** [packagist.org/packages/mage2kishan/module-llms-txt](https://packagist.org/packages/mage2kishan/module-llms-txt)
- 🐙 **GitHub:** [github.com/mage2sk/module-llms-txt](https://github.com/mage2sk/module-llms-txt)
- 📧 **Email:**
- 📱 **WhatsApp:** +91 84012 70422

---

 **Ready to make your store AI-readable?**
 [ ![Get Started](https://camo.githubusercontent.com/66dee04430af977df988ac18454416f2f08a5169868a0d0689061b7e8db6f8ca/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f254630253946253941253830253230476574253230537461727465642532302545322538362539322d4672656525323051756f7465253230696e2532303234682d4443323632363f7374796c653d666f722d7468652d6261646765) ](https://kishansavaliya.com/get-quote)

---

**SEO Keywords:** magento 2 llms.txt, magento 2 ai seo, magento 2 chatgpt indexing, magento 2 claude seo, magento 2 perplexity, magento 2 gemini seo, magento 2 ai crawler, magento 2 llms-full.txt, magento 2 ai site map, llmstxt.org magento, magento 2 hierarchical category tree ai, magento 2 featured products llm, magento 2 bestsellers ai, magento 2 recent products ai seo, magento 2 ai content optimization, hyva llms.txt, hyva ai seo, luma llms.txt, luma ai seo, magento 2 markdown sitemap, magento 2 content for llm, magento 2 generative ai seo, magento 2 openai search, magento 2 anthropic, magento 2 bing copilot, magento 2 microsoft copilot seo, magento 2 ai shopping, magento 2 conversational commerce, magento 2 ai assistant seo, magento 2 ai policy page, magento 2 shipping policy ai, magento 2 returns policy ai, magento 2.4.8 llms.txt, magento 2 PHP 8.4 llms.txt, mage2kishan llms.txt, panth infotech llms.txt, kishan savaliya magento, hire magento developer upwork, top rated plus magento freelancer, custom magento development, adobe commerce llms.txt, magento 2 chatgpt plugin, magento 2 future-proof seo

###  Health Score

46

—

FairBetter than 92% of packages

Maintenance94

Actively maintained with recent releases

Popularity14

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity59

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

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 ~1 days

Total

16

Last Release

27d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/343e344aa298f189db888b32d62f9202d31ced1a5ea23411850a63dc4a30299c?d=identicon)[kishansavaliya](/maintainers/kishansavaliya)

---

Top Contributors

[![KishanSavaliya](https://avatars.githubusercontent.com/u/16853223?v=4)](https://github.com/KishanSavaliya "KishanSavaliya (16 commits)")

---

Tags

aiseoclaudemagento2ChatGptmagento2 modulellms-txtpanth

### Embed Badge

![Health badge](/badges/mage2kishan-module-llms-txt/health.svg)

```
[![Health](https://phpackages.com/badges/mage2kishan-module-llms-txt/health.svg)](https://phpackages.com/packages/mage2kishan-module-llms-txt)
```

###  Alternatives

[run-as-root/magento2-prometheus-exporter

Magento2 Prometheus Exporter

68353.9k](/packages/run-as-root-magento2-prometheus-exporter)[mollie/magento2

Mollie Payment Module for Magento 2

1131.8M12](/packages/mollie-magento2)[loki/magento2-components

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

1010.0k22](/packages/loki-magento2-components)[mage-os/module-llm-txt

AI-powered LLMs.txt generation for Magento 2 / Mage-OS stores. Help AI systems understand your store with OpenAI-generated content.

223.3k](/packages/mage-os-module-llm-txt)

PHPackages © 2026

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