logo

FAQ Schema Markup: The Complete Guide (JSON-LD + Code)

| Reviewed by Fabian Tinjaca
Published · Last reviewed · 14 min read
FAQ Schema Markup in 2026 showing the shift from Google FAQ rich results to AI citations and answer engines.

Most guides still tell you FAQ schema earns those dropdown questions under your result in Google. As of May 2026, it doesn’t. Google removed FAQ rich results from Search entirely. But the markup matters more than ever now, for a different reason: it is how machines and AI answer engines read your questions and answers. This guide covers what FAQ schema is, whether it still earns its keep, the JSON-LD to copy, and how to add and validate it.

What Is FAQ Schema Markup?

FAQ schema markup is structured data, in the FAQPage format from Schema.org, that labels a list of questions and their answers so search engines and AI systems can read them as discrete Q&A pairs. You add it as JSON-LD in the page’s code. It doesn’t change what visitors see.

That last point trips people up. FAQ schema doesn’t rewrite your content or redesign your page. It sits in a <script> tag and tells a machine “this string is a question, and this string is its answer.” Nothing more.

It is also not a ranking factor. Google has never treated FAQ markup as a signal that lifts your position. What it does is remove ambiguity about what your content means, which is exactly what both search crawlers and AI answer engines need.

JSON-LD is the format to use. It has been Google’s recommended way to add structured data since 2015, and it is a W3C recommendation, so you are not betting on a proprietary syntax. FAQ (FAQPage) is one of the schema types you can generate with a plugin instead of hand-coding, the same operational shift covered in how to use schema markup more broadly. That matters once you have more than a page or two to mark up.

FAQPage vs QAPage: Which One Do You Need?

These two types look similar and get mixed up constantly. The difference is who writes the answers.

Use FAQPage when your site publishes both the question and the single, authoritative answer. Think a support page, a product FAQ, a policy explainer. Use QAPage when users can submit their own answers to a question, like a forum thread or a community Q&A. Google is explicit: if there is one answer and users can’t add alternatives, it is FAQPage.

TypeUse it whenWho writes the answersExample
FAQPageOne authoritative answer per questionYou (the site)Product FAQ, support page, policy page
QAPageUsers can submit alternative answersYour usersForum thread, community Q&A

Pick wrong and your markup describes something the page isn’t, which is one of the fastest ways to get structured data ignored.

Does FAQ Schema Still Work in 2026?

Yes and no, and the distinction is the whole point of this section.

The rich result is gone. According to Google’s own documentation, as of May 7, 2026, FAQ rich results no longer appear in Google Search. Google is dropping the FAQ search appearance, the rich result report, and support in the Rich Results Test in June 2026, with the Search Console API following in August 2026.

As of May 7, 2026, FAQ rich results are no longer appearing in Google Search. Support in the Rich Results Test is being dropped in June 2026. Source: Google Search Central documentation

So if your reason for adding FAQ schema was the expandable questions under your listing, that reason expired. Don’t build a page around a feature that no longer renders.

The markup itself still does real work. The FAQPage format turns a wall of text into clean question-answer pairs that machines can lift without guessing. That is valuable to a different audience than it used to be.

Why Rich Results Shrank (and Who Still Gets Them)

The decline started well before 2026. In August 2023, Google announced that FAQ rich results would only show for well-known, authoritative government and health websites. Every other site lost the feature that month.

The impact was immediate. After the change, roughly 82.96% of sites with FAQ schema stopped earning FAQ results, up from 46.06% in February of that year, per Search Engine Land. A separate study measured a 37% drop in FAQs appearing in results.

So who still gets the dropdowns today? Nobody. The 2023 change narrowed eligibility to gov and health sites; the May 2026 change removed the appearance entirely. There is no tier of site that earns the classic FAQ rich result anymore.

The Real Payoff Now: AI Overviews, ChatGPT & Perplexity

Here is where the value moved. AI answer engines read structured Q&A pairs and reuse them.

