Pesquisa por IA
Um assistente que responde "o que é X", "preço do X" ou "melhor ferramenta para Y" busca algumas páginas, extrai frases e linhas de tabela, e as cita. Se um fato não está na página como texto simples, o assistente chuta ou cita quem o escreveu. O trabalho: tornar o produto fácil de descrever corretamente a partir de uma única busca.
Um princípio percorre cada etapa: escreva cada fato uma vez e renderize-o em todos os lugares. A definição, status (beta, aberto para inscrição, geralmente disponível), preços, plataformas suportadas e URLs principais residem em um único arquivo fonte; páginas, llms.txt e dados estruturados leem dele. Fatos copiados manualmente divergem.
Fluxo de trabalho
1. Escreva a ficha de fatos
Crie content/facts.ts (ou JSON/YAML) com: nome e nomes alternativos, a definição em uma frase, para quem é, status, planos e preços, plataformas ou integrações, URLs de páginas principais e perfis oficiais (GitHub, X, LinkedIn, Product Hunt). Verifique cada item no produto real antes de escrever.
2. Publique /llms.txt
Siga llmstxt.org: um H1 com o nome, um resumo em blockquote, alguns fatos simples, depois seções H2 de links escritas como - [Título](url): o que cobre. Uma seção intitulada Optional marca links que um assistente pode ignorar.
# Acme AI
> Acme AI é uma ferramenta de conciliação de faturas que reconcilia pagamentos do Stripe com depósitos bancários para pequenas equipes financeiras. Funciona no navegador e se conecta ao Stripe e Plaid.
- Para quem é: líderes financeiros em empresas com 1 a 50 pessoas que conciliam pagamentos manualmente.
- Status: aberto para inscrição (desde novembro de 2026).
- Preços (https://acme.example/pricing): Grátis, $0, até 50 faturas por mês; Pro, $29/mês, faturas ilimitadas; Team, $79/mês, até 10 assentos. Preços em USD.
- Não confundir com: Acme Anvil, uma empresa de hardware não relacionada.
## Páginas principais
- [Preços](https://acme.example/pricing): planos, limites e o que está incluído.
- [Acme AI vs Concorrente](https://acme.example/vs/concorrente): comparação de funcionalidades e preços, verificado em 2026-11-06.
## FAQ
- Acme AI é gratuito? Sim, até 50 faturas por mês. Pro e Team são pagos.
## Opcional
- [Blog](https://acme.example/blog): atualizações do produto e guias.
Gere-o a partir da ficha de fatos e metadados da página (um manipulador de rota ou script de build) para que uma nova página apareça sem edições manuais. Sirva-o com status 200, como text/plain ou text/markdown; charset=utf-8, sem login, redirecionamento ou JavaScript. Verifique:
curl -sI https://acme.example/llms.txt | head -5 # 200 e um tipo de conteúdo texto
curl -s https://acme.example/llms.txt | head -30
3. Opcionalmente adicione /llms-full.txt
O texto Markdown completo das páginas que você mais deseja que sejam citadas (produto, preços, comparações, documentação), cada uma sob seu próprio # Título com uma linha Fonte: <url>. Gere no momento da build. Deixe de fora o arquivo do blog e qualquer coisa desatualizada.
4. Link para ele
Coloque um link simples llms.txt no rodapé e, opcionalmente, <link rel="alternate" type="text/markdown" href="/llms.txt"> no <head>. Um arquivo para o qual nada linka é encontrado apenas por crawlers que adivinham o caminho.
5. Permita crawlers de IA (robots.txt e CDN)
| User-agent | Proprietário | Usado para |
|---|---|---|
| OAI-SearchBot | OpenAI | Índice de pesquisa do ChatGPT |
| ChatGPT-User | OpenAI | Buscar uma página que um usuário perguntou |
| GPTBot | OpenAI | Treinamento de modelo |
| Claude-SearchBot / Claude-User / ClaudeBot | Anthropic | Índice de pesquisa / buscas de usuário / treinamento |
| PerplexityBot / Perplexity-User | Perplexity | Índice de pesquisa / buscas de usuário |
| Google-Extended | Token para treinamento e fundamentação do Gemini; não afeta a Pesquisa Google ou AI Overviews | |
| Bingbot | Microsoft | Índice do Bing, do qual as respostas do Copilot se originam |
Os agentes de busca e busca de usuário decidem se você pode ser citado. Agentes de treinamento são uma escolha de negócio; um produto que deseja ser recomendado geralmente os permite também.
User-agent: *
Allow: /
Disallow: /api/
Disallow: /app/
User-agent: OAI-SearchBot
User-agent: ChatGPT-User
User-agent: GPTBot
User-agent: Claude-SearchBot
User-agent: Claude-User
User-agent: ClaudeBot
User-agent: PerplexityBot
User-agent: Perplexity-User
User-agent: Google-Extended
Allow: /
Disallow: /api/
Disallow: /app/
Sitemap: https://acme.example/sitemap.xml
Um crawler obedece apenas ao grupo que o nomeia, portanto um grupo nomeado deve repetir cada Disallow, ou então abrirá seus caminhos privados. robots.txt também não pode substituir a CDN: algumas oferecem um interruptor "bloquear bots de IA" que retorna 403 independentemente do que robots.txt diz. Verifique pontualmente, depois confirme os hits reais de crawlers no relatório de bots da CDN ou logs do servidor (CDNs que verificam IPs de bots podem tratar um User-Agent falsificado de forma diferente):
curl -s -o /dev/null -w '%{http_code}\n' -A 'Mozilla/5.0 (compatible; OAI-SearchBot/1.0; +https://openai.com/searchbot)' https://acme.example/pricing
6. Coloque uma definição em uma frase no topo de cada página principal
Bem abaixo do H1, em HTML renderizado pelo servidor: " é um(a) que <faz o quê> para ." A segunda frase dá o diferencial. Reutilize a mesma frase na página inicial, em llms.txt, em Organization.description, em listagens de diretórios e em bios sociais. Um slogan ("Finanças, reimaginadas") não dá nada para um assistente citar. Muitos buscadores de IA não executam JavaScript, então verifique o HTML bruto:
curl -s https://acme.example/ | grep -c "é uma ferramenta de conciliação de faturas" # espere 1 ou mais
7. Tabelas de comparação e FAQ
- Tabelas: um
<table>HTML real, uma linha por produto, colunas que os compradores perguntam (preço, plataformas, código aberto, limite principal). Date-a ("Verificado em 2026-11-06"). Tire cada fato do próprio site do fornecedor, documentação, página de preços ou API do GitHub. Escreva "Não publicado" quando um fornecedor não publica algo; nunca estime. - FAQ: a pergunta como título, nas palavras do pesquisador; uma resposta de 2 a 4 frases que funcione sozinha, com a primeira frase respondendo-a. Cubra as perguntas que os assistentes erram: preço, "é gratuito", "funciona com X", "é o mesmo que <homônimo>". A marcação FAQPage é opcional; o Q&A visível é o que é citado.
8. Torne os preços públicos
Uma página /pricing com nomes de planos, preços, moeda, período de cobrança e limites como texto, não apenas em uma imagem ou calculadora. Espelhe em llms.txt e em SoftwareApplication.offers. Respostas e listagens de diretórios precisam de um preço ou um modelo de preços (gratuito, freemium, pago); sem um, eles chutam ou pulam você. Se os planos pagos não estiverem ativos, diga ("Pro: em breve; tudo é gratuito até lá").
{ "@context": "https://schema.org", "@type": "SoftwareApplication", "name": "Acme AI",
"applicationCategory": "BusinessApplication", "operatingSystem": "Web",
"offers": [ { "@type": "Offer", "name": "Grátis", "price": "0", "priceCurrency": "USD" },
{ "@type": "Offer", "name": "Pro", "price": "29", "priceCurrency": "USD" } ] }
9. Dados de Organization e WebSite quando o nome colide
Se pesquisar seu nome de marca puro retorna outro produto primeiro, escolha uma forma distinta ("Acme AI") e use-a em todos os lugares, com dados estruturados que vinculam as variantes a uma entidade:
{ "@context": "https://schema.org", "@type": "Organization",
"name": "Acme AI", "alternateName": ["Acme", "acme.example"],
"url": "https://acme.example/", "logo": "https://acme.example/logo.png",
"description": "Acme AI é uma ferramenta de conciliação de faturas que reconcilia pagamentos do Stripe com depósitos bancários para pequenas equipes financeiras.",
"sameAs": ["https://github.com/acme-ai", "https://x.com/acmeai", "https://www.linkedin.com/company/acme-ai"] }
Adicione um objeto WebSite com o mesmo name e alternateName; o Google o usa para o nome do site nos resultados. Liste em sameAs apenas perfis que você controla e que linkam de volta ao site.
10. Mantenha o sufixo da marca consistente
Um sufixo em todos os lugares: | Acme AI nos títulos, a mesma string em og:site_name, o H1 de llms.txt, bios sociais e a organização do GitHub. Mantenha os títulos dentro de 60 caracteres (cerca de 30 para chinês, japonês e coreano), palavra-chave primeiro; adicione o sufixo apenas quando couber.
11. Verifique o que os assistentes realmente dizem
Mensalmente, e após grandes mudanças, faça de 5 a 10 perguntas manualmente no ChatGPT (com busca ativada), Perplexity, Claude, Gemini e Copilot: "O que é Acme AI?", "Preços do Acme AI", "melhor para <público>", "alternativas ao ", "Acme AI vs ". Uma pergunta de cada vez na interface normal; não scripte chats UIs. Registre data, assistente, pergunta, se você é mencionado, qual URL é citado e qualquer fato errado em docs/seo/ai-answers.md. Corrija a página fonte por trás de cada fato errado, depois verifique novamente. Para tráfego, segmente a análise por referenciador: chatgpt.com, perplexity.ai, claude.ai, gemini.google.com, copilot.microsoft.com.
Checklist
- Ficha de fatos existe; páginas, llms.txt e JSON-LD leem dela
- /llms.txt retorna 200 como texto, é gerado e linkado no rodapé
- robots.txt permite os agentes de IA e repete as negações; a CDN não os bloqueia
- Cada página principal abre com uma definição em uma frase no HTML bruto
- Tabelas de comparação são datadas e com fontes; desconhecidos dizem "Não publicado"
- Respostas do FAQ funcionam sozinhas e cobrem preço, "é gratuito" e confusão de nome
- /pricing é público; llms.txt e
offerscorrespondem a ele - Organization e WebSite carregam name, alternateName, description e sameAs
- Um sufixo de marca em todos os lugares; títulos dentro de 60 caracteres
- Respostas de assistentes registradas; fatos errados rastreados até uma página e corrigidos
Armadilhas que enfrentamos
- Sem preços públicos. /pricing retornava 404, llms.txt e
SoftwareApplicationnão tinham ofertas, e nossa própria tabela de comparação precisava dizer "Não publicado" para nós. Uma página /pricing com três planos em texto, espelhada em llms.txt eoffers, corrigiu isso; tiers pagos são marcados como "em breve". - Deriva de status. Após a abertura de inscrições, cerca de 300 arquivos em 9 idiomas, incluindo llms.txt, ainda diziam "acesso antecipado". O status agora vem de uma única constante.
- Um arquivo para o qual ninguém linka. Uma auditoria não encontrou nenhuma página linkando para llms.txt, nenhum llms-full.txt e nenhum
lastmodno sitemap. - Substituição de grupo em robots.txt. Dar aos crawlers de IA seu próprio grupo sem repetir as negações teria aberto os caminhos da API e de login para eles.
- Colisão de marca. Pesquisar nosso nome de marca puro retornava primeiro um aplicativo de agendamento de tripulação com o mesmo nome. Mudamos para " AI" nos títulos, alternateName e sameAs.
- Títulos truncados e inconsistentes. 49 títulos em inglês tinham 57 a 88 caracteres com sufixos mistos. Reduzimos para 60 ou menos, palavra-chave primeiro, sufixo apenas quando couber.
- Buscas não confiáveis de páginas de concorrentes. A busca de um subagente de pesquisa pela página de preços de um concorrente retornou algo que parecia adulterado; confirmamos em um navegador real antes de publicar. A página de preços de outro fornecedor retornou 403 para o buscador, então pegamos os preços da documentação deles e dissemos de onde vieram.
- Escrever "gratuito" cedo demais. Até que os preços fossem publicados, escrevemos "não publicado", não "gratuito". Um assistente repete o que a página diz.
Skills relacionados
- seo-page: o template de página onde a definição, tabela e FAQ vivem.
- competitor-pages: páginas de comparação e alternativas, que os assistentes citam pesadamente.
- programmatic-pages: geração de seções de llms.txt e dados estruturados em escala.
- multilingual-seo: definições localizadas, títulos e comprimento de sufixo por idioma.
- keyword-research, trend-keywords: as perguntas a responder e os prompts a testar.
- index-push: fazer as páginas serem rastreadas; o índice do Bing alimenta o Copilot.
- seo-daily-report: visitas referidas por IA como sua própria linha no relatório.