How to add FAQ schema to your website

The FAQPage markup, a complete example to copy, the rules that keep it valid, and what it does and doesn’t do for you now that Google has retired FAQ rich results.

By Last updated:

To add FAQ schema, put a <script type="application/ld+json"> block on the page containing a schema.org FAQPage, with one Question and its acceptedAnswer for each question shown on the page. Be aware that Google no longer shows FAQ rich results: it stopped on 7 May 2026.

That second sentence changes the advice, so it’s worth being clear about what follows. FAQ schema used to earn expandable questions under your result in Google. In 2023 Google limited that to well-known government and health sites, and in May 2026 it retired the feature completely and removed its documentation. Adding the markup today won’t change how your result looks in Google. This guide shows how to do it properly and when it’s still worth the few minutes.

What FAQ schema is

FAQ schema is structured data: a machine-readable copy of the questions and answers on a page, using the FAQPage type from schema.org, the shared vocabulary search engines use. It doesn’t change what visitors see. It describes, in a fixed format, content that is already on the page.

A page’s FAQ schema has three parts:

  • FAQPage: the page itself, which holds a list of questions in mainEntity.
  • Question: each question, with its text in name.
  • Answer: the answer, in the question’s acceptedAnswer, with its text in text.

It’s for pages where you, the site owner, wrote both the questions and the answers. A page where one question gets answers from many people, like a forum thread, is a QAPage instead.

Is it still worth adding?

Without a Google rich result, the case is modest. Reasons you might still add it:

  • It’s an unambiguous, machine-readable statement of your questions and answers, for any crawler or tool that reads schema.org markup.
  • It costs little if your site or CMS can generate it from the FAQ you already show.
  • It makes you structure the FAQ well: one clear question, one complete answer.

And reasons not to bother:

  • If you were adding it for Google’s FAQ rich result, that result no longer exists.
  • Hand-maintained markup drifts from the visible FAQ, and markup that disagrees with the page is worse than none.

The part that matters more for search engines and AI assistants is the FAQ itself: questions phrased the way people ask them, answered directly and correctly in the visible text. Our guide to writing help articles AI can answer from covers that.

A complete example

Two questions, ready to adapt. The answer text can contain simple HTML such as links.

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "name": "Can I change my plan halfway through the month?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Yes. Upgrades apply straight away and you pay only for the days left. Downgrades start at your next renewal."
      }
    },
    {
      "@type": "Question",
      "name": "Do you offer refunds?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Yes, within 30 days of payment. <a href=\"https://example.com/help/refunds\">See how to ask for one</a>."
      }
    }
  ]
}
</script>

The visible page should show the same two questions with the same answers, for example as headings with paragraphs, or a list of expandable sections.

How to add it

  1. 1

    Write the FAQ on the page first

    The markup describes visible content, so the questions and answers have to be on the page.

  2. 2

    Build the JSON-LD

    One Question per question, each answer complete. Generate it from the same data that renders the visible FAQ if you can, so the two can’t disagree.

  3. 3

    Add it to the page

    Put the <script type="application/ld+json"> block in the page’s <head> or <body>. Most CMSs have a field for custom code or structured data. In a framework like Next.js, render the script tag in the page component.

  4. 4

    Validate it

    Paste the page’s address into the Schema Markup Validator and fix any errors it reports.

  5. 5

    Keep it in step

    Whenever the FAQ changes, the markup changes with it. Generated markup does this for free.

Rules to follow

Google’s general structured data policies still apply to any markup:

  • Don’t mark up content that isn’t visible to readers of the page. No questions that exist only in the markup.
  • The markup must be a true representation of the page: the same questions, with the same answers.
  • JSON-LD is the recommended format, ahead of microdata and RDFa.

Two more habits keep it useful:

  • Put the full answer in the markup, not a teaser that sends people elsewhere for it.
  • If the same question appears on several pages, mark it up on the one that answers it best.

Common mistakes

Marking up content that isn’t an FAQ

Product descriptions or adverts dressed up as questions (“Why is our product the best?”) aren’t an FAQ. Keep to questions people actually ask.

Invalid JSON

A trailing comma or an unescaped quote inside an answer makes the whole block unreadable. Escape double quotes in answer text as \", or generate the JSON with code rather than by hand.

Answers that drift

Someone edits the visible FAQ and forgets the markup, so now they disagree. Generate both from one source.

Expecting a ranking boost

Structured data describes a page. It doesn’t make a page rank higher on its own, and with FAQ rich results gone it won’t change how your Google result looks.

Doing this in AskBase

The free AI FAQ generator drafts FAQs from what your website actually says, and gives you the result as Markdown, HTML and FAQPage JSON-LD to paste in, with a list of anything to check before you publish. If your FAQs belong in a help centre rather than on one page, AskBase’s knowledge base turns them into articles its AI can answer from.

Questions people ask

Does Google still show FAQ rich results?
No. Google stopped showing FAQ rich results on 7 May 2026 and removed their documentation in June 2026. From 2023 until then, they were limited to well-known, authoritative government and health websites.
Is FAQ schema still worth adding?
It’s optional. It gives crawlers a machine-readable copy of your questions and answers and costs little if generated from your visible FAQ, but it no longer changes how your result looks in Google.
What is the difference between FAQPage and QAPage?
FAQPage is for questions and answers written by the site owner. QAPage is for a page focused on one question with answers, typically from a community, such as a forum thread.
Where do I put FAQ schema on the page?
In a script tag with type application/ld+json, in the head or the body. The questions and answers it describes must also be visible on the page.
Can I use FAQ schema on every page?
Only on pages that show a list of questions and answers. If a question appears on several pages, mark it up on one of them.