---
title: llms.txt, robots.txt e páginas servidas como Markdown
description: Os agentes leem de forma diferente dos navegadores. O que cada site gerado lhes oferece: llms.txt, política para crawlers de IA e cada página em markdown.
date: 2026-09-08
author: crea.site
tags: [seo, agents]
---

Uma parte cada vez maior das pessoas que vão ouvir falar de um pequeno negócio nunca visitará o seu site. Vão perguntar a um modelo, e o modelo responde com o que conseguiu ler.

Isso faz de "um agente consegue ler este site?" uma questão de distribuição, e não uma curiosidade técnica. Daí resultam três coisas, e todo site gerado aqui recebe as três sem que ninguém peça.

## O robots.txt deve nomear os crawlers de IA

Se você não disser nada sobre eles, caem em `User-agent: *`. Isso não é uma política, é um padrão que você herdou.

Por isso nós os nomeamos. Os agentes de busca e resposta que devolvem citações - `OAI-SearchBot`, `ChatGPT-User`, `Claude-SearchBot`, `Claude-User`, `PerplexityBot` - e os crawlers de treino `GPTBot`, `ClaudeBot`, `Google-Extended`, `meta-externalagent`. Cada um herda exatamente a mesma lista de `Disallow` que todos os outros: nenhum bot acessa a API, e nenhum bot acessa uma página só para membros.

Nomeá-los não é ser permissivo. É ter a política escrita num lugar onde pode ser alterada de propósito.

## O llms.txt é um índice, não um discurso de vendas

A convenção [llms.txt](https://llmstxt.org) é simples: um título, um resumo de um parágrafo num blockquote e depois seções com links. Um modelo que chegue lá deve conseguir perceber o que é este site e onde ficam as páginas importantes, em uma única requisição, sem renderizar nada.

O nosso é gerado a partir da definição do site, o que importa mais do que parece. A listagem é filtrada pela mesma regra de público/privado que o sitemap:

```
# Piekarnia Lune

> A sourdough bakery in Kraków. Bread baked daily, cakes to order,
> open from seven.

## Pages

- [Menu](https://...): What we bake, and what it costs.
- [Order a cake](https://...): Wedding and birthday cakes, two weeks' notice.
```

Uma lista, lida três vezes - pelo sitemap, pelo `llms.txt` e pela meta tag `robots`. Não há como os três discordarem, porque não há nada para manter sincronizado.

## Cada página, também em markdown

A forma mais rápida de ser mal interpretado é obrigar o leitor a analisar uma página cheia de layout para encontrar três frases. Por isso, todas as páginas de todos os sites gerados respondem tanto em markdown como em HTML:

- Envie `Accept: text/markdown` e você recebe a página em markdown na mesma URL.
- Ou acrescente `.md` ao caminho, para os muitos agentes que não negociam.

As regras que mantêm isto honesto merecem ser ditas. É uma _reescrita_, não um redirecionamento. Só acontece num pedido explícito de `text/markdown`, nunca com `*/*` - um navegador que envia "qualquer coisa" quer a página. As duas respostas levam `Vary: Accept`, para que uma cache partilhada não sirva o mesmo corpo a todos. E a variante em markdown é `noindex`, para nunca competir na busca com a página de que é cópia.

O serializador percorre a definição do site e não o HTML renderizado, e é por isso que o resultado sai limpo: uma secção de funcionalidades vira uma lista, um FAQ vira títulos e respostas, uma tabela de preços vira uma tabela. Um mapa ou um calendário de reservas vira uma linha honesta a dizer o que lá está, em vez de uma invenção do que mostraria.

## Vale também para nós

Este artigo está disponível na mesma URL com `.md` no final. Assim como todas as outras páginas do crea.site, e o [nosso próprio llms.txt](/llms.txt) as lista.

Um construtor de sites cujas próprias páginas um agente não consegue ler está a argumentar contra si mesmo.
