Skip to main content
Blog
SEO / GEO··6 min read

FAQPage schema: implementation guide to appear in Google and LLMs

Carlos Dodero
Founder of Elevatec · AI lecturer on the UAX AI degree and master's programs

The short answer

FAQPage schema (schema.org/FAQPage) is a type of structured data, written in JSON-LD, that lets you mark up the questions and answers on a web page explicitly. Implemented correctly, it improves visibility in Google's rich snippets and makes a language model far more likely to cite the content when it answers a related query.

What is FAQPage schema and why does it matter in 2025

Schema.org is a structured data vocabulary that lets search engines and language models understand a page beyond its plain text. FAQPage is one of the simplest types and one of the most profitable: it states which question each block of text answers, which makes it the easiest format for a model to cite.

On Google, FAQPage schema can produce rich snippets that show the questions directly in the results. In models that search in real time, it acts as a clear signal that says "this text is the official answer to this question".

Technical implementation step by step

You implement it with a JSON-LD block in the HTML ``, or inject it dynamically with JavaScript. The basic structure:

{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "name": "What is an external CTO?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "An external CTO is a technology executive who works part-time for a company providing technical leadership without the costs of a permanent hire."
      }
    }
  ]
}

The mistakes that cancel out the benefit

The ones we find most often in audits:

  • Answers that are too short (under 50 words): models favor answers that carry enough context.
  • Questions that don't match real user queries: use Google's search bar or Answer the Public to validate them.
  • Marking up pages whose visible content has nothing to do with the questions: Google may penalize markup that does not match what is on the page.
  • Duplicating the same FAQPage schema across multiple pages: each schema must be unique and specific to that URL.
  • Complex HTML inside the `text` field: only basic markup is allowed there (paragraphs, bold, lists).

How to validate the implementation

Use Google's rich results test (search.google.com/test/rich-results) to confirm the schema is picked up correctly. It flags syntax errors and previews the rich snippet.

Back that up with manual tests on ChatGPT and Perplexity: ask the exact question you have marked up and see whether your source turns up in the answer. Log the results with dates so you can measure progress month by month.

Frequently asked questions

Yes. In WordPress there are plugins (RankMath, Yoast) that generate it automatically from the interface. In React or Next.js sites it's implemented by injecting the JSON-LD in the head via useEffect (client) or on the server with getServerSideProps. In static HTML it's added directly in the `<head>` as `<script type='application/ld+json'>`.

Google recommends between 3 and 10 questions per page for rich snippets. For language models there is no technical limit, but quality beats quantity: four answers of 100 to 150 words work better than ten answers of 20 words.

It works on its own, but it does more when combined with Organization schema (which defines the authoring entity) and Article or WebPage (which identifies the content type). Together they give a model everything it needs to cite you with the right attribution.

FAQPageschema.orgstructured dataJSON-LDGEO

Ready to work together?

Schedule a meeting or tell us about your project. We respond quickly, no strings attached.