Who still gets FAQ rich results
In August 2023 Google restricted FAQ rich results to what it described as well-known, authoritative government and health websites. Everyone else lost the expandable question accordions that used to appear under their listing. There was no penalty and no warning in Search Console - the enhancement simply stopped rendering.
That restriction is still in force. If you run a SaaS blog, an ecommerce category page, a law firm site, or an agency site, FAQPage markup will not give you SERP real estate. Any tool that implies otherwise is selling you a screenshot from 2022.
Why the markup is still worth shipping
3 reasons, none of which involve a rich result:
- Answer engines still parse it. FAQPage is one of the cleanest question-and-answer structures on the web, and it gets consumed by systems well beyond Google Search - AI assistants, site search, aggregators, and Google's own non-Search surfaces.
- It costs nothing. It's a few hundred bytes of JSON-LD in the head. There's no crawl budget argument and no performance argument against it.
- Policy changes both ways. Google restricted this enhancement rather than deprecating the type. Sites that already have correct markup are in position if it loosens.
What you should not do is restructure a page around FAQ markup, or bolt a fake FAQ section onto a page to earn a rich result that isn't coming.
3 fields, and what the FAQ schema accepts
This page is deliberately narrow. 3 fields, and one of them is fixed:
- Schema type - locked to FAQPage. Nothing to choose.
- Page URL - optional. It never appears in FAQPage output; it prefills the Rich Results Test link so you can check the live page in one click.
- Items - the entire payload. One
question | answerpair per line.
The items parser is more forgiving than the placeholder suggests. It accepts:
question | answer- the documented format.- Tab-separated lines, so a 2-column spreadsheet paste works as-is.
Q:andA:prefixed lines on alternating rows. An answer line attaches to the question above it.- Leading list markers (
1.,2),-,*,•) are stripped, so an outline pastes cleanly.
A line with no separator becomes a question with no answer, and you get a notice naming the item number. That's the single most common input error: an answer containing a pipe character, which splits in the wrong place. Rewrite the answer without the pipe.
A worked FAQ output example
2 pairs typed into the items box:
How long does a sourdough starter take to build? | About seven days at room temperature, feeding once a day.
Why is my starter not rising? | Almost always temperature. Below 68°F fermentation slows to a crawl.
Produces:
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "How long does a sourdough starter take to build?",
"acceptedAnswer": {
"@type": "Answer",
"text": "About seven days at room temperature, feeding once a day."
}
},
{
"@type": "Question",
"name": "Why is my starter not rising?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Almost always temperature. Below 68°F fermentation slows to a crawl."
}
}
]
}
That's the complete valid shape. FAQPage has exactly one required property, mainEntity, and each Question needs a name and one acceptedAnswer with text. Nothing else is required, and nothing else is emitted.
The output escapes <, >, and & as \u003c, \u003e, and \u0026. Still valid JSON, decoded back by every parser. The reason is that an HTML parser ends a <script> element at the first literal </script> sequence it encounters, even inside a JSON string - so an answer that quotes some HTML would otherwise cut your block in half and spill the remainder onto the page as visible text.
FAQPage or QAPage: not interchangeable
They look similar and they are not. FAQPage is for questions you wrote and you answered. QAPage models a single question that visitors can answer competitively - a forum thread, a support community, a Stack Overflow-style page. Its structure reflects that: one mainEntity Question, one acceptedAnswer, and an array of suggestedAnswer entries for the rest.
Using QAPage for your own FAQ section because FAQPage no longer earns a rich result is a structured data violation, not a loophole. Google's Q&A guidelines are explicit that the page has to actually allow user-submitted answers. A manual action for spammy structured data is a considerably worse outcome than no enhancement.
Rules that get FAQ markup ignored
- Every question and answer must be visible on the rendered page. Markup-only Q&As are the fastest route to a manual action. If it's behind an accordion that works without JavaScript, that's fine - hidden until clicked is fine, absent from the DOM is not.
- Answers belong to the site, not to users. If visitors submit the answers, it's a QAPage.
- No promotional content in answers. Answers that are sales copy with a question mark on top get filtered.
- One FAQPage block per page. Don't emit a block per accordion item. All questions go in one
mainEntityarray. - Don't duplicate the same FAQ set across many pages. Google treats site-wide boilerplate FAQ markup as low value.
- Keep answers substantive. A one-word answer is technically valid and practically useless to every consumer of the markup.
If you're producing FAQ sections at scale across a content program, BlazeHive automates SEO content end to end, structured data included.