FAQ schema markup: what the FAQ rich result is limited to now, and what the markup is still for
Google restricted FAQ rich results to authoritative government and health sites in August 2023, so here is the current state, a correct FAQPage block, and the errors that catch most sites.
Published by AI Knows Us · Updated 15 October 2026
FAQ schema markup is a block of JSON-LD that names the questions a page answers and ties each one to a single answer, using the FAQPage type from schema.org. The thing most people want from it, the expandable list of questions under a Google result, is no longer on offer to them. Google cut that feature back in August 2023 and left it running only for government and health sites it treats as authoritative, which is where it stands today. Advice written before that date promises SERP space the markup no longer earns. The markup is still correct, still valid and still worth shipping, for reasons that have nothing to do with the dropdown.
This page covers the current state, what the markup does for you now, the block to copy, where it goes, and the errors that catch most sites. For the general picture of structured data, see what schema markup is and what it changes.
What changed, stated plainly
Two features went at the same time. HowTo rich results were retired outright. The FAQ display was narrowed to a small set of authoritative publishers in government and health. Everything else about the type stayed exactly where it was.
| Question | Where it stands now |
|---|---|
| Will my FAQ markup produce the expandable questions in Google? | Not on a commercial site. That display is now reserved for authoritative sites in two sectors, government and health |
| Is FAQPage still a valid schema.org type? | Yes. The vocabulary is unchanged and the type is still documented |
| Was FAQ markup ever a ranking factor? | No. Google treats structured data as a way to understand a page and as eligibility for a feature |
| Should existing FAQ markup be removed? | Keep it where the questions and answers are genuinely on the page. Remove it where the FAQ was invented to win the rich result |
Dates matter more than usual here, so check Google's structured data gallery on the day you plan the work rather than trusting an undated article, this one included. It was written on 15 October 2026. The gallery also answers where development time should go instead: the supported result types are Product, Review, Breadcrumb, Event and Video, and those still work.
What FAQ markup is worth shipping for
- It removes the guesswork about which answer belongs to which question. Prose with headings leaves a parser to infer the pairing. FAQPage declares it, which is what structured data is for and was never dependent on Google drawing a box.
- Google is not the only consumer. Schema.org is a shared vocabulary read by other search engines and by any system that parses a page for facts, which is a longer list than it was two years ago.
- One source of truth. Generate the visible accordion and the JSON-LD from the same field in your content model and they cannot drift. Two hand maintained copies of the same answer always drift.
- It imposes a useful discipline. One question, one accepted answer, written on the page. Teams that mark up their FAQs stop publishing three vague paragraphs where a buyer asked something direct.
- It fits the rest of your entity work. Correct types across a site are how your Organization, Product and Article blocks get read consistently rather than argued with.
FAQPage or QAPage, which are not the same thing
Picking the wrong one of these is the most common conceptual error, and no validator will catch it because both are valid markup.
- FAQPage. The site wrote the questions and the single official answer to each. A service page's pricing questions, a product's delivery questions, a support article.
- QAPage. One user question with answers submitted by other people, as on a forum thread. It takes suggestedAnswer alongside acceptedAnswer, because the point is that several answers compete.
A page with a single question and your own answer is neither. It is a page, and it should carry Article or the type that matches it.
A correct FAQPage block
Replace the content, keep the shape. FAQPage holds mainEntity, which holds Question objects, each with one acceptedAnswer of type Answer.
<script type="application/ld+json">
{ "@context": "https://schema.org", "@type": "FAQPage", "mainEntity": [ { "@type": "Question", "name": "How long does an air conditioner tune up take?", "acceptedAnswer": { "@type": "Answer", "text": "<p>About 60 minutes for a single stage system. Add 20 minutes if the coil needs cleaning to reach the manufacturer tolerance.</p>" } }, { "@type": "Question", "name": "Are your technicians licensed and insured?", "acceptedAnswer": { "@type": "Answer", "text": "<p>Yes. Every technician holds a current state license, and our license and insurance numbers are on the <a href=\"https://example.com/about\">about page</a>.</p>" } } ]
}
</script>
Two details in that block are worth naming. The answer text accepts a limited set of HTML tags, including p, br, ol, ul, li, a, b, strong, i and em, so a list or a link inside an answer is allowed. Any double quotes inside the JSON have to be escaped, which is the single commonest reason a hand written block fails to parse at all.
Where the markup goes, and where the text has to appear
- The script can sit in the head or the body, as long as it is in the HTML of the first response. Markup injected by script after load is the usual cause of a checker reporting nothing detected.
- Every question and its full answer must be visible on that page. An accordion is fine when the text is in the HTML and opens on a click. Text fetched from another URL on click is not, and text present only for the crawler breaks the rule the whole system rests on.
- One FAQPage block per page, carrying the questions that page actually answers. The same block pasted into a sitewide template puts identical markup on 400 pages and describes none of them.
- Answers are answers. Google's structured data guidelines rule out promotional copy in the marked up content, so the sales line goes in the paragraph above the FAQ rather than inside it.
The validation errors that catch most sites
| Problem | How it shows up | Fix |
|---|---|---|
| Missing acceptedAnswer | An error naming the property | Every Question needs exactly one acceptedAnswer object |
| More than one acceptedAnswer | An error on the Question | Pick the official answer. Competing answers belong on a QAPage as suggestedAnswer |
| Questions in the markup that are not on the page | Nothing reported, and a guidelines breach | Put them on the page or take them out of the block |
| Both FAQPage and QAPage on one URL | Two detected items that contradict each other | Decide who wrote the answers and keep one type |
| Invalid JSON | Nothing detected, or a parse error | A trailing comma, an unescaped quote, or a curly quote pasted from a word processor. Generate the block from data |
| Raw HTML breaking the string | Parse error inside an answer | Keep to the allowed tags and escape the quotes inside attributes |
| Nothing detected at all | The checker finds no items | Confirm the script type is application/ld+json, read the raw response rather than the inspector, and check you tested the URL you edited |
Because the FAQ feature itself is restricted, treat the Schema Markup Validator at validator.schema.org as the tool of record for this type: it reports whether your vocabulary, nesting and properties are correct whatever Google chooses to display. Run the Rich Results Test as well for the other types on the same page, and see which validator to use and how to read it for the differences between them.
What teams ask about FAQPage markup
Does FAQ schema still do anything in 2026?
As markup, yes. It states your question and answer pairs in a form any parser can read. As a route to the expandable display in Google, no, unless you publish on behalf of a government body or a health authority.
Should I take the FAQ markup off my pages?
Keep it where the questions and answers are real and visible. Strip it from pages where an FAQ was bolted on purely to chase the rich result, because those pages are carrying thin content for a feature that is no longer there.
Do I need an FAQ schema generator?
A generator is a fine way to produce your first block and to see the nesting. Anything that changes should be generated from your own content fields instead, and avoid any tool that invents questions you have not published on the page.
Can I put the same FAQ block on every page?
One block per page, with the questions that page answers. Identical markup across a site describes nothing and makes every page look the same to a parser.
How many questions should a block carry?
As many as the page genuinely answers, which for most service and product pages is three to eight. Real buyer questions with direct answers, not padding.
The machine the markup was always for
Structured data exists so a machine does not have to guess what a page means, and the box in Google was one machine's way of showing it had understood. The questions in your FAQ block are now typed into an assistant instead, and the reply quotes whichever page it decided held the answer, with no dropdown and no credit on the page. So the exercise after you validate a block is to take the questions out of it, ask them of ChatGPT, Gemini or Perplexity with your company name left out of the wording, and read who comes back. AI Knows Us produces that reading question by question.