SW Shopware 6 Gemiddeld

LLMs.txt en AEO voor Shopware: complete gids

LLMs.txt & AEO installeren, configureren en gebruiken: endpoints llms.txt / llms-full.txt / robots-ai.txt, gestructureerde gegevens Schema.org (FAQPage, HowTo, Speakable, verrijkte Product), aangepaste AEO-velden, CLI en PSR-6-cache voor Shopware 6.7.

Bijgewerkt Moduleversie 1.0.1

Overzicht

DataFirefly LLMs.txt & AEO is een Shopware 6.7-plugin die uw shop zichtbaar en begrijpelijk maakt voor AI-antwoordmachines (ChatGPT, Claude, Perplexity, Gemini). Hij werkt op drie complementaire vlakken:

  • llms.txt / llms-full.txt: twee bestanden conform de specificatie llmstxt.org, automatisch gegenereerd in de wortel van elk sales channel, in elke actieve taal.
  • Schema.org JSON-LD: automatische invoeging van gestructureerde gegevens op alle pagina’s: Organization, verrijkte Product, BreadcrumbList, FAQPage, HowTo en Speakable.
  • Aansturing van AI-crawlers: een endpoint /robots-ai.txt met individuele controle over 9 bots (GPTBot, ClaudeBot, PerplexityBot, Google-Extended, Applebot-Extended, Bingbot, Meta-ExternalAgent, CCBot, cohere-ai).

Vereisten: Shopware 6.7.0+, PHP 8.2+, MySQL 8.0+ of MariaDB 10.6+. De plugin werkt op de standaard storefront en op aangepaste thema’s (Twig-overerving).

Installatie

Via ZIP (aanbevolen)

  1. Download DataFireflyLlmsAeo.zip vanuit uw klantaccount.
  2. Shopware-administration → Extensies → Mijn extensies → Extensie uploaden.
  3. Klik op Installeren en daarna op Activeren.
  4. Leeg de cache: Instellingen → Systeem → Cache en index, of via de CLI:
bin/console cache:clear

Via de CLI

unzip DataFireflyLlmsAeo.zip -d custom/plugins/
bin/console plugin:refresh
bin/console plugin:install --activate DataFireflyLlmsAeo
bin/console cache:clear

Bij de activering installeert de plugin automatisch de set aangepaste velden datafirefly_aeo op producten, categorieën, CMS-pagina’s en fabrikanten. Er is geen handmatige migratie nodig.

Compilatie van de administratie-assets

Als de administratiemodule na de activering niet onder Marketing verschijnt:

bin/console bundle:dump
./bin/build-administration.sh
bin/console cache:clear

Configuratie

De configuratie staat onder Instellingen → Systeem → Extensies → DataFirefly llms.txt & AEO. Ze is per sales channel in te stellen: kies bovenaan een specifiek kanaal in de kiezer om de globale waarden te overschrijven.

Kaart “Algemeen”

  • Module activeren: globale schakelaar (per sales channel).
  • Auteur van de site: gebruikt in de koptekst van het llms.txt.
  • Beschrijving van de site: blockquote in de koptekst van het llms.txt; beschrijf uw shop in 1 tot 2 zinnen, gericht op AI.
  • Cacheduur: TTL in seconden (standaard 3600).

Kaart “llms.txt”

  • CMS-pagina’s, categorieën, merken en/of producten opnemen.
  • Maximum aantal producten in de index.
  • Inactieve producten opnemen: standaard uitgeschakeld, laat dit in productie uit staan.

Kaart “AEO en Schema.org”

  • Afzonderlijke schakelaars: Organization, verrijkte Product, BreadcrumbList, FAQPage, HowTo, Speakable.
  • Logo en URL van de organisatie: overschrijven de waarden van het sales channel.
  • Telefoon, contact-e-mail, sociale profielen: voeden het Organization-schema (contactPoint, sameAs).

Kaart “AI-crawlers”

Voor elk van de 9 bots zijn er drie modi:

  • Toegestaan: volledige toegang (geen beperkende richtlijn).
  • Geweigerd: Disallow: / voor die bot.
  • Selectief: Disallow op de paden die u opsomt (één per regel, bijvoorbeeld /checkout/, /account/).

De inhoud van /robots-ai.txt wordt niet automatisch samengevoegd met uw hoofdbestand robots.txt. Kopieer de inhoud ervan in uw robots.txt, of voeg een herschrijfregel op de server toe (zie het hoofdstuk Integratie met robots.txt).