When Google AI Overviews, ChatGPT, or Perplexity assemble an answer, pre-formatted question-answer pairs are easy to extract and attribute. Your FAQPage markup hands them the exact text you want associated with each question, instead of making them infer it from prose. Google now publishes a dedicated guide to optimizing for generative AI search, which tells you where its own priorities sit.

Practitioners tracking answer engine visibility report that FAQ-structured content gets pulled into AI answers more often than the same content left unstructured, a pattern the AEO and GEO literature keeps returning to. Treat the specific percentages floating around with caution, but the direction is consistent. If you care about being cited in AI answers, this is the discipline: it is part of generative engine optimization, and clean FAQ markup is one of its cheapest inputs.

The goal changed from “earn the dropdown” to “be the source the machine quotes.” FAQ schema still serves that goal.

How to Add FAQ Schema Markup (Step by Step)

The process is four steps whether you hand-code the JSON-LD or generate it. Write the FAQ, produce the markup, place it on the page, then validate.

  1. Write a real, visible FAQ on the page.
  2. Generate the FAQPage JSON-LD.
  3. Paste it into the page’s code.
  4. Validate the syntax and monitor it after edits.

You have two honest options at step 2: write the JSON-LD by hand (the code is below) or generate it. If you have one page, hand-coding is fine. If you have dozens or hundreds, generating and maintaining it is the only sane path.

Step 1: Write a Real, Visible FAQ First

Google’s guidelines are strict on one thing: every question and answer in your markup must be visible to the user on the page. The answer can sit behind an expandable accordion, but it has to be reachable. You cannot mark up content that only exists in the JSON-LD block.

That rule is not bureaucratic. The markup is supposed to describe the page, so write the FAQ as real page content first. Use questions people actually ask, and answer each one directly in one or two sentences.

Get the human-readable version right before you touch any code. The markup mirrors it.

Step 2: Generate the JSON-LD

Hand-writing FAQPage markup for one page takes a few minutes. Doing it for 400 product pages does not scale, and every manual edit is a chance to desync the markup from the visible text.

To generate it for a single page in WordPress, open WP Admin → Schemafy → AI Schema Generator, search for the page or paste its URL, choose FAQ under Schema Type, and click Generate Schema with AI. Open Review technical JSON-LD to read the output, check the validation indicator, and click Save to Website. If the draft isn’t right, Regenerate.

To do it across a whole site, open WP Admin → Schemafy → Auto Schema Generator and click Scan Site. Filter Post Type and set Status to Needs Schema, then review the suggested schemas and match percentages before applying in bulk. This is how you mark up hundreds of pages without opening each one.

WordPress FAQ schema markup generator showing FAQPage JSON-LD creation and validation inside the Schemafy plugin.

Schemafy generating FAQPage JSON-LD for a single page from the AI Schema Generator, with the output validated before it goes live.

If you prefer to fill fields yourself, Open Schemafy and navigate to Smart Builder. Select the FAQ schema template, enter each question and answer into the corresponding FAQ fields, and review the generated FAQPage JSON-LD output. Before publishing, verify that all questions, answers, and schema properties match the current Schemafy interface and your page content, then save the schema. You can also generate a block in the browser with a standalone schema markup generator if you just want the code.

Step 3: Paste It Into Your Page

The JSON-LD goes inside a <script type="application/ld+json"> tag. Google accepts it in either the <head> or the <body>, so placement is flexible.

In WordPress, a schema plugin applies the markup to the page for you, so you never edit the theme. To paste your own block instead, Open Schemafy and navigate to Manual JSON. Paste your FAQPage JSON-LD markup into the JSON editor, select the page or URL where the schema should be applied, and review the configuration before saving. Confirm that all field names, menu paths, and save actions match the current Schemafy interface before publishing the schema.

Once schemas are live, you can view and edit everything applied across the site from the Rich Snippets screen, which keeps you from losing track of which page has which markup.

Step 4: Validate and Monitor

