O schema FAQPage é um bloco de código JSON-LD que marca cada par de pergunta e resposta da sua página como uma unidade rotulada, para que a IA leia a resposta exata sem precisar adivinhar onde a pergunta termina e onde a resposta começa. Sem ele, o modelo extrai a resposta do texto corrido e pode cortar no lugar errado; com ele, o limite já vem declarado.
Este tutorial é o lado do código. Ele não decide quais perguntas usar (isso é trabalho editorial), e sim mostra como transformar perguntas que você já escolheu em marcação válida: a estrutura do bloco, os campos obrigatórios, onde colar o script e como validar antes de publicar. No fim tem um exemplo de JSON-LD completo para copiar e adaptar. Se você ainda não viu por que essa marcação é a aposta mais barata do GEO técnico, o artigo sobre dados estruturados cobre o porquê; aqui o foco é o como, no tipo FAQPage.
Por que o par pergunta e resposta é uma unidade citável?
Porque ele já vem com começo e fim definidos. Quando uma IA processa uma página, ela quebra o texto em pedaços menores antes de usar ou guardar (o termo técnico é fragmentação). Um parágrafo solto pode ser cortado no meio de uma ideia. Um par de pergunta e resposta, não: a pergunta delimita exatamente o que está sendo respondido, e a resposta é o pedaço inteiro que responde.
O FAQPage formaliza esse limite no código. Em vez de o modelo inferir que o trecho depois de "Quanto custa?" é a resposta da pergunta sobre preço, você diz explicitamente: este texto é a pergunta, este outro é a resposta dela. A IA não precisa reconstruir essa ligação a partir da diagramação visual ou do HTML.
Isso conversa direto com a taxa de citação, a frequência com que sua marca aparece nas respostas dos modelos. Uma resposta com limite claro é mais fácil de extrair e devolver inteira numa resposta de chatbot. A IA prefere o que ela consegue recortar sem risco de cortar errado.
Como é a estrutura de um bloco FAQPage?
A estrutura tem três níveis encaixados. Entender o encaixe é metade do trabalho:
FAQPageé o bloco de fora. Ele declara que aquela página (ou aquela seção) é uma lista de perguntas frequentes.Questioné cada pergunta. O FAQPage contém uma lista de Question, uma por par. O texto da pergunta vai no camponame.Answeré a resposta de cada pergunta. Ela não fica solta: entra dentro da Question, no campoacceptedAnswer, e é do tipoAnswer. O texto da resposta vai no campotext.
Lendo de cima para baixo: um FAQPage contém várias Question; cada Question tem uma acceptedAnswer do tipo Answer. Esse aninhamento é o que diz ao modelo qual resposta pertence a qual pergunta. Trocar a ordem ou tirar um nível quebra a relação.
A lista de perguntas vai no campo mainEntity do FAQPage. É uma lista (um array, em JSON), então você adiciona quantas Question forem necessárias separando por vírgula. Cada Question segue o mesmo molde: um name, um acceptedAnswer com um text dentro.
Quais campos de texto cada par precisa?
São dois campos de texto que carregam o conteúdo, um em cada nível:
name é a pergunta, na Question. Escreva exatamente como um usuário perguntaria, igual ao que está visível na página. Pergunta curta e direta funciona melhor: "Quanto tempo dura a garantia?" e não "Informações sobre o período de garantia do produto".
text é a resposta, dentro do acceptedAnswer. É o corpo que responde a pergunta. Pode conter algumas tags de HTML simples, como parágrafo e link, mas o miolo é o texto da resposta. A resposta deve ser completa por si só: quem lê só ela, sem o resto da página, entende.
O ponto que mais derruba marcação é a correspondência com o visível. O conteúdo do name e do text precisa bater com o que o usuário vê na página, palavra por palavra. A diretriz de dados estruturados é explícita: marcar conteúdo que não aparece para o usuário, ou que está oculto, viola a regra. Na prática isso significa que você escreve as perguntas e respostas na página primeiro, e o FAQPage só espelha o que já está lá. O schema descreve o conteúdo, não inventa um paralelo.
Vale a mesma disciplina do schema Organization: cada campo reflete o que de fato existe. Schema que descreve dados que não estão na página enfraquece a confiança na marcação do site todo.
Como fica um bloco FAQPage completo?
Abaixo, um FAQPage com duas perguntas, no formato que você cola na página. Troque o texto pelos seus pares reais, que precisam existir visíveis na página:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "Quanto tempo leva a entrega?",
"acceptedAnswer": {
"@type": "Answer",
"text": "O prazo de entrega é de 3 a 7 dias úteis para todo o Brasil, contados a partir da confirmação do pagamento. Pedidos para a capital saem em até 3 dias úteis."
}
},
{
"@type": "Question",
"name": "Posso trocar o produto depois de comprar?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Sim. A troca pode ser solicitada em até 7 dias corridos após o recebimento, com o produto sem uso e na embalagem original. O frete da primeira troca é por nossa conta."
}
}
]
}
</script>
Repare que é tudo texto dentro de uma tag <script>: nenhuma imagem, biblioteca ou dependência. Para adicionar uma terceira pergunta, copie um bloco Question inteiro, coloque uma vírgula depois do } do bloco anterior e cole o novo dentro do mesmo mainEntity. A vírgula entre os blocos é obrigatória; a última Question da lista não leva vírgula depois.
Onde colar o script FAQPage no site?
Na própria página onde as perguntas aparecem, e só nela. O FAQPage descreve aquela página específica, então o bloco vai junto do conteúdo que ele marca: a página de FAQ, ou o artigo e a página de produto que têm uma seção de perguntas. Não repita o mesmo FAQPage em páginas onde aquelas perguntas não estão visíveis.
Tecnicamente, o bloco entra no HTML em uma tag <script type="application/ld+json">. Pode ficar no <head> ou em qualquer ponto do <body>: os rastreadores leem das duas formas. A maioria das plataformas permite inserir esse trecho:
- WordPress: por um plugin de SEO com campo de schema, ou colando o
<script>no corpo da página. - Webflow, Wix e similares: no campo de "código personalizado" ou "embed de HTML" da página.
- Site próprio: direto no template da página que tem o FAQ.
Para a mecânica geral de colar e validar qualquer bloco JSON-LD, e para o critério de quando usar FAQPage em vez de outro tipo, o guia de GEO técnico reúne as camadas em ordem, e o artigo sobre quais tipos de schema usar ajuda a decidir.
Como validar o FAQPage e quais armadilhas evitar?
Valide antes de considerar o trabalho pronto. Duas ferramentas gratuitas cobrem isso:
- Schema Markup Validator (validator.schema.org): cole a URL ou o código e veja se a sintaxe está correta e quais campos foram reconhecidos.
- Rich Results Test do Google (search.google.com/test/rich-results): mostra se a marcação está válida e elegível para resultados ricos.
No resultado, confira: o tipo identificado como FAQPage, cada Question com seu name, e cada acceptedAnswer com seu text lidos com o texto certo. Um erro (error) precisa ser corrigido antes de publicar; um aviso (warning) sobre campo opcional ausente, não. Valide depois de cada mudança, porque uma vírgula fora do lugar no JSON quebra a leitura inteira do bloco.
As armadilhas que mais aparecem:
- Conteúdo oculto. Marcar uma resposta que o usuário não vê, por estar fora do HTML ou só carregada depois de um clique, viola a diretriz. A resposta tem que estar visível na página.
- Pergunta repetida. A mesma pergunta marcada em várias páginas, ou duas Question idênticas no mesmo bloco, confunde em vez de ajudar. Um par por pergunta, na página onde ele vive.
- Resposta vazia ou incompleta. Um
textem branco, ou que só faz sentido com o resto da página ("veja acima"), não serve. Cada resposta precisa ser completa e fazer sentido sozinha. - JSON quebrado. Vírgula faltando entre blocos, vírgula sobrando na última Question, aspas não fechadas. Qualquer um derruba o bloco inteiro, e por isso a validação a cada mudança não é opcional.
Como manter o FAQPage citável ao longo do tempo?
A marcação acompanha o conteúdo. Toda vez que você muda uma pergunta ou uma resposta na página, ajuste o name ou o text correspondente no bloco para que os dois continuem batendo. Um FAQPage que descreve uma resposta antiga, depois de a página ter mudado, vira inconsistência: o usuário lê uma coisa, o modelo lê outra.
Escolher bem quais perguntas entram é a outra metade do trabalho, e ela é editorial, não de código. Quais dúvidas o seu público de fato leva ao chatbot, como formular cada pergunta no jeito que a pessoa pergunta, quando faz sentido ter um FAQ: isso é decisão de conteúdo, anterior à marcação. Este tutorial cuidou do código; a curadoria das perguntas é um tema à parte.
No Content Studio da Promptis, o conteúdo gerado já sai com a seção de FAQ estruturada, no formato que a marcação espelha, então a parte de transformar perguntas em pares válidos vem encaminhada. Se quiser primeiro entender como sua marca aparece hoje nas respostas de IA, a primeira análise é grátis e não pede cartão.


