What you need to know
Use acceptedAnswer inside Question when one answer is designated as accepted. For publisher-written FAQs, Question nodes usually live inside FAQPage.mainEntity. For a page centered on one question with user answers, QAPage may be more appropriate.
Question.acceptedAnswer points to an Answer entity. FAQPage contains publisher-authored Question entities with acceptedAnswer. QAPage is for a single-question page with user-generated answers. Visible question and answer text should match JSON-LD.
Key properties
The table below summarizes the fields that most often determine whether the entity is clear and internally consistent. Only provide values supported by the page.
| Property | Importance | How to use it |
|---|---|---|
Question.name | Core | Visible question text. |
acceptedAnswer | Core relationship | Points from Question to Answer. |
Answer.text | Core | Visible answer text. |
FAQPage.mainEntity | FAQ context | Array of Question nodes. |
QAPage.mainEntity | Q&A context | Primary Question on a single-question page. |
What acceptedAnswer means
acceptedAnswer is not a standalone type. It is a property on Question that references an Answer.
FAQPage versus QAPage
FAQPage is for publisher-authored FAQs. QAPage is for a page focused on one question where users can submit answers and one answer may be accepted/best.
Visible content
Question.name and Answer.text should reflect text users can actually read. Do not insert hidden keyword variants.
One accepted answer
acceptedAnswer should identify the answer genuinely treated as accepted. Other user answers can exist separately in Q&A contexts.
Google visibility
Google still understands FAQPage, but FAQ rich-result visibility is heavily restricted. Use the markup for semantics, not as a traffic promise.
Yandex Q&A model
Yandex documents QAPage for mobile Q&A scenarios and expects one question page with corresponding answers.
Validation
Make sure page type matches how the content is created and remove duplicate FAQ/Q&A markup generated by multiple systems.
JSON-LD examples
FAQPage with acceptedAnswer
Use for genuine publisher-authored FAQ content.
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "What is JSON-LD?",
"acceptedAnswer": {
"@type": "Answer",
"text": "JSON-LD is a JSON-based format for linked structured data embedded in HTML."
}
},
{
"@type": "Question",
"name": "Does structured data guarantee a rich result?",
"acceptedAnswer": {
"@type": "Answer",
"text": "No. Search engines decide whether a rich result is shown."
}
}
]
}Google, Bing and Yandex
Google understands FAQPage but currently restricts FAQ rich-result visibility substantially.
Bing supports Schema.org JSON-LD and can use question-answer relationships to understand content.
Yandex specifically documents QAPage for pages with one question and user answers in mobile search scenarios.
Important: valid structured data does not guarantee a rich result. Each search engine decides whether to use the data and how to present it.
Common mistakes
- warningUsing acceptedAnswer as an @type.
- warningUsing QAPage for a normal multi-question FAQ.
- warningMarking hidden questions/answers.
- warningKeyword-stuffed Answer.text.
- warningDuplicate markup from multiple plugins.
Frequently asked questions
Is acceptedAnswer a schema type?
No. It is a property of Question that points to Answer.
Can FAQPage use acceptedAnswer?
Yes. Each Question can contain acceptedAnswer.
Should a normal FAQ use QAPage?
No. QAPage is for a page centered on one question with user-generated answers.