De drie endpoints

URL Inhoud Headers
/llms.txt Beknopte index: pagina’s, categorieën, merken, producten, Optional text/plain; charset=UTF-8, X-Robots-Tag: noindex, publieke cache
/llms-full.txt Volledige inhoud: opgeschoonde beschrijvingen, SKU, EAN, merk, gegroepeerde kenmerken, FAQ idem
/robots-ai.txt Blok met User-agent-richtlijnen voor de 9 AI-crawlers idem

Snelle controle na de installatie:

curl -I https://uw-shop.tld/llms.txt
curl -I https://uw-shop.tld/llms-full.txt
curl -I https://uw-shop.tld/robots-ai.txt

Elk sales channel biedt zijn eigen bestanden aan op zijn eigen domein, in elke actieve taal (de gelokaliseerde URL’s volgen de domeinconfiguratie van het kanaal).

Aangepaste AEO-velden

De set datafirefly_aeo is beschikbaar op producten, categorieën, CMS-pagina’s en fabrikanten, op het tabblad Aangepaste velden van elke entiteit.

Veld Type Gebruik
datafirefly_aeo_summary Tekst Samenvatting van 1 tot 2 zinnen die in het llms.txt de afgekapte beschrijving vervangt
datafirefly_aeo_faq JSON Gestructureerde FAQ, ingevoegd als FAQPage JSON-LD
datafirefly_aeo_howto JSON Gestructureerde handleiding, ingevoegd als HowTo JSON-LD
datafirefly_aeo_speakable Tekst Korte tekst voor spraakassistenten (30 tot 40 uitspreekbare woorden)
datafirefly_aeo_exclude Boolean Sluit de entiteit uit van het llms.txt en het llms-full.txt

Formaat van het FAQ-veld

[
  {
    "q": "Hoe lang duurt de levering?",
    "a": "Standaardlevering duurt 2 tot 4 werkdagen in Nederland en België."
  },
  {
    "q": "Wat is uw retourbeleid?",
    "a": "U hebt 30 dagen om een ongebruikt product terug te sturen."
  }
]

Formaat van het HowTo-veld

{
  "name": "Hoe u het product installeert",
  "totalTime": "PT15M",
  "steps": [
    { "name": "Voorbereiding", "text": "Pak de onderdelen uit." },
    { "name": "Montage", "text": "Volg het meegeleverde schema." },
    { "name": "Controle", "text": "Test de werking." }
  ]
}

Aangepaste velden van Shopware zijn vertaalbaar: vul de FAQ in elke taal in via de taalkiezer van de productkaart. De plugin leest de waarde in de taal van de aanvraagcontext.

Gestructureerde gegevens Schema.org

De plugin voegt JSON-LD in de head-tag in via het template storefront/layout/meta.html.twig (Twig-overerving, compatibel met aangepaste thema’s). Gegenereerde schema’s:

  • Organization: op alle pagina’s: naam, logo, URL, contactPoint, sameAs (sociale profielen).
  • Verrijkte Product: op de productpagina’s: gtin13 (uit de EAN), mpn, sku, brand (fabrikant), additionalProperty (kenmerken gegroepeerd per eigenschappengroep), aggregateRating (uit de native reviews van Shopware indien aanwezig).
  • BreadcrumbList: volledig kruimelpad van de huidige pagina.
  • FAQPage: als het veld datafirefly_aeo_faq op de entiteit van de pagina is ingevuld.
  • HowTo: als het veld datafirefly_aeo_howto is ingevuld.
  • Speakable: CSS-selectors h1, .product-detail-name, .product-detail-description-text, .cms-element-text, [data-speakable], plus de tekst uit het specifieke veld.

Aanbevolen validatie na de livegang:

Administratiemodule

Onder Marketing → DataFirefly llms.txt & AEO:

  • Live voorbeeld van het llms.txt of het llms-full.txt, met monospace-weergave.
  • Sales channel-kiezer: bekijk elk kanaal afzonderlijk.
  • Cache ongeldig maken met één klik (per kanaal of globaal).
  • De publieke URL openen en naar het klembord kopiëren.

CLI-commando’s en automatisering

datafirefly:llms-txt:generate

# Het llms.txt van een sales channel genereren (weergegeven op de standaarduitvoer)
bin/console datafirefly:llms-txt:generate --sales-channel=<id>

# Volledige versie, weggeschreven naar een bestand, zonder de cache te gebruiken
bin/console datafirefly:llms-txt:generate --sales-channel=<id> --full --output=/tmp/llms-full.txt --no-cache