Validate the syntax before you publish. A single missing bracket or misnamed property makes the whole block unreadable to a crawler.

One honest caveat about tooling: Google is retiring the FAQ report and FAQ support in its Rich Results Test during 2026, so don’t rely on that specific tool to confirm FAQ markup going forward. Use a general JSON-LD validator instead. A JSON-LD editor and validator checks your block against the Schema.org and Google structured data specs in real time.

Then monitor. The most common way FAQ markup breaks is drift: someone edits the visible answer and the JSON-LD keeps the old text. Recheck after any content change so the markup still matches what a visitor reads.

FAQ Schema JSON-LD Code (Copy-Paste)

Here is a minimal, valid FAQPage block based on Google’s official example. Replace the questions and answers with your own, keep the structure, and paste it into your page.

Basic FAQPage Example

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [{
    "@type": "Question",
    "name": "Does FAQ schema still earn rich results in Google?",
    "acceptedAnswer": {
      "@type": "Answer",
      "text": "No. As of May 2026, Google no longer shows FAQ rich results in Search. The FAQPage markup still helps search engines and AI systems understand your questions and answers."
    }
  }, {
    "@type": "Question",
    "name": "Which JSON-LD format should I use for FAQs?",
    "acceptedAnswer": {
      "@type": "Answer",
      "text": "Use the FAQPage type with a mainEntity array of Question items, each containing a name and an acceptedAnswer of type Answer with a text property."
    }
  }]
}
</script>

The required properties are small in number. FAQPage needs mainEntity, an array of Question items. Each Question needs a name (the full question text) and an acceptedAnswer. Each Answer needs a text property with the full answer. Everything else is optional.

WordPress, Webflow & Next.js/React

The JSON-LD is identical across platforms. Only the placement differs.

On WordPress, a schema plugin like the Schemafy plugin injects the block for you, so you don’t paste anything into the theme or risk an update wiping it out.

On Webflow, paste the <script> block into the page’s custom code (Page settings → Custom code, before </body>) or into an Embed element on the page.

On Next.js or React, render the <script type="application/ld+json"> tag in the head. In the App Router you can return it from a component or the metadata export; in the Pages Router use next/head or next/script. Serialize the object to a JSON string with JSON.stringify and set it as the script’s content rather than as children, so it isn’t escaped.

[SCREENSHOT: The Schemafy Rich Snippets management screen showing a list of applied schemas with a FAQPage entry attached to a WordPress page.]

Schemafy Rich Snippets screen showing active FAQPage schema markup.

A FAQPage schema applied to a WordPress page, managed alongside every other schema from the Rich Snippets screen.

Google’s FAQ Schema Guidelines & Character Limits

Google’s FAQ documentation sets a short list of required properties. Get these right and your markup is technically valid.

TypeRequired propertyWhat it holds
FAQPagemainEntityAn array of Question items (at least one)
QuestionnameacceptedAnswerThe full question text, and its answer
AnswertextThe full answer text

Inside the Answer text, Google supports a limited set of HTML tags: <h1> through <h6><br><ol><ul><li><a><p><div><b><strong><i>, and <em>. Any other tags are ignored, so don’t put custom markup or scripts in an answer.

The content rules matter as much as the syntax. Every question and answer must be visible on the page. Use one answer per question, or switch to QAPage. Don’t use FAQPage for advertising copy. And if the same FAQ appears on many pages, mark up only one instance for the whole site, per Google’s structured data guidelines.

On character limits: Google does not define one in the FAQPage spec. There is no maximum length for a question or an answer. The real constraint is that the markup must contain the complete text of each question and answer, and that text must match what is visible on the page. Concise answers are still a good idea, since a tight one or two sentences is easier for an AI engine to quote cleanly, but that is best practice, not a hard rule.

Common FAQ Schema Mistakes to Avoid

