llms.txt + AEO Schema para WooCommerce: guia completo
Instalar e configurar o plugin llms.txt + AEO Schema: endpoint llms.txt multilingue, enriquecimento Schema.org anti-alucinação e FAQ dirigida a agentes de IA.
Visão geral
O plugin DataFirefly llms.txt + AEO Schema torna a sua loja WooCommerce visível e corretamente compreendida pelos agentes de IA (ChatGPT, Claude, Perplexity, Gemini). Combina dois mecanismos complementares:
- Um endpoint /llms.txt dinâmico conforme ao padrão llmstxt.org, gerado a partir do seu catálogo com cache por idioma.
- Um enriquecimento do schema Product do WooCommerce com os atributos anti-alucinação que os agentes procuram: marca, GTIN, materiais, compatibilidade, políticas de devolução e de expedição, mais um schema FAQPage separado dirigido a agentes.
Requisitos
- WordPress 6.2 ou superior
- WooCommerce 8.0 ou superior (testado até à 9.4)
- PHP 8.0 ou superior
- Facultativo: Polylang ou WPML para a geração multilingue
Instalação
- Descarregue o arquivo
dfllmstxtaeo.zipa partir da sua conta DataFirefly. - Na administração do WordPress, vá a Plugins → Adicionar → Carregar plugin, selecione o ZIP e clique em Instalar.
- Ative o plugin. A regra de reescrita para
/llms.txté registada e os permalinks são atualizados automaticamente na ativação. - Verifique que
https://oseusite.tld/llms.txtresponde. Se obtiver um 404, vá a Definições → Permalinks e clique em Guardar para forçar um flush das regras.
Definições gerais
A página de configuração está em WooCommerce → llms.txt + AEO. Mostra no topo o URL do seu llms.txt com uma ligação direta de pré-visualização.
Servir o /llms.txt
Quatro interruptores controlam as grandes funções: o endpoint llms.txt, o enriquecimento do schema de produto, a saída do schema FAQPage e a especificação Speakable. Está tudo ativo por predefinição.
Conteúdo do llms.txt
- Incluir produtos / páginas / artigos: escolha as secções geradas.
- Número máximo de produtos: de 1 a 1000 (200 por predefinição). Os produtos mais recentes são listados primeiro.
- Duração da cache: em minutos, 0 para desativar. A cache é de qualquer forma limpa automaticamente a cada edição de produto, de página ou de definição.
- Parágrafo de introdução: texto livre (texto simples ou markdown) inserido após a descrição do site.
Valores predefinidos do schema
- Nome da marca predefinido: usado quando um produto não tem marca própria.
- País do comerciante (ISO-2): deixe vazio para usar o país base do WooCommerce.
- Janela de devolução predefinida: em dias, alimenta o hasMerchantReturnPolicy.
- Custos de devolução: devolução gratuita, cliente paga a expedição, ou cliente paga todos os custos.
O endpoint /llms.txt
O ficheiro é servido com o cabeçalho Content-Type: text/markdown; charset=utf-8 e X-Robots-Tag: noindex (destina-se aos crawlers de IA, não ao índice da Google). As secções geradas: categorias de produtos, produtos (título, URL, preço, descrição curta), páginas, artigos, e depois as ligações para a política de privacidade e as condições gerais configuradas no WordPress e no WooCommerce.
Funcionamento da cache
O conteúdo é colocado em cache num transiente delimitado por idioma (dfllmstxtaeo_llms_cache_{lang}). É invalidado automaticamente nos hooks save_post_product, save_post_page, deleted_post e em cada gravação das definições do plugin.
Multilingue
O Polylang e o WPML são detetados automaticamente. Cada idioma tem o seu próprio llms.txt servido no seu prefixo de URL (por exemplo /en/llms.txt, consoante a sua configuração do Polylang), com cache independente. Sem plugin multilingue, é usada a locale do WordPress.
Separador AEO Schema nos produtos
Cada produto ganha um separador AEO Schema no painel de dados do WooCommerce (Produto → Editar).
Campos disponíveis
- Marca: substitui a marca global para este produto. Na sua ausência, o plugin procura um atributo
pa_brandoubrand. - GTIN / EAN / UPC: 8, 12, 13 ou 14 dígitos. A propriedade
gtin8/12/13/14correspondente é acrescentada automaticamente consoante o comprimento. - MPN: referência do fabricante.
- Materiais: separados por vírgulas (por exemplo «couro, algodão reciclado»). Um único material produz uma cadeia, vários produzem um array.
- Compatível com: um elemento por linha. Cada linha torna-se uma entrada
isRelatedTodo tipo Product.
FAQ dirigida a agentes de IA
Por baixo dos campos, a secção FAQ dirigida a agentes permite acrescentar pares de pergunta e resposta curtos e factuais (compatibilidade exata, dimensões, ingredientes, certificações). Alimentam um schema FAQPage em JSON-LD separado, emitido apenas nas páginas de produto que tenham pelo menos uma entrada. Esta FAQ é invisível do lado do cliente: não aparece no tema, existe apenas para os agentes.
Redija as respostas como factos verificáveis, não como argumentos de venda. Um agente que lê «compatível com os modelos X, Y e Z» cita exatamente esses modelos; um agente que lê «compatível com a maioria dos aparelhos» inventa a lista.
Campos Schema.org acrescentados
No objeto Product: brand, gtin (mais gtin8/12/13/14), mpn, material, color, size, weight, height, width, depth (QuantitativeValue com as unidades do WooCommerce), isRelatedTo e speakable. Em cada Offer: seller (Organization com o nome e o URL do site), hasMerchantReturnPolicy (país, janela em dias, tipo de custos) e shippingDetails (destino, deliveryTime com handlingTime de 0 a 1 dia e transitTime de 1 a 5 dias).
Os campos color e size são retomados automaticamente dos atributos pa_color / color e pa_size / size, se existirem. O peso e as dimensões vêm dos campos de expedição nativos do produto.
Compatibilidade com os plugins de SEO
O plugin atua exclusivamente através do filtro nativo woocommerce_structured_data_product, que só toca no JSON-LD gerado pelo próprio WooCommerce. O Yoast SEO, o RankMath e o SEO Press emitem os seus blocos de forma independente através do wp_head: não há colisão. Os valores já presentes no schema do WooCommerce são preservados.
Hooks para programadores
dfllmstxtaeo_llms_output: filtra o conteúdo final do llms.txt. Argumentos: o conteúdo (string) e o código do idioma.dfllmstxtaeo_product_schema: filtra o array de schema enriquecido antes da saída. Argumentos: o array de markup e o objeto WC_Product.
add_filter( 'dfllmstxtaeo_product_schema', function ( $markup, $product ) {
$markup['award'] = 'Prémio de design 2026';
return $markup;
}, 10, 2 );
Resolução de problemas
- O /llms.txt devolve um 404: volte a guardar os permalinks (Definições → Permalinks → Guardar).
- O ficheiro não reflete uma alteração recente: a cache é limpa na edição, mas pode forçar colocando a duração da cache a 0 temporariamente, ou voltando a guardar as definições.
- O FAQPage não aparece: verifique que o produto tem pelo menos um par de pergunta e resposta completo e que a opção «Emitir o schema FAQPage» está ativa.
- Validar o schema: teste um URL de produto com o validador do schema.org ou com a ferramenta de resultados enriquecidos da Google para visualizar o JSON-LD completo.