datafirefly:llms-txt:warm

# De cache van alle sales channels maal alle actieve talen opwarmen
bin/console datafirefly:llms-txt:warm

# Hergeneratie forceren, ook als de cache nog geldig is
bin/console datafirefly:llms-txt:warm --force

# Alleen het llms.txt opwarmen (zonder het llms-full.txt)
bin/console datafirefly:llms-txt:warm --skip-full

Aanbevolen cron

# Dagelijkse opwarming om 03.15 uur
15 3 * * * cd /var/www/shopware && php bin/console datafirefly:llms-txt:warm --quiet

Bij de activering wordt ook een geplande taak van Shopware geregistreerd: als uw Messenger-worker en de scheduled task runner draaien, warmt de cache automatisch op zonder systeemcron.

Integratie met robots.txt

Er zijn twee manieren om de AI-richtlijnen in uw hoofdbestand robots.txt beschikbaar te stellen:

Handmatig kopiëren

Open /robots-ai.txt, kopieer het gegenereerde blok en plak het in uw bestaande robots.txt. Herhaal dit na elke wijziging van de botconfiguratie.

Herschrijving op de server (aanbevolen als robots.txt volledig door de plugin wordt beheerd)

# nginx
location = /robots.txt {
    rewrite ^ /robots-ai.txt last;
}

# Apache (.htaccess)
RewriteRule ^robots.txt$ /robots-ai.txt [L]

Gebruik de volledige herschrijving alleen als u geen andere richtlijnen in robots.txt hoeft te behouden (sitemap, bestaande SEO-uitsluitingen). Kies bij twijfel voor het handmatig kopiëren van het AI-blok.

Cache en prestaties

  • PSR-6-cache op de pool cache.object van Shopware, getagd met datafirefly_llms_aeo.
  • Sleutels per sales channel en taal: elke combinatie heeft haar eigen invoer.
  • Instelbare TTL (standaard 3600 s).
  • Ongeldig maken: knop in de admin (per kanaal of globaal), commando warm --force, of natuurlijke vervaltijd.
  • Compatibel met een geclusterde cache (Redis): het ongeldig maken op tags werkt op alle adapters die tags ondersteunen.

Probleemoplossing

De endpoints geven een 404 terug

  1. Controleer of de plugin daadwerkelijk geactiveerd is (niet alleen geïnstalleerd).
  2. Leeg de HTTP-cache en de applicatiecache: bin/console cache:clear.
  3. Gebruikt u een reverse proxy of CDN, leeg die dan ook.

Fout “Attempted to call an undefined method named getHeader” op de navigatiepagina’s

Bug opgelost in versie 1.0.1: op sommige Shopware 6.7-installaties biedt NavigationPage geen getHeader(). Werk bij naar 1.0.1 (defensieve extractie van de actieve categorie). Als u al op 1.0.1 zit en de fout blijft optreden, leeg dan de PHP-opcodecache (opcache_reset of PHP-FPM herstarten).

De adminmodule verschijnt niet onder Marketing

Compileer de administratie-assets (zie Installatie) en forceer daarna het herladen van de browser (Ctrl+Shift+R).

Het llms.txt is leeg of onvolledig

  1. Controleer de schakelaars voor het opnemen van CMS-pagina’s, categorieën, merken en producten in de kaart “llms.txt”.
  2. Controleer of de productlimiet niet op 0 staat.
  3. Controleer het veld datafirefly_aeo_exclude op de ontbrekende entiteiten.
  4. Maak de cache ongeldig en herlaad daarna.

De JSON-LD verschijnt niet in de broncode

  1. Controleer of “Module activeren” en de Schema.org-schakelaars actief zijn voor het juiste sales channel.
  2. Als uw thema storefront/layout/meta.html.twig overschrijft zonder {{ parent() }} op het betreffende block, gaat de invoeging verloren: herstel de aanroep van de parent.

Changelog

1.0.1, 21-05-2026

  • Correctie: defensieve extractie van de actieve categorie op de navigatiepagina’s (fout getHeader() op sommige 6.7-installaties).

1.0.0, 21-05-2026

  • Eerste versie: llms.txt en llms-full.txt, 6 JSON-LD-schema’s, robots-ai.txt (9 bots), aangepaste AEO-velden, adminmodule in Vue 3, 2 CLI-commando’s, geplande taak, snippets FR/EN/DE.
Was deze pagina nuttig?

Loopt u nog vast? Neem contact op met support