O que um agente de IA vê de facto ao visitar o teu site

Abres a tua página inicial e vês um design: um menu, uma imagem grande, três colunas de texto, uma tabela de preços e um aviso de cookies que deixaste de reparar há meses.

Um agente abre esse mesmo URL e não vê nada disso. Recebe um fluxo de bytes, deita quase todos fora e entrega o que resta a um modelo com uma janela de contexto limitada. O que sobrevive a essa viagem é toda a base sobre a qual um assistente vai descrever a tua empresa.

Quase ninguém alguma vez olhou para isso. Por isso medimos.

A medição

A 31 de agosto de 2026 passámos doze páginas conhecidas pelo nosso motor: descarregar a página como faria um agente comum, extrair o conteúdo legível, convertê-lo para Markdown e contar tokens nas duas pontas com cl100k_base.

Página Enviado Chega ao modelo Resta
wordpress.org/about 56.663 tok 159 tok 0,3%
vercel.com/docs 278.962 tok 905 tok 0,3%
stripe.com/docs 376.509 tok 1.042 tok 0,3%
cloudflare.com/learning/… 95.028 tok 631 tok 0,7%
nodejs.org/en/about 117.729 tok 1.190 tok 1,0%
shopify.com/pricing 410.515 tok 2.479 tok 0,6%
notion.com/pricing 172.136 tok 2.805 tok 1,6%
slack.com/pricing 294.980 tok 5.718 tok 1,9%
developer.mozilla.org/…/HTTP 59.350 tok 3.059 tok 5,2%
react.dev/learn 91.899 tok 3.804 tok 4,1%
atlassian.com/software/jira/pricing 379.636 tok 1 tok 0,0%
agentready.md 13.188 tok 627 tok 4,8%

Nenhuma página entrega mais de 6% do que envia. A mediana fica abaixo de 1%.

Não é um escândalo. Quase todos esses bytes fazem um trabalho real — layout, estilos, analítica, interatividade — para quem chega com um navegador. O ponto é mais estreito: tudo isso é pago à entrada, e quase nada é aquilo que o agente veio buscar.

As quatro coisas que acontecem à tua página

Entre o pedido e o modelo, a tua página atravessa quatro portas. Cada uma deixa cair alguma coisa.

1. A descarga. O agente pede o URL. A maioria dos descarregadores de agentes não executa JavaScript: é lento, caro e abre superfície de ataque. Recebem portanto a resposta crua do teu servidor, não a página que um navegador monta.

2. A extração. Alguma coisa tem de decidir que parte desse HTML é o artigo e que parte é mobiliário. É o mesmo problema que o modo de leitura do Firefox resolve, com a mesma biblioteca que toda a gente usa. Menu, rodapé, aviso de cookies e barra lateral vão para o lixo. E também tudo o que o extrator não consiga distinguir de uma barra lateral.

3. A conversão. O que resta torna-se texto. Títulos, listas, tabelas, links e blocos de código sobrevivem como estrutura. Nomes de classe, <div> de embrulho, SVG em linha e atributos data- não.

4. A janela de contexto. O que restou compete agora por espaço com a pergunta do utilizador, o prompt de sistema e talvez outras nove páginas.

O teu conteúdo só existe, para o assistente, se atravessar as quatro.

Como é quando corre bem

vercel.com/docs reduz 278.962 tokens a 905, e esses 905 começam assim:

## Ship anything with Vercel

Deploy your app on Vercel in three steps: install the CLI, add agent
support if you need it…

É uma resposta limpa a «o que faz a Vercel». Um modelo que a leia pode citá-la, resumi-la e atribuí-la. Os 99,7% que caíram não lhe custaram nada que quisesse.

Como é quando corre mal

atlassian.com/software/jira/pricing envia 1,37 MB e entrega um token.

A página é uma casca. O HTML contém <div id="wac-root"></div> e depois cerca de um megabyte de estado de aplicação embebido — os preços, os nomes dos planos, as listas de funcionalidades, tudo dentro de um <script> em JSON, à espera de que o JavaScript construa a página. O nosso extrator retirou obedientemente 1,1 milhões de caracteres de window.SSR_detailMetrics=Object.freeze({"getFeatureGateValues":… e, retirados os scripts, o que restava era uma única mudança de linha.

Ou seja: pergunta a um assistente quanto custa o Jira e nada nessa página pode ser a fonte da resposta. Não porque a Atlassian tenha bloqueado alguém — não bloqueou — mas porque a página não tem texto até um navegador a executar.

Descarrega esse mesmo URL com um navegador headless e dá 3.048 tokens que começam por Transparent pricing for every team. O conteúdo existe. Só não está na resposta. Se um agente executa ou não um navegador, e o que isso lhe custa, é toda a diferença.

stripe.com/docs é uma versão mais suave da mesma forma: entram 1,28 MB e o conteúdo extraído são 1.057 caracteres que começam por um exemplo de linha de comandos em vez de uma descrição da Stripe.

O que esperávamos encontrar e não estava lá

Assumíamos que alguns destes sites estariam a barrar agentes na periferia. Sondámos cada um duas vezes — uma como navegador comum, outra identificando-nos como OAI-SearchBot — e comparámos.

Nenhum dos doze tratou o bot de forma diferente. O mesmo código de estado nos dois casos, através de Cloudflare, Vercel e CloudFront. (cloudflare.com/learning respondeu 403 às duas sondas, o que é um muro, mas não específico para bots.)

O bloqueio é a falha de que toda a gente fala. Nesta amostra não aconteceu uma única vez. O que aconteceu foi mais silencioso: a porta estava aberta e a sala vazia.

Olha para a tua própria página

Dois comandos. O que envias:

curl -s https://oteusite.pt/pagina | wc -c

Depois lê o que sobrevive à extração: cola o URL no analisador e olha para o painel de Markdown, não para a nota. A pergunta não é se o número é grande. É se o texto que estás a ler é o texto que quererias que um assistente citasse sobre ti.

Quase toda a gente se surpreende duas vezes: com o pouco que lá está, e com as partes que chegaram.

A versão curta

  • Um agente vê o teu HTML cru, normalmente sem executar JavaScript, e fica com cerca de 1%.
  • Se o teu conteúdo é montado por JavaScript, esse 1% pode ser exatamente nada.
  • Ser bloqueado é raro. Estar vazio é comum.
  • A solução não é enviar menos marcação. É garantir que as palavras estão na resposta.

Analisa o teu site · Os assistentes de IA conseguem ler-te? · Servir Markdown aos agentes