Pular para o conteúdo principal
Voltar ao blog
GEO SEO IA Desenvolvimento web

llms.txt: o que é, como criar e o que esperar dele

O que é llms.txt, seu formato, a diferença para llms-full.txt, como o geramos a cada build em soamee.com e os erros que o tornam inútil.

JM
Javier Manzano
CEO & Co-founder • 6 de novembro de 2026
llms.txt: o que é, como criar e o que esperar dele

llms.txt é um arquivo Markdown publicado na raiz do domínio (seudominio.com/llms.txt) que resume para um modelo de linguagem o que é o seu site e onde está o que importa. Foi proposto por Jeremy Howard, da Answer.AI, em setembro de 2024. A especificação completa está em llmstxt.org e cabe numa tela.

Em soamee.com ele está publicado, junto com llms-full.txt e llms.json, e os três são gerados sozinhos a cada build. Aqui contamos como é o formato, o que se pode esperar dele (menos do que promete quem o vende como tática principal) e como montá-lo para que não fique desatualizado em duas semanas.

O formato

Só há um elemento obrigatório: um título # com o nome do site. Todo o resto é opcional, mas segue esta ordem:

  1. Título H1 com o nome do projeto ou da empresa
  2. Uma citação (>) com o resumo em uma ou duas frases
  3. Parágrafos livres com o contexto de que um modelo precisa para não errar
  4. Seções H2 com listas de links: - [Nome](url): nota breve
  5. Uma seção ## Optional, com o que pode ser descartado se o modelo estiver com pouco contexto

Um exemplo para uma empresa de serviços:

# Talleres Ruiz

> Oficina de reparação de máquinas agrícolas em Albacete desde 1994.
> Trabalhamos com tratores John Deere, New Holland e Kubota.

Atendemos Castilla-La Mancha e Múrcia. Serviço de coleta na propriedade
para avarias graves. Não vendemos máquinas novas.

## Serviços

