O que é o llms.txt e como criar o seu
Especificação prática do llms.txt, o ficheiro markdown na raiz do site que os crawlers de IA leem antes do HTML. Estrutura, regras, exemplo real e os erros a evitar.
O llms.txt é um ficheiro markdown na raiz do site que descreve o conteúdo de forma estruturada e legível por modelos de linguagem. Convenção emergente em 2024 a 2026, adotada por Anthropic, Mistral e várias empresas técnicas. Coexiste com o robots.txt e o sitemap.xml, não os substitui. Este texto mostra a estrutura mínima, a versão expandida llms-full.txt, e os erros típicos.
A Google publicou em Junho de 2026 que não é preciso criar llms.txt para aparecer em respostas de IA na sua pesquisa. Não contradiz este artigo: sempre o descrevemos como higiene de baixo custo, não como alavanca de citação. Continua a fazer sentido publicar (documentação, outros motores que não a Google, custo nulo). O contexto completo do que mudou está em A Google oficializou o GEO.
- o llms.txt é markdown simples e vive em /llms.txt na raiz
- funciona como índice curado, não como sitemap exaustivo
- a variante llms-full.txt traz o corpo expandido para uma leitura só
- não substitui o robots.txt (acesso) nem o sitemap.xml (indexação)
- esforço de implementação baixo; cenário de upside grande
O que é o llms.txt
O llms.txt é um ficheiro markdown público, alojado na raiz do domínio (https://example.com/llms.txt), que descreve a estrutura e o propósito do site em linguagem otimizada para modelos. A especificação foi proposta em 2024 e definiu três blocos fixos: nome, descrição em uma linha, e secções de ligações curadas agrupadas por tópico.
A intenção é resolver um problema concreto. Quando um crawler de IA chega ao seu site, tem de inferir a estrutura através de HTML, headers, menus, classes CSS. Esse processo é frágil. Com o llms.txt, recebe um sumário declarativo, num formato que os modelos extraem com fidelidade quase total.
Porque é que importa para GEO
Três motivos práticos. Primeiro, fidelidade: markdown estruturado tem menos ruído do que HTML renderizado com JavaScript. Segundo, curadoria: a escolha do que entra é sua, em vez de deixar o crawler adivinhar. Terceiro, leitura única: a versão llms-full.txt permite que o modelo apanhe todo o contexto numa só chamada, em vez de fazer 10 ou 20 pedidos subsequentes.
Em termos de GEO, isto reflete-se no que os motores citam. Quanto mais limpa for a representação do seu site, mais provável é que a citação seja correta: URL certo, nome certo, descrição certa.
Estrutura mínima
A especificação oficial é simples. Title como h1, descrição como blockquote, e secções h2 com listas de ligações. Exemplo real, adaptado do llms.txt do destaque.ai:
# destaque.ai > Empresa de tecnologia que mede a visibilidade das marcas nas respostas de IA. > Opera a presença de marcas digitais e locais em ChatGPT, Claude, Gemini e Perplexity. ## Serviço - [Como trabalhamos](https://www.destaque.ai/servico) - [Glossário GEO](https://www.destaque.ai/glossario) ## Empresa - [Sobre](https://www.destaque.ai/sobre) - [Contacto](https://www.destaque.ai/contacto) ## Blog - [Posts](https://www.destaque.ai/blog) ## Recursos para IA - [llms-full.txt](https://www.destaque.ai/llms-full.txt) - [ai.txt](https://www.destaque.ai/ai.txt)
Repare em três escolhas. As ligações são absolutas, não relativas. As secções estão agrupadas por intenção (serviço, empresa, blog), não por tipo de página. E há uma secção explícita de recursos para IA que aponta para o llms-full.txt, o que facilita a vida ao crawler.
llms.txt vs llms-full.txt
O llms.txt é o índice. O llms-full.txt é o índice mais o corpo expandido das páginas-chave, concatenado em markdown.
Na prática: o crawler começa pelo llms.txt para mapear o terreno; se quiser profundidade, vai ao llms-full.txt e apanha tudo de uma vez. O custo de servir o llms-full.txt é baixo (rota estática) e a poupança em pedidos do crawler é considerável.
Regra prática: se já tem 5 páginas-chave bem escritas, vale a pena gerar a versão expandida. Se ainda está a construir conteúdo, foque-se primeiro no llms.txt.
llms.txt vs ai.txt vs robots.txt
Quatro ficheiros, quatro responsabilidades distintas:
robots.txtdecide o acesso. Diz aos crawlers (incluindo GPTBot, ClaudeBot e os outros) o que podem ou não rastrear.sitemap.xmldecide a indexação. Lista os endereços do site para os crawlers descobrirem páginas.llms.txtdecide a compreensão. Explica em markdown o que cada bloco do site é.ai.txtdecide a política de uso por IA. Especifica que crawlers de IA podem indexar e em que termos. Análogo ao robots.txt mas focado no uso por modelos generativos.
Devem coexistir os quatro. Cada um resolve um problema diferente do trabalho de visibilidade em IA.
Como criar o seu, em cinco passos
O processo é mais curto do que parece. Tipicamente uma tarde de trabalho.
- Identifique as páginas que importam. Tipicamente: home, serviço, sobre, contacto, índice do blog. Para a maioria dos sites de SaaS B2B, são 5 a 10 páginas.
- Escreva uma frase descritiva para cada. Curta, específica. "Como trabalhamos: as quatro fases do método" é melhor do que "Página de serviço".
- Agrupe por intenção, não por tipo de página. Serviço, empresa, recursos, blog. Não páginas estáticas e dinâmicas.
- Gere o ficheiro como rota estática ou route handler. Em Next.js, um route handler em app/llms.txt/route.ts resolve. Noutras stacks, um ficheiro estático na public/.
- Refira-o no robots.txt. Linha simples: Sitemap: https://example.com/llms.txt. Não é sitemap formal, mas dá descoberta extra. Repita para o llms-full.txt.
Erros típicos
Vemos os mesmos quatro repetidamente:
- Tentar incluir tudo. O llms.txt é curadoria, não inventário. 200 ligações sem contexto valem menos do que 30 bem descritas.
- Sem hierarquia. Lista plana sem secções h2 dá ao modelo zero pistas sobre como o site está organizado.
- Ligar a páginas obsoletas. Cada ligação que devolve 404 ou redireccionamento é ruído. Audite pelo menos trimestralmente.
- Esquecer a atualização. O llms.txt não se mantém sozinho. Se mudar a estrutura do site, atualize imediatamente.
Como validar
Não há ainda validador oficial. O processo manual é simples:
curl https://example.com/llms.txt: devolve o conteúdo? Os headers indicam Content-Type text/markdown ou text/plain?- Abra num browser. As quebras de linha estão corretas, sem escape de HTML?
- Passe o conteúdo por um modelo (Claude, ChatGPT) e peça: leia este llms.txt e descreva a empresa. A resposta faz sentido?
- Valide os endereços com um verificador de estado: respondem todos 200?
Perguntas frequentes
O llms.txt substitui o sitemap.xml ou o robots.txt?
Não. São três ficheiros com propósitos diferentes. O robots.txt diz quem pode entrar; o sitemap.xml diz onde estão as páginas para indexação; o llms.txt diz, em markdown legível por LLMs, o que cada página é e como está organizada. Coexistem.
Os crawlers de IA leem mesmo o llms.txt?
A adoção está a crescer mas ainda é parcial. Anthropic, Mistral e algumas empresas técnicas grandes já o adotaram. OpenAI e Google não confirmaram suporte oficial. Mesmo assim, o esforço é baixo e o cenário de upside é grande, vale a pena pôr.
Tenho de criar também o llms-full.txt?
É recomendado, sim. O llms.txt funciona como índice; o llms-full.txt traz o corpo expandido em markdown, texto principal das páginas-chave concatenado. Uma leitura só para o crawler resolver tudo numa chamada.
Que tamanho deve ter o llms.txt?
Curto. O llms.txt é um índice curado, não um sitemap exaustivo. Para a maioria das empresas, 30 a 100 linhas chega. O llms-full.txt pode ir até 50 a 100 mil tokens conforme a dimensão do site.
Fontes
- llmstxt.org, a especificação oficial.
- destaque.ai/llms.txt, um exemplo real.
- destaque.ai/llms-full.txt, a versão expandida.
Publicado primeiro em destaque.ai/blog/o-que-e-llms-txt-como-criar