Metodologia
Cada verificação, e por que vale o que vale
Uma pontuação que você não pode auditar é um número que alguém inventou. Esta página é gerada diretamente a partir do conjunto de regras que roda contra o seu site, então documentação e comportamento não conseguem se separar.
O formato
23 verificações, 100 pontos, cinco pilares, dois eixos. Cada verificação devolve aprovado, parcial ou reprovado, e vale pontos cheios, metade ou nenhum. As verificações que não se aplicam ao seu site são excluídas em vez de contarem contra você: isso encolhe o denominador em vez de te punir por uma categoria em que você nem está.
Por que um número se parte em dois na hora
Uma pontuação única esconde justamente o que você precisa saber. “O site funciona mas não adotou nada” e “as ferramentas estão registradas mas sem JavaScript a página está vazia” são problemas opostos com soluções opostas — e um único número relata os dois de forma idêntica. Por isso a pontuação aparece junto com suas duas metades.
| Eixo | Pontos | Pergunta | Pilares |
|---|---|---|---|
| Aptidão | 65 | O site funciona hoje para agentes? | Acesso para agentes · Legibilidade para máquinas · Capacidade de ação |
| Adoption | 35 | Quais protocolos de agente estão implantados? | Implementação do WebMCP · Interoperabilidade e comércio |
O WebMCP é o tema deste site e segue sendo o maior pilar isolado. Não é a pontuação inteira, porque a adoção fora de demonstrações continua perto de zero: uma pontuação que medisse só WebMCP daria zero a quase todos os sites da web — verdadeiro, inútil, e sem dizer a ninguém o que fazer na segunda-feira. Os outros 75 pontos medem se um agente consegue fazer alguma coisa com você nesse meio-tempo.
Notas
| Nota | Pontuação | Significado |
|---|---|---|
| A | 90–100 | Agentes concluem tarefas de forma confiável |
| B | 75–89 | Utilizável, com atrito |
| C | 55–74 | Legível, mas não operável |
| D | 35–54 | Agentes falham nos caminhos que importam |
| F | 0–34 | Praticamente inutilizável para agentes |
Pontuação condicional
Um escritório de advocacia sem carrinho não é pior para agentes por não ter meio de pagamento. Quando uma verificação não se aplica, ela é retirada do denominador e aparece no seu relatório de forma aberta e com o motivo. Podem ser excluídas: os meios de pagamento (sem sinais de comércio), a autenticação para agentes (sem capacidade voltada a máquinas que precise se autenticar), as verificações de formulário e de erro (sem formulário entregue) e as anotações declarativas (sem formulários para anotar).
O oposto é igualmente deliberado: se um site não registrou ferramentas WebMCP, as quatro verificações que dependem disso são reprovadas em vez de excluídas. Uma adoção de zero é uma afirmação verdadeira sobre o site, não uma pergunta inaplicável — e a apresentação em dois eixos é o que impede que isso seja lido como um veredicto sobre o site inteiro.
O que a análise não consegue ver
Dizer isto com clareza importa mais do que a própria pontuação.
- Uma página, não um rastreamento. Buscamos o endereço que você informa, mais robots.txt, sitemap, llms.txt e uma série de caminhos conhecidos. Um problema no seu checkout não vai aparecer na análise da sua home.
- Sem JavaScript. É deliberado — é assim que a maioria dos rastreadores de agentes se comporta — mas significa que uma ferramenta registrada em tempo de execução por um bundle que não conseguimos ler pode passar batido. Varremos até dez bundles da mesma origem para reduzir isso.
- Sem chamada real de ferramentas. Lemos o que está registrado; não chamamos. Uma ferramenta que existe e falha quando chamada pontua igual a uma que funciona.
- Sem visão autenticada. Ferramentas condicionais que só aparecem depois do login são invisíveis para nós.
- Detecção, não julgamento. Vemos que existe uma descrição. Se ela é uma boa descrição, quem decide ainda é uma pessoa.
As 23 verificações
Cada verificação, na ordem em que é pontuada, com os pontos que carrega e a pergunta exata que faz.
Acesso para agentes
20 pontosEixo AptidãoAntes que qualquer outra coisa possa ser julgada, a requisição precisa dar certo. Este pilar cobre permissões de rastreamento, defesa contra bots, muros de consentimento e se a página entrega o conteúdo sem um motor de JavaScript.
O robots.txt deixa os rastreadores de IA entrarem
5 ptsO robots.txt permite que os rastreadores por trás das respostas de IA leiam a página?
Assistentes que citam a web buscam conteúdo por meio de agentes com nome próprio. Uma regra geral escrita anos atrás para buscadores pode excluir todos eles em silêncio, e nada nas suas métricas vai te avisar.
Se falharPublique um robots.txt que nomeie os agentes de IA que você quer e libere os caminhos que você quer ver citados. Bloquear é uma escolha legítima — mas que seja uma decisão, não um descuido.
Artigo completo (em inglês): robots.txt for AI agentsOpenAI — GPTBotGoogle — Google-ExtendedRFC 9309 — Robots Exclusion Protocol
As identificações de agente são realmente atendidas
5 ptsO servidor responde quando a requisição traz a identificação de um agente?
O robots.txt é um pedido; a defesa contra bots é a execução. Uma regra de WAF ou um limitador de taxa pode devolver 403 justamente para os clientes que você queria receber, e aí a permissão que você escreveu não vale nada.
Se falharColoque as identificações de agente na lista de permitidos da sua defesa contra bots, ou verifique-as por DNS reverso em vez de bloquear pela cadeia de texto. Depois, teste de novo.
Nenhuma barreira na frente do conteúdo
4 ptsO conteúdo chega sem um muro de consentimento ou um desafio anti-bot no caminho?
Um agente não tem mãos. Uma janela que ele não consegue fechar, ou uma página de verificação que ele não consegue resolver, encerra a sessão na primeira requisição — e a página por trás poderia muito bem não existir.
Se falharEntregue o conteúdo já na primeira resposta e deixe a camada de consentimento aparecer por cima. Nunca coloque o próprio documento atrás de uma verificação para um rastreador que se comporta bem.
O conteúdo sobrevive sem JavaScript
6 ptsExiste texto de verdade e um título no HTML bruto, antes de qualquer script rodar?
Esta é, de longe, a falha mais comum na web agêntica. A maioria dos rastreadores por trás das respostas de IA não executa JavaScript, e um agente que recebe uma casca vazia não tem sobre o que raciocinar — por melhor que a página fique no navegador.
Se falharRenderize a página no servidor ou pré-gere na build. A meta é um <h1> de verdade e algumas centenas de palavras do conteúdo real já na primeira resposta.
Artigo completo (em inglês): Content that survives without JavaScriptweb.dev — rendering on the web
Legibilidade para máquinas
20 pontosEixo AptidãoEstrutura semântica, dados estruturados, negociação de conteúdo e os arquivos que os agentes procuram quando querem um resumo do seu site em vez de uma renderização dele.
Marcos semânticos e ordem dos títulos
4 ptsExistem landmarks e uma hierarquia de títulos que não pula níveis?
Landmarks e ordem de títulos são o único jeito de uma máquina separar o artigo da mobília. Sem eles, um resumidor cita o seu aviso de cookies com a mesma confiança que a descrição do seu produto.
Se falharEnvolva o conteúdo em <main>, use <header>, <nav> e <footer> para a moldura, mantenha exatamente um <h1>, e nunca pule de h2 para h4.
Dados estruturados válidos
6 ptsExiste JSON-LD analisável, e o tipo dele corresponde ao que a página é?
Dados estruturados são o único lugar onde você afirma fatos em vez de sugeri-los: isto é um preço, isto é um horário, este é o autor. Agentes e buscadores levam ao pé da letra, e é exatamente por isso que precisa ser analisável sem erro.
Se falharEmita JSON-LD em um bloco <script type="application/ld+json"> com um tipo que corresponda à página: Product e Offer para um produto, Service para uma página de serviço, FAQPage para perguntas, LocalBusiness para um endereço.
Artigo completo (em inglês): Structured data: the one place you state factsschema.orgGoogle — structured data general guidelines
Negociação de conteúdo em Markdown
4 ptsA página devolve Markdown quando um cliente pede?
Um agente que quer o seu texto não quer o seu layout. Responder a `Accept: text/markdown` com prosa limpa reduz tokens, elimina o ruído de navegação e deixa claro qual parte da página é citável.
Se falharSirva uma representação em Markdown na mesma URL, varie pelo cabeçalho Accept e mantenha as duas em sincronia. Uma rota irmã .md é um segundo lugar aceitável.
Arquivo llms.txt
3 ptsExiste um arquivo curado que diga a um agente o que é este site e onde olhar?
Um rastreamento dá tudo ao agente; o llms.txt dá a parte que você mesmo apontaria. Custa pouco publicar e é o único lugar em que você controla o resumo, em vez de torcer para que ele seja deduzido.
Se falharPublique /llms.txt com um parágrafo de descrição e, abaixo, listas com links das suas páginas canônicas agrupadas por finalidade. Lembre-se: é uma convenção, não um padrão, e a Busca do Google ignora.
Artigo completo (em inglês): llms.txt: what it is, and what it is notllmstxt.org
Sitemap e URL canônica
3 ptsExiste um sitemap válido, e a página declara qual é o endereço verdadeiro?
Agentes deduplicam pela URL canônica. Sem ela, a mesma página alcançada por três caminhos vira três fontes que podem se contradizer, e uma citação pode apontar para a cópia que você não queria indexada.
Se falharPublique um sitemap.xml válido, referencie-o no robots.txt, e coloque um <link rel="canonical"> autorreferente em cada página.
Capacidade de ação
25 pontosEixo AptidãoO pilar mais pesado, porque é aqui que está a receita. Formulários que um agente consegue preencher, controles que ele consegue nomear, nenhuma barreira anti-bot no caminho da conversão, e erros que ele consegue ler.
Existe uma ação principal localizável
5 ptsHá algo nesta página que um agente pudesse concluir em nome do visitante?
Aptidão para agentes não é exercício de leitura. Se a página não traz formulário, nem busca, nem caminho para um carrinho ou um agendamento, não há o que concluir — e a visita termina em resumo em vez de conversão.
Se falharFaça a ação principal fazer parte do HTML entregue: um formulário de verdade, um campo de busca, ou um link para a rota de agendamento ou carrinho. Um botão que só existe depois da hidratação não conta.
Formulários que um agente consegue preencher
7 ptsOs campos têm rótulos, nomes, tipos e indicações de autopreenchimento?
Um agente preenche um formulário lendo-o. Um campo sem rótulo e com nome tipo `field_7` é chute; o mesmo campo com rótulo e `autocomplete="email"` é certeza. Esta é a maior melhoria pelo menor custo que a maioria dos sites pode fazer.
Se falharDê a cada campo um <label for>, um nome com sentido, o tipo de input correto e uma indicação de autopreenchimento do padrão HTML.
Condicional — é excluída quando não se aplica
Artigo completo (em inglês): Forms an agent can actually fillHTML standard — autofill tokens
Os controles têm nomes acessíveis
5 ptsTodo controle interativo pode ser identificado pelo nome em vez da posição?
Uma <div> com handler de clique é invisível para tudo que não renderiza nem passa o mouse por cima. Agentes acessam controles do mesmo jeito que a tecnologia assistiva — por papel e nome — então um controle sem nome é um controle inalcançável.
Se falharUse <button> e <a href> para ações, e dê a cada um texto ou um aria-label. Deixe a div com onclick para a decoração.
Condicional — é excluída quando não se aplica
Sem desafio anti-bot no caminho da conversão
5 ptsA ação principal está livre de CAPTCHA ou verificação anti-bot?
Um CAPTCHA é a declaração de que visitantes automatizados não são bem-vindos. Era uma posição razoável quando automação significava scrapers; fica cara quando significa o assistente do seu cliente tentando comprar.
Se falharTire a defesa anti-bot do caminho da conversão: limitação de taxa, campos-armadilha e pontuação no servidor barram o abuso sem encerrar a sessão de um agente legítimo. Se um desafio for inevitável, mantenha-o fora do primeiro passo.
Erros que um agente consegue ler
3 ptsOs estados de validação são expressos na marcação e não só por cor?
Quando um envio falha, o agente precisa saber qual campo e por quê. Uma borda vermelha não comunica nada; aria-invalid e uma mensagem ligada por described-by permitem que ele corrija a entrada e tente de novo, em vez de abandonar a tarefa.
Se falharColoque aria-invalid no campo com problema, ligue a mensagem com aria-describedby, e mantenha o texto junto ao campo, não apenas em um aviso flutuante.
Condicional — é excluída quando não se aplica
Implementação do WebMCP
25 pontosEixo AdoçãoO núcleo do padrão: ferramentas nomeadas, com esquemas tipados e anotações honestas, registradas em document.modelContext — para que um agente pare de adivinhar seu DOM e comece a chamar suas funções.
O document.modelContext está em uso
6 ptsA página registra alguma ferramenta WebMCP?
Esta é a diferença entre um agente deduzir sua interface e chamá-la. Ferramentas registradas transformam uma página em uma API pequena e documentada que o próprio assistente do visitante consegue operar — sem você hospedar servidor nem distribuir chaves.
Se falharRegistre suas duas ou três ações mais valiosas como ferramentas com document.modelContext.registerTool. Comece pelas de somente leitura. O polyfill permite publicar antes de o suporte dos navegadores ser universal.
Artigo completo (em inglês): What WebMCP is, and what it is notWebMCP specification (W3C WebML CG)Explainer repositoryChrome for Developers — WebMCP
Ferramentas declarativas nos formulários
4 ptsOs formulários existentes estão anotados para o navegador derivar ferramentas deles?
O formulário declarativo é a entrada mais barata no padrão: o navegador deriva o esquema de campos que você já tem, então um formulário de contato ou de busca passa a ser chamável sem JavaScript novo.
Se falharAnote os formulários que você já publica. Como os nomes dos atributos ainda estão marcados como TODO no explainer, confira com a especificação atual antes de implantar amplamente.
Condicional — é excluída quando não se aplica
Artigo completo (em inglês): The declarative API: tools from forms you already haveExplainer — declarative API
Nomes e descrições das ferramentas
5 ptsAs ferramentas estão nomeadas de forma válida e descritas bem o bastante para escolher entre elas?
A descrição é toda a interface. Um agente escolhe uma ferramenta lendo-a, então um nome fora do conjunto de caracteres permitido falha já no registro, e uma descrição de quatro palavras gera chamadas confiantes para a função errada.
Se falharMantenha os nomes entre 1 e 128 caracteres de A–Z, a–z, 0–9, sublinhado, hífen e ponto. Escreva descrições que digam o que a ferramenta retorna e quando preferi-la. Fique bem abaixo de cinquenta ferramentas por página.
Esquemas de entrada tipados
5 ptsCada ferramenta declara um JSON Schema tipado com propriedades descritas?
Sem esquema, o agente manda o que inventou. Com esquema, manda um objeto validado — e um campo obrigatório com uma linha de descrição é a diferença entre uma chamada que funciona e três tentativas.
Se falharDê a cada ferramenta um inputSchema com propriedades tipadas, uma descrição por propriedade e uma lista required explícita.
Anotações honestas nas ferramentas
5 ptsAs ferramentas de somente leitura estão marcadas como tal, e o que altera está protegido por confirmação?
As anotações são como um agente decide o que pode fazer sem perguntar. Marcar seus caminhos de leitura com readOnlyHint é o que os torna seguros de chamar livremente — e o próprio modelo de ameaças da especificação é a razão de tudo que escreve dever parar diante de uma pessoa.
Se falharPonha readOnlyHint em toda ferramenta que apenas lê. Ponha untrustedContentHint onde a ferramenta devolve texto escrito por outros usuários. Coloque uma etapa de confirmação antes de tudo que gasta dinheiro ou muda estado.
Artigo completo (em inglês): The WebMCP security model, and the parts that are still openSpecification — tool annotations
Interoperabilidade e comércio
10 pontosEixo AdoçãoDocumentos de descoberta, autenticação para máquinas, identidade de bots e — para lojas — os meios de pagamento que um agente precisa para concluir uma compra. O que não se aplica ao seu site é excluído em vez de contar contra você.
Documentos de descoberta
3 ptsOutro sistema consegue encontrar suas capacidades sem uma pessoa ler sua documentação?
Ferramentas WebMCP só existem enquanto uma página está aberta. Um documento de descoberta é como um agente descobre o que você oferece antes de visitar — e como suas capacidades aparecem em um diretório em vez de serem achadas por acaso.
Se falharPublique um cartão de servidor em /.well-known/mcp.json, ou um documento OpenAPI, e garanta que o robots.txt não bloqueie o caminho para o qual ele aponta.
Artigo completo (em inglês): Discovery documents, and the robots.txt trapModel Context ProtocolRFC 9727 — API Catalog
Autenticação para agentes
2 ptsExiste um jeito documentado de um agente se autenticar?
Dentro da página, a sessão do navegador já carrega o login, e essa é a vantagem silenciosa do WebMCP. Tudo fora da página ainda precisa de um caminho declarado — senão integradores adivinham, e adivinhar significa credenciais em lugares que você não previu.
Se falharPublique metadados de descoberta OAuth, ou um auth.md descrevendo como clientes automatizados obtêm acesso.
Condicional — é excluída quando não se aplica
RFC 8414 — OAuth authorization server metadataRFC 9728 — OAuth protected resource metadata
Meios de pagamento para agentes
3 ptsUm agente consegue concluir uma compra sem uma pessoa no teclado?
Uma loja que um agente consegue percorrer mas não pagar para um passo antes do objetivo. Os meios são novos e escolher um é uma decisão de verdade, mas as lojas que saírem na frente serão aquelas em que agentes realmente conseguem comprar.
Se falharAvalie x402, o Agentic Commerce Protocol e o Universal Commerce Protocol junto ao seu provedor de pagamentos, e publique depois o documento de descoberta do que você adotar.
Condicional — é excluída quando não se aplica
Identidade de bots e sinais de uso
2 ptsVocê consegue distinguir um agente legítimo de um impostor, e declarou suas condições?
Assim que agentes passam a transacionar, cadeias de identificação deixam de bastar — qualquer um pode alegar ser um. Requisições assinadas permitem receber os verdadeiros, e sinais de conteúdo permitem declarar para que seu texto pode ser usado sem bloqueá-lo por completo.
Se falharPublique um diretório de assinaturas conforme o Web Bot Auth, e expresse as condições de uso com sinais de conteúdo no robots.txt em vez de um disallow geral.
Rode contra o seu próprio site
Cada achado mostra o cabeçalho, a contagem ou o caminho em que se baseia — para você verificar em vez de acreditar.
Analisar um site →