4 min read

llms.txt, 90 dias depois: uma retrospectiva honesta

Há três meses implantámos um llms.txt em todo o aat.ee. O que é, o que lançámos, o que os logs e as referências mostram na realidade, e um veredicto honesto sobre se vale a pena o esforço.

GEOAIEOTechnical SEOllms.txt
llms.txt, 90 dias depois: uma retrospectiva honesta

Em junho, lançámos um llms.txt em todo o aat.ee — um único ficheiro de rota, um mapa em markdown do conteúdo principal do site, servido em aat.ee/llms.txt. Custou cerca de uma hora. Noventa dias depois, este é um relato honesto do que fez e do que não fez, porque a maior parte do que vais ler sobre llms.txt é ou uma repetição da especificação ou um argumento de venda, e o meio-termo — resultados medidos de um site real em produção — é escasso.

O que é o llms.txt, num parágrafo

O llms.txt é uma convenção proposta (não um padrão — mais sobre isto adiante): um ficheiro markdown na raiz do teu domínio que dá aos modelos de linguagem um mapa curado do teu site. Onde o sitemap.xml é uma lista exaustiva de URLs para crawlers, o llms.txt é uma lista de leitura curta e priorizada para assistentes — o que importa, como se chama e onde vive. A aposta é que os agentes preferem um resumo curado a rastejar às cegas.

O que lançámos

A implementação é deliberadamente aborrecida: uma única rota dinâmica que compõe três coisas — um preâmbulo estático de política de crawling, os 15 lançamentos mais recentes, os 10 artigos publicados mais recentes e a lista de categorias — em markdown, com uma função de escape a envolver tudo o que é controlado pelo utilizador.

// User text (project names, article titles) must not break out of the
// markdown link or inject headings into an agent-facing file.
function mdSafe(text: string): string {
  return text
    .replace(/[\r\n]+/g, " ")
    .replace(/[[\]()]/g, "")
    .trim()
}

const projectLinks = recentProjects
  .map((p) => `- [${mdSafe(p.name)}](${baseUrl}/projects/${p.slug})`)
  .join("\n")

Esse passo de sanitização é a única parte subtil. Os nomes de projetos e os títulos vêm de utilizadores e de pipelines de LLM; quebras de linha ou parênteses retos incorporados permitiriam que uma listagem injetasse um cabeçalho ou um link falso num ficheiro que os assistentes são convidados a confiar como mapa.

O que os logs mostraram

Três observações de noventa dias de logs de servidor e dados de referenciadores.

Os agentes vão buscá-lo. Vemos pedidos periódicos de /llms.txt a partir de user-agents conhecidos de crawlers de assistentes, a uma frequência muito inferior à do robots.txt, mas consistentemente presentes. Qualquer que seja o estatuto da especificação, o comportamento de busca é real.

Nenhum milagre mensurável de referências. As referências de assistentes de IA para o aat.ee cresceram ao longo do trimestre — mas o crescimento acompanha o nosso ritmo de publicação, não a implementação do llms.txt. Não conseguimos atribuir uma única sessão a um agente ter lido o ficheiro, e desconfiamos de quem reivindica atribuição rigorosa aqui: os assistentes buscam, depois respondem a partir de uma mistura de fontes, e a citação raramente traz um referenciador com a forma de um llms.txt.

Forçou um inventário útil. O benefício inesperado: escrever um mapa curado significa decidir o que é realmente o topo do teu site. A nossa rota renderiza dados em tempo real, por isso o ficheiro mantém-se atual — mas a disciplina de "o que pertence à lista de leitura" melhorou a estrutura de categorias mais do que o próprio ficheiro.

A parte desconfortável: ainda é uma proposta

O llms.txt não tem um padrão ratificado por trás. O tipo MIME é debatido (text/markdown vs text/plain), os assistentes não estão documentados como o lendo, e nada se quebra se não tiveres um. Qualquer publicação que te diga que é "essencial para SEO de IA" em 2026 está à frente das evidências.

A nossa posição após noventa dias: o custo é tão baixo que o valor esperado se mantém positivo, tal como um lobby bem organizado é positivo para um edifício de escritórios. Não vai conduzir o resultado por si só, mas quando um agente vai à procura de orientação, preferes que encontre um mapa curado do que uma parede.

Deves construir um?

Uma tabela de decisão, honestamente:

  • Se o teu site tem menos de ~50 páginas com títulos claros — marginal. O teu sitemap e a navegação já contam a história.
  • Se tens um site orientado por dados (lançamentos, listagens, artigos, docs — conteúdo que muda semanalmente) — sim. Um llms.txt gerado é um ficheiro de rota, mantém-se atual automaticamente e dá aos assistentes um resumo livre de spam que o teu sitemap não consegue.
  • Se te disseram que vai impulsionar os rankings de IA — não. É um mapa, não uma meta tag.

O padrão de implementação acima — compor, sanitizar, servir — encaixa em qualquer framework com uma camada de routing. Mantém-no gerado em vez de escrito à mão, mantém o texto do utilizador sanitizado e mantém as tuas expectativas calibradas.

Criou algo novo?

Lance na aat.ee e seja descoberto

Listagem dofollow permanente em um diretório indexado
Nomeado e citado por assistentes de IA
Envie seu projeto