- [Reparação de tratores](https://talleresruiz.es/reparacion): diagnóstico, motor, hidráulica e transmissão
- [Manutenção preventiva](https://talleresruiz.es/mantenimiento): revisões de 250 e 500 horas
- [Coleta na propriedade](https://talleresruiz.es/recogida): condições e áreas atendidas

## Empresa

- [Tarifas](https://talleresruiz.es/tarifas): preço por hora e deslocamento
- [Contato](https://talleresruiz.es/contacto): telefone, horário e endereço

## Optional

- [Blog](https://talleresruiz.es/blog): guias de manutenção por modelo

A frase «Não vendemos máquinas novas» parece sobrar, mas é o tipo de dado que evita que um assistente recomende você para algo que você não faz.

llms.txt e llms-full.txt

llms.txt é um índice: pouca prosa e muitos links. llms-full.txt despeja o conteúdo completo num único arquivo, para que o modelo não tenha que ir seguindo links. A proposta original fala do primeiro; o segundo é uma convenção difundida pelas plataformas de documentação técnica, onde um agente que programa precisa da referência de uma API inteira de uma vez.

Para um site de empresa, o índice é o essencial. O -full compensa se você tem conteúdo de referência (preços, especificações, perguntas frequentes) que quer que seja lido inteiro e sem interpretação.

O que faz e o que não faz

Não controla o acesso. Isso continua sendo papel do robots.txt. Se você bloqueia GPTBot ou PerplexityBot ali, ou seu firewall os barra, ninguém vai ler o llms.txt.

Não há confirmação de que melhore as citações. Nem a OpenAI, nem a Perplexity, nem o Google disseram que seus buscadores o usam para escolher fontes, e porta-vozes do Google já afirmaram em público que o buscador deles não o lê. Quem vende isso como a alavanca principal do GEO está vendendo uma hipótese.

Os agentes que chegam com uma tarefa o leem. Um agente que precisa comparar fornecedores, ou uma ferramenta de programação que precisa da documentação da sua API, procura esse arquivo porque ele poupa o rastreamento do site inteiro. É um uso menor que «aparecer no ChatGPT», e é real.

Obriga você a escrever a descrição da sua empresa para uma máquina. O que você faz, para quem, onde, desde quando e o que não faz. Esse texto é reaproveitado no markup Organization do Schema.org, nas fichas de diretórios e no bloco de resposta da home, que influenciam as citações.

Diante disso, nossa recomendação é fazê-lo, porque custa pouco, mas depois do que realmente faz diferença: rastreamento aberto aos bots de IA, HTML renderizado no servidor, respostas diretas no início de cada página e dados estruturados. Explicamos isso no guia de GEO.

Como o geramos em soamee.com

Nosso llms.txt não é um arquivo estático: é um endpoint do Astro que roda a cada build e lê as mesmas coleções de conteúdo que alimentam o blog e os casos de sucesso. Quando publicamos um caso novo, no build seguinte ele aparece no llms.txt com suas métricas públicas, sem que ninguém edite nada.

O que ele inclui:

  • Dados da entidade: ano de fundação, localização, fundadores, tamanho da equipe, projetos entregues, contato
  • Serviços, produtos, soluções e setores, cada um com sua URL e uma descrição de uma linha com tecnologias concretas
  • Subsídios públicos na Espanha, com valores e requisitos, porque é uma pergunta que os clientes fazem aos assistentes
  • Casos de sucesso com suas métricas públicas, gerados a partir do frontmatter
  • Dados citados com frequência: frases curtas e verificáveis, pensadas para que um modelo possa aproveitá-las tal como estão
  • Os 20 artigos mais recentes do blog, não os 300

O llms-full.txt acrescenta uma seção de perguntas e respostas e outra que associa consultas típicas («quanto custa um app na Espanha») a uma resposta direta e ao link para a página de preços. O llms.json traz o mesmo em estrutura de dados para quem prefere não fazer parse de Markdown.

A versão reduzida do endpoint:

// src/pages/llms.txt.ts
import type { APIRoute } from 'astro';
import { getCollection } from 'astro:content';

export const prerender = true;

export const GET: APIRoute = async () => {
  const cases = await getCollection('cases', (c) => !c.data.draft);

  let out = '# Soamee\n\n';
  out += '> Software development agency based in Madrid, Spain.\n\n';
  out += '## Case Studies\n\n';
  for (const c of cases) {
    const metrics = c.data.metrics.map((m) => `${m.value} ${m.label}`).join(', ');
    out += `- **${c.data.client}**: ${c.data.description} (${metrics})\n`;
  }

  return new Response(out, {
    headers: { 'Content-Type': 'text/plain; charset=utf-8' },
  });
};

Com prerender = true o arquivo é gerado como estático no build: servi-lo não custa nada e ele sempre coincide com o que está publicado. No Next.js o equivalente é um route handler em app/llms.txt/route.ts; no WordPress, um template ou um plugin que o monte a partir dos custom post types.

Para saber se alguém o lê, olhe os logs do servidor: quantas requisições /llms.txt recebe e de quais user-agents. Explicamos como em como medir o tráfego que chega do ChatGPT e de outras IAs.

Erros que o tornam inútil

Colocar o sitemap inteiro. soamee.com tem mais de 1.600 URLs publicadas. Um llms.txt com todas é um sitemap em Markdown, e o modelo não sabe quais importam. Escolha: serviços, preços, casos, contato e o mais útil do blog.

Escrevê-lo em tom de folheto. «Líderes em inovação com paixão pela excelência» não diz nada a um modelo. «Fundada em 2017 em Madri, 150+ projetos, React Native e Next.js» diz.

Fazê-lo à mão e esquecê-lo. No dia em que você muda preços, encerra um serviço ou publica um caso, o arquivo mente. Se ele não é gerado sozinho, marque uma data de revisão no calendário.

Contradizer o próprio site. Se o llms.txt diz 150 projetos e a home diz 200, um modelo que cruza fontes não sabe em qual acreditar, e pode ser que não acredite em nenhuma.

Servi-lo mal. Ele precisa responder com um 200 e text/plain ou text/markdown em UTF-8, sem redirecionamentos para a home, sem muro de cookies na frente e sem depender de JavaScript.

Checklist

  • robots.txt permite os bots de IA que você quer (OAI-SearchBot, ChatGPT-User, PerplexityBot, Claude-User…)
  • /llms.txt responde 200, em UTF-8, sem JavaScript
  • H1 com o nome, citação com o resumo e um parágrafo com o que você faz e o que não faz
  • Seções H2 com links selecionados, não o sitemap inteiro
  • Dados que coincidem com o site e com o markup Organization
  • Gerado no build, ou com data de revisão no calendário
  • Requisições a /llms.txt monitoradas nos logs

Se quiser que o montemos junto com o resto da camada GEO do seu site, isso faz parte do nosso serviço de posicionamento em IA.

Não perca nada

JM

Javier Manzano

CEO & Co-founder na Soamee

Apaixonado por tecnologia e desenvolvimento de software. Compartilhando conhecimentos e experiências para ajudar outros desenvolvedores a crescer.

Gostou deste artigo?

Se você precisa de ajuda com seu projeto de desenvolvimento, estamos aqui para você.

llms.txt: o que é e como criar para o seu site

Conte-nos seu desafio. Propomos uma solução.

Sem compromisso. Respondemos em menos de 24 horas e em 48 horas você recebe uma proposta com escopo, cronograma e orçamento. Sem letras miúdas.

Agende uma call gratuita →