DEV Community

CiteScore
CiteScore

Posted on

FAQPage JSON-LD in 2026: still worth adding for AI answers?

FAQ markup used to be one of the easiest structured data wins. Its search benefit has mostly gone, but the underlying idea still helps: a page that states its questions and answers explicitly is easier for machines to parse. Here is where things stand and how to add it correctly.

What FAQPage schema is

FAQPage is a schema.org type for pages whose main content is a list of questions, each with an answer. You describe it in JSON-LD, a script block that sits alongside the HTML. Each item is a Question with a name (the question text) and an acceptedAnswer of type Answer with a text property.

What changed in Google Search

FAQ rich results once let a search listing show expandable questions under the link. Google narrowed that in 2023, limiting FAQ rich results to well-known government and health websites. The feature has shrunk further since then, and for most sites it no longer produces a visible result in search. If your goal is a rich result, FAQPage markup is unlikely to deliver one.

Why structured Q&A still helps AI answers

Answer engines and retrieval systems split pages into passages and try to match a question to the passage that answers it. A clear question as a heading, followed by a direct two- or three-sentence answer, gives that process an obvious unit to extract. FAQPage markup repeats that structure in machine-readable form, so a parser does not have to guess where one question ends and the next begins.

Be clear about the limits. Markup does not guarantee citation, and no AI provider has said it is required. Its value is that it describes content you already publish. The visible text does the real work.

A complete JSON-LD example

This example marks up three questions about FAQPage itself. In a real page, each question and answer should also appear as visible text in an FAQ section.

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "name": "What is FAQPage schema?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "FAQPage is a schema.org type that describes a page whose main content is a list of questions, each with an answer. It is written as JSON-LD."
      }
    },
    {
      "@type": "Question",
      "name": "Does FAQPage markup still produce rich results in Google?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Not for most sites. Google first limited FAQ rich results to well-known government and health websites in 2023, and the feature has since been reduced further."
      }
    },
    {
      "@type": "Question",
      "name": "Should I add FAQPage markup to every page?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "No. Add it only to pages that show a real set of questions and answers, and make sure every item in the markup is visible on that page."
      }
    }
  ]
}
</script>
Enter fullscreen mode Exit fullscreen mode

Rules

  • Every question and answer must be visible on the page. Do not put text in the markup that readers cannot see. Collapsed accordions are fine as long as users can open them.
  • Use questions readers actually ask. Do not write questions just to repeat keywords.
  • Keep answers factual and specific. Two to four sentences is usually enough.
  • No marketing fluff. Avoid "best-in-class" language and sales calls to action inside answers.
  • Mark up only the Q&A that exists. Do not copy the same FAQ onto every page of a site.

How to validate

  1. Check the JSON parses. Paste the block into a JSON linter. A single trailing comma breaks the whole block.
  2. Check the schema. Run the page through validator.schema.org to confirm the types and properties are correct.
  3. Check eligibility. Google's Rich Results Test will show whether the markup is detected. A "valid" result does not mean a visible rich result will appear for most sites.
  4. Compare against the page. Open the live page and check that every question and answer in the JSON matches visible text word for word.
  5. Check the rendered HTML. If the block is injected by JavaScript, confirm it is present in the HTML a crawler receives, not only after the page runs.

Common mistakes

  • Marking up text that is not on the page.
  • Answers that are mostly links, ads, or a pitch.
  • Invalid JSON, such as trailing commas or unescaped quotes inside the answer text.
  • Several FAQPage blocks on one page, or FAQPage markup on a page with no FAQ.
  • Treating the markup as a ranking boost rather than a description of content.
  • Injecting the block with JavaScript after load, so some crawlers never see it.

Where to start

If you want a starting block for your own questions, the free generator at https://citescore.vercel.app/faq-schema-generator builds the JSON-LD from a list of Q&A pairs. Review its output against the rules above before you publish it.

Top comments (0)