Question
Question is the node for a user-authored or editorial question, sitting under Comment. It's how Stack Overflow marks up a question-and-answer thread, how Google's Q&A rich result identifies the question, and how a quiz LearningResource marks up its items.
Full example of schema.org/Question json-ld markup
The markup is verified as valid with Rich Results Test from Google.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "QAPage",
"mainEntity": {
"@type": "Question",
"name": "How do I nest OfferShippingDetails inside an AggregateOffer?",
"text": "I have an AggregateOffer covering 12 seller offers across US and EU. Does shippingDetails live on the AggregateOffer, each child Offer, or both?",
"author": { "@type": "Person", "name": "Adelaide Voss" },
"dateCreated": "2026-02-18",
"upvoteCount": 14,
"answerCount": 3,
"acceptedAnswer": {
"@type": "Answer",
"text": "Put shippingDetails on each child Offer. AggregateOffer is a price-range summary; per-seller shipping rates differ, so they belong on the specific Offer a consumer would redirect to.",
"author": { "@type": "Person", "name": "Sean Dunmore" },
"dateCreated": "2026-02-18",
"upvoteCount": 22,
"url": "https://xooforum.example/q/1042#accepted"
},
"suggestedAnswer": [
{
"@type": "Answer",
"text": "You can also put a fallback shippingDetails on AggregateOffer if every child offer ships under the same terms — consumers will fall back when the child is missing.",
"author": { "@type": "Person", "name": "Roman Halliwell" },
"upvoteCount": 3
},
{
"@type": "Answer",
"text": "Shop merchant feeds usually duplicate both — agent-based consumers read each independently.",
"upvoteCount": 1
}
]
}
}
</script>Direct properties (5)
acceptedAnswer: one Answer (or ItemList of Answers when multiple are canonical). This is the green-check answer on SO, the top-voted answer on community Q&A, or the editorially-approved answer on a FAQ.suggestedAnswer: zero or more Answer nodes that are proposed but not accepted. Google shows acceptedAnswer; suggestedAnswer is informational.answerCount: total Answer count (may exceed suggestedAnswer.length if some are truncated from markup).eduQuestionType: free text for learning-resource typing (Multiple choice,Flashcard,True/False,Short answer).parentItem: the Comment or CreativeWork the question belongs to (for threading).
Inherited from Comment: text, author, upvoteCount / downvoteCount, dateCreated. Always populate name (the question itself) plus text (the body text if different).
Q&A rich result requirements
Google's Q&A rich result requires a QAPage with exactly one Question as mainEntity. The Question must have at least one acceptedAnswer or suggestedAnswer. FAQPage uses the same Question shape but allows any number of Questions and no single mainEntity.
Minimal valid version
The smallest markup that still produces a valid Question entity. Use it as the floor. Reach for the advanced example above when you want search engines and AI agents to understand more about your content.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Question",
"name": "How do I nest OfferShippingDetails inside an AggregateOffer?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Put shippingDetails on each child Offer."
}
}
</script>Google rich results this unlocks
Markup matching this example makes your page eligible for the following Google Search rich results. The primary target drives the required / recommended property classification in the advanced code block above.
- Google docsQ&A rich resultprimary
Common Question mistakes
Mistakes that pass validation but silently fail to earn rich results or mislead consumers walking the graph. Avoid these and your markup will be ahead of most sites in the wild.
- 01
Question with no acceptedAnswer or suggestedAnswer
WrongQuestion node with just name + textRightInclude at least one Answer (acceptedAnswer or suggestedAnswer)Google suppresses the Q&A rich result entirely when no answer is attached.
- 02
Multiple acceptedAnswer entries
Wrong"acceptedAnswer": [answer1, answer2]RightExactly one Answer (or wrap multiple as a single ItemList)A Question has at most one accepted answer by design. Arrays are rejected.
- 03
Question used for FAQ item
WrongQuestion + QAPage for every FAQ entryRightMultiple Questions under FAQPage.mainEntity for FAQsQAPage is user Q&A (one canonical question); FAQPage is editorial and carries many Questions. The shapes and eligibility rules differ.
Schema properties in this example
Also mentioned in 3 other examples
Question also appears in AskAction, FAQPage, and QAPage. See the full Question schema page for every reference.
About the example data
A Stack Overflow-style Q&A thread on the Xoo Developer Forum: "How do I nest OfferShippingDetails inside an AggregateOffer?" with the accepted answer from Sean Dunmore plus two suggested alternates.
Comments
Loading comments...