Most FAQ markup problems come down to a handful of repeat offenders. Google’s guidelines rule out several of these directly.

  • Marking up content that isn’t visible on the page. The JSON-LD has to describe text a visitor can actually see.
  • Using FAQPage where QAPage belongs, on pages where users submit their own answers.
  • Using FAQ markup for promotional or advertising copy rather than genuine questions.
  • Duplicating the same FAQ block across many URLs. Mark up one instance for the site.
  • Letting the JSON-LD drift out of sync with the visible question and answer text after an edit.
  • Building the page around the old dropdown rich result that no longer exists.

The drift problem gets worse with scale. If you maintain FAQ markup across hundreds of pages by hand, some copy will fall out of sync eventually. Generating and managing it from one place, then reviewing coverage from the Auto Schema Generator and Rich Snippets screens, keeps markup and visible text aligned without a manual audit.

FAQ Schema Best Practices for 2026

The best practices follow directly from where the value now sits.

Write real, concise, visible questions and answers, one clear idea per answer. Keep the markup identical to the visible text after every edit. Generate and maintain FAQPage at scale instead of typing it, using the Auto Schema Generator for bulk coverage and the AI Schema Generator for individual pages. Validate the syntax before publishing.

Then think one step further than search. When you write each answer, picture an AI engine lifting that single question-answer pair into a response. If the answer stands on its own in two sentences, it travels well. If it only makes sense in the surrounding paragraph, tighten it.

That mindset, clean pairs that survive being quoted out of context, is what separates FAQ markup that still earns attention in 2026 from markup that just sits in the page unused.

Schemafy’s Auto Schema Generator flagging pages that need schema and suggesting FAQPage across a whole site in one scan.

Ready to Win AI Citations With Structured Data?

The dropdown rich result is gone, so the job changed. The work now is making sure search engines and AI answer engines can read your questions and answers as clean, quotable pairs, which comes down to correct FAQPage markup that mirrors your visible content.

Write a real FAQ, mark it up properly, validate the syntax, and then generate and maintain the FAQPage (and the other schema types your pages need) instead of hand-coding each one.

Free WordPress plugin

Does your site already have Schema Markup?

Generate structured data by template, with AI or in bulk, and verify it with Google's Rich Results Test — all from WordPress, no code.

  • 16 schema types
  • Free plan, forever
  • Keeps Yoast / Rank Math

Frequently Asked Questions

Does FAQ schema help SEO?

FAQ schema is not a ranking factor, and as of May 2026 it no longer produces a rich result in Google Search. It still helps search engines and AI systems understand your questions and answers as structured pairs, per Google’s documentation.

Is FAQ schema still worth it in 2026?

Yes, but for structural clarity and AI-search citation rather than for the old expandable questions. If you want your Q&A content to be readable and quotable by AI answer engines, FAQPage markup is a cheap, low-risk input.

What’s the difference between FAQPage and QAPage?

FAQPage is for one authoritative answer per question, written by the site. QAPage is for pages where users can submit their own answers, like a forum or community thread.

How many FAQs should I add per page?

Google doesn’t set a number. Include only the questions that are genuinely relevant to the page, keep every one visible to the reader, and keep the answers concise. Padding a page with questions no one asks helps no one.

Where do I put FAQ schema code?

Inside a <script type="application/ld+json"> tag, in either the <head> or the <body> of the page. On WordPress, a schema plugin injects it for you so you don’t edit the theme.

Eddie Casas
Written by
Eddie Casas
Co-founder & Head of Growth, Schemafy

Eddie Casas built the first version of Schemafy himself, rough and vibe-coded, to fix a problem he kept hitting in his own SEO work: structured data that took too long to do right. Once the idea proved out, he brought in engineer Fabián Tinjacá to rebuild it into the plugin it is today. He now leads growth, SEO and content at Schemafy, and runs QA on every release before it ships. He is also the founder of TheBaseo, an SEO and AEO agency, so the playbooks on this blog are the ones he runs on real sites, not theory. His take: most schema advice online is written by people who have never had to apply it across hundreds of live pages. Eddie writes for the operator who has.