Por que seu site é invisível para IAs
Imagine que sua empresa é um especialista brilhante trancado em uma sala sem janelas. Ele sabe tudo sobre o mercado, tem credenciais impecáveis e entrega resultados excepcionais. Mas ninguém o encontra porque a porta não tem placa, o prédio não tem endereço e o nome dele não consta em nenhum diretório. É exatamente isso que acontece quando seu site não possui dados estruturados e não oferece um arquivo llms.txt.
Em 2026, motores de IA generativa como ChatGPT, Gemini, Claude e Perplexity processam bilhões de páginas para decidir quem citar em suas respostas. Mas eles não leem páginas como humanos. Eles processam sinais estruturados: metadados, grafos semânticos, relações entre entidades e arquivos de instrução explícita. Um site sem Schema JSON-LD é como um currículo sem nome e sem cargo — a IA simplesmente não consegue determinar quem você é, o que faz ou por que deveria citá-lo.
O problema é quantificável. Segundo dados da Brasil GEO, menos de 8% dos sites corporativos brasileiros implementam mais de 5 tipos de Schema. Desses, menos de 2% possuem um arquivo llms.txt. Isso significa que 98% das empresas brasileiras estão essencialmente mudas para agentes de IA — presentes na web, mas ausentes das respostas que seus clientes mais consultam.
A boa notícia é que resolver esse problema não exige reescrever seu site. Exige estruturar a informação que já existe de forma que as IAs consigam processar, comparar e citar. Este guia mostra exatamente como fazer isso, com exemplos reais da implementação que fizemos em alexandrecaramaschi.com.
Schema JSON-LD: a carteira de identidade do seu site
Schema JSON-LD (JavaScript Object Notation for Linked Data) é o formato recomendado pelo Google e adotado por todos os grandes motores de IA para descrever entidades na web. Pense nele como a carteira de identidade digital da sua marca: nome, cargo, empresa, credenciais, serviços, publicações — tudo em um formato que máquinas entendem nativamente.
Na implementação de alexandrecaramaschi.com, utilizamos 30 tipos de Schema organizados em um único @graph — um grafo semântico que conecta todas as entidades do site em uma estrutura coerente. Os tipos incluem: Person, Organization, WebSite, WebPage, Article, FAQPage, Service, Offer, BreadcrumbList, ItemList, Event, VideoObject, SpeakableSpecification, HowTo, Course, Review, AggregateRating, ContactPoint, PostalAddress, GeoCoordinates, entre outros.
O conceito de @graph é fundamental e pouco compreendido. Em vez de inserir blocos de JSON-LD separados em cada página (prática comum e subótima), o @graph agrupa todas as entidades em um único objeto estruturado com referências cruzadas via @id. Isso permite que a IA entenda que o Alexandre Caramaschi que escreveu o artigo é o mesmo que fundou a Brasil GEO, que é a mesma empresa que oferece o serviço de Sprint GEO. Sem @graph, essas conexões se perdem.
A diferença prática é mensurável. Antes da implementação do @graph unificado, a entidade "Alexandre Caramaschi" aparecia de forma fragmentada nas respostas de IA — às vezes como autor, às vezes como CEO, raramente com a conexão completa. Após a implementação, as respostas passaram a incluir o perfil completo: CEO da Brasil GEO, ex-CMO da Semantix (Nasdaq), cofundador da AI Brasil. A consistência de entidade subiu porque a IA passou a ter uma fonte estruturada e inequívoca.
llms.txt: o currículo para IAs
Se o Schema JSON-LD é a carteira de identidade, o llms.txt é o currículo completo — um arquivo de texto puro, hospedado na raiz do site, que descreve de forma estruturada tudo o que uma IA precisa saber sobre você, sua empresa e seus serviços. O conceito foi proposto como evolução do robots.txt: enquanto o robots.txt diz ao crawler o que ele pode acessar, o llms.txt diz ao modelo de linguagem o que ele deve saber.
A implementação de alexandrecaramaschi.com possui 258 linhas e 23KB no arquivo llms.txt principal, cobrindo: identidade do profissional, credenciais verificáveis, serviços oferecidos, publicações, metodologias proprietárias (Sprint GEO, Prompt Bank), métricas de resultado e links para fontes externas. Além disso, mantemos um llms-full.txt de 42KB com informação expandida, incluindo detalhes técnicos de implementação, estudos de caso e dados de performance.
A estrutura do llms.txt segue um formato específico que maximiza a compreensão por IAs. Cada seção começa com um cabeçalho em Markdown (# ou ##), seguido de informação factual em bullet points. Evitamos linguagem promocional — IAs descartam superlativos e claims não verificáveis. O que funciona é informação factual, datada e referenciável: "CEO da Brasil GEO desde 2025", "ex-CMO da Semantix, empresa listada na Nasdaq", "cofundador da AI Brasil, comunidade com 15.000+ membros".
O arquivo é servido por um Cloudflare Worker que garante headers corretos (Content-Type: text/plain; charset=utf-8), cache de 1 hora e disponibilidade global. Isso é importante porque IAs fazem requests diretos ao arquivo — se ele retornar 404 ou tiver encoding incorreto, a informação simplesmente não é processada.
Um detalhe técnico relevante: mantemos dois arquivos porque diferentes IAs têm diferentes janelas de contexto. O llms.txt principal é compacto o suficiente para ser processado integralmente por qualquer modelo. O llms-full.txt atende modelos com contexto expandido (como Claude com 200K tokens) que conseguem processar informação mais detalhada.
Implementação prática: Next.js e Cloudflare Workers
A implementação técnica divide-se em dois componentes: o componente JsonLd.tsx no Next.js para Schema JSON-LD, e o Cloudflare Worker para servir os arquivos llms.txt.
O componente JsonLd.tsx é renderizado no <head> via layout.tsx — nunca em page.tsx, para evitar duplicação por hydration no React 19. Ele recebe as props da página (tipo, título, descrição, breadcrumbs) e gera o bloco <script type="application/ld+json"> com o @graph completo. O componente é tipado com TypeScript e validado contra o vocabulário Schema.org, garantindo que qualquer erro de estrutura seja capturado em build time.
A arquitetura do @graph segue um padrão de referências cruzadas via @id. Por exemplo, o Person com @id: "https://alexandrecaramaschi.com/#person" é referenciado como author em cada Article, como founder na Organization, e como instructor nos Course. Isso cria um grafo navegável que IAs conseguem percorrer para construir um perfil completo da entidade.
Para os arquivos llms.txt, utilizamos Cloudflare Workers que servem o conteúdo com performance global. O Worker intercepta requests para /llms.txt e /llms-full.txt, retorna o conteúdo com headers otimizados e cacheia na edge. A vantagem sobre servir como arquivo estático no Next.js é controle total sobre headers, redirects e analytics — conseguimos monitorar quantas IAs estão consumindo o arquivo e com que frequência.
O deploy é automatizado: qualquer alteração no conteúdo dos arquivos llms.txt dispara um workflow que atualiza o Worker e invalida o cache. Isso garante que a informação servida às IAs está sempre atualizada — um requisito crítico, já que informação desatualizada pode gerar citações incorretas que prejudicam a credibilidade da marca.
Resultados verificáveis
Toda implementação de GEO precisa ser mensurável. Listar o que fizemos sem mostrar resultados seria marketing vazio. Aqui estão os dados verificáveis da implementação de Schema JSON-LD e llms.txt em alexandrecaramaschi.com.
Entity consistency: Mantemos 44+ verificações automatizadas de consistência de entidade que rodam a cada deploy. Essas verificações confirmam que o nome, cargo, credenciais e afiliações de Alexandre Caramaschi são idênticos no Schema JSON-LD, no llms.txt, no conteúdo visível do site e nas fontes externas referenciadas. Qualquer inconsistência bloqueia o deploy.
Presença em bases de conhecimento: A entidade "Alexandre Caramaschi" está registrada no Wikidata como Q138755507, e a "Brasil GEO" como Q138755989. Essas entradas no Wikidata são referenciadas no Schema via sameAs e no llms.txt via links diretos. Isso é relevante porque modelos de linguagem usam o Wikidata como fonte autoritativa para validar entidades.
Infraestrutura open-source: Toda a implementação é transparente e verificável em 6 repositórios públicos no GitHub, incluindo o entity-consistency-playbook, o geo-taxonomy e os templates de llms.txt. O geo-orchestrator — nosso pipeline multi-LLM que utiliza 5 modelos (Perplexity para pesquisa, GPT-4o para redação, Gemini para análise, Groq para classificação e Claude para revisão) — é igualmente público e documentado.
Esses resultados não são projeções ou estimativas. São dados verificáveis por qualquer pessoa que acesse as URLs, repositórios e registros Wikidata mencionados. Essa transparência é, em si, um princípio de GEO: a citabilidade depende da verificabilidade.
Guia passo a passo: 5 ações para começar hoje
Implementar Schema JSON-LD e llms.txt não precisa ser um projeto de meses. Aqui está um roteiro em 5 passos que qualquer equipe técnica consegue executar em uma semana.
Passo 1 — Audite sua identidade digital
Antes de implementar qualquer coisa, verifique como sua marca aparece hoje. Pergunte ao ChatGPT, Gemini e Claude: "Quem é [sua marca]?" e "O que [sua marca] faz?". Documente as respostas. Se a IA não sabe quem você é, ou descreve sua empresa de forma incorreta, você tem um problema de entity consistency que precisa ser resolvido antes de qualquer otimização técnica.
Passo 2 — Implemente os 5 tipos essenciais de Schema
Comece com Person ou Organization (identidade), WebSite (raiz), Service (oferta), Article (conteúdo) e FAQPage (perguntas frequentes). Use o formato @graph para conectá-los via @id. Valide com o Schema Markup Validator e com o Rich Results Test do Google.
Passo 3 — Crie seu llms.txt
Escreva um arquivo de texto puro com as informações essenciais sobre sua marca: nome, descrição factual, serviços, credenciais verificáveis, links para perfis oficiais (LinkedIn, GitHub, Wikidata). Mantenha o tom factual — sem superlativos. Hospede em /llms.txt na raiz do seu domínio com Content-Type: text/plain; charset=utf-8.
Passo 4 — Conecte fontes externas via sameAs
No seu Schema JSON-LD, adicione o campo sameAs com links para todas as presenças verificáveis da sua marca: LinkedIn, GitHub, Wikidata, Crunchbase, perfis em diretórios do setor. Quanto mais fontes externas confirmarem a mesma informação, maior a confiança da IA na sua entidade. Se sua empresa ou seus executivos ainda não têm entrada no Wikidata, considere criar uma — é gratuito e segue critérios de notabilidade verificáveis.
Passo 5 — Monitore e itere
Configure um Prompt Bank com 30 a 50 perguntas que seus clientes fariam a uma IA sobre sua categoria. Execute essas perguntas mensalmente no ChatGPT, Gemini, Claude e Perplexity. Documente quem é citado, como é descrito e com que frequência. Use esses dados para ajustar seu Schema, seu llms.txt e seu conteúdo. GEO não é um projeto pontual — é uma disciplina contínua de visibilidade algorítmica.