Neste artigo
Servir markdown quando o agente pede Accept: text/markdown melhora a ingestão do seu conteúdo, não a sua posição no Google. O ganho é entregar texto limpo, sem menu, rodapé e script no meio, que é o lixo que faz o modelo citar você errado. O risco, medido em produção, é o cache guardar a resposta em markdown na URL e servir isso para gente.
Por que servir markdown muda alguma coisa?
O crawler de LLM precisa arrancar o texto do meio do seu HTML. Nesse processo ele às vezes cola pedaço de menu dentro do parágrafo, perde a tabela e atribui a você uma frase que era do rodapé. Entregar markdown pela mesma URL elimina esse passo inteiro. O modelo recebe título, lista e tabela já delimitados, e gasta menos token para chegar ao conteúdo. O efeito aparece na qualidade da citação, não na posição do link azul.
Vale dizer o que isso não é. Não existe sinal de ranqueamento associado a servir markdown, e nenhum buscador declarou usar o formato como critério. Quem vender negociação de conteúdo como alavanca de posição está inventando. O que se compra aqui é precisão do que o assistente lê antes de resumir você, e isso importa porque a citação errada circula igual à certa.
Qual é a armadilha que quase ninguém documenta?
A chave de cache da Cloudflare não inclui o cabeçalho Accept, e a do cache de página da hospedagem também não. Chave customizada com Accept é recurso de plano Enterprise. O resultado é direto: com negociação ligada, o primeiro formato pedido naquela URL fica guardado, e o próximo visitante recebe o formato errado. Se um agente passar antes do seu leitor, o leitor recebe markdown cru no navegador.
Medi isso em produção em 07/09/2026, na mesma URL, alternando só o cabeçalho do pedido.
| Ordem dos pedidos | O que o navegador passou a receber | Data da medição | Fonte |
|---|---|---|---|
| Markdown primeiro | markdown, com a página quebrada para gente | 07/09/2026 | coleta própria em produção |
| HTML primeiro | HTML, e o agente nunca recebia markdown | 07/09/2026 | coleta própria em produção |
| Depois da correção | cada um recebe o seu, nas 3 chamadas seguidas | 07/09/2026 | coleta própria em produção |
O cabeçalho Vary resolve?
Não sozinho. Mandar Vary: Accept na origem é correto e barato, e ele instrui o cache a guardar uma cópia por formato pedido. O problema é que a Cloudflare não respeita esse cabeçalho por padrão, e o cache de página da hospedagem também não. Mande assim mesmo, para o proxy que respeitar, e não conte com ele como proteção. A correção que funcionou de verdade tem duas metades, e as duas precisam existir ao mesmo tempo para o teste passar.
A primeira metade é uma Cache Rule que desliga o cache quando o pedido é de markdown, casando em http.request.headers["accept"][0] contains "text/markdown". A segunda é Cache-Control: no-store, private na resposta do arquivo .md, aplicada na origem, para cobrir a camada que a regra da Cloudflare não alcança. Testei as duas separadas antes de juntar, e nenhuma delas sozinha segurou as três chamadas seguidas do teste.
Qual detalhe faz a regra funcionar ou não?
Em Cache Rules, quando duas regras casam com o mesmo pedido, vale a última, e não a primeira. Criar o bypass antes da regra de cache do site não adianta: a regra do site sobrescreve e o cf-cache-status volta como HIT. O bypass tem de ser a última da lista. Foi esse detalhe que custou horas, porque a configuração parecia certa e o comportamento continuava errado.
Como conferir que está certo?
A sequência abaixo revela o envenenamento, e ela tem de passar nas três chamadas, nessa ordem. Se a terceira devolver markdown, o cache está contaminado e o seu site está quebrado para leitor humano.
curl -sI -H 'Accept: text/html' https://exemplo.com/
curl -sI -H 'Accept: text/markdown' https://exemplo.com/
curl -sI -H 'Accept: text/html' https://exemplo.com/
Confira também que o arquivo .md não virou página indexável por acidente. Ele precisa ficar fora do sitemap, sem link apontando para ele no HTML, com X-Robots-Tag: noindex na resposta, e a URL terminada em .md deve responder 404 quando alguém digita o endereço direto. O conteúdo continua acessível pela negociação, que é o caminho pretendido. Sem esse cuidado você troca uma melhoria de ingestão por conteúdo duplicado, e esse é um negócio ruim.
O que fazer primeiro se o site é seu?
Comece pela geração do markdown a partir da fonte do artigo, e nunca da página já renderizada. Converter o HTML publicado traz header, CTA e rodapé junto, que é exatamente o que se queria remover. Depois confira a tabela: é ela, com número, data e fonte, que torna o texto citável, e é ela que mais quebra na conversão automática. Por último, transforme link relativo em absoluto, porque o agente lê o arquivo fora do contexto do site.


