← Back to Blog
Structured DataAugust 30, 2026· 7 min read

acceptedAnswer: How to Fix FAQ Schema Errors (Missing Field, Invalid Type)

Nearly every FAQPage validation failure traces back to one property: acceptedAnswer. This guide covers every acceptedAnswer error message, what actually causes it, and the exact JSON-LD fix for each.

Not sure which error you have?

Paste your page URL into SEO-Snap's free FAQ schema validator — it flags every acceptedAnswer problem instantly, no account needed. Validate your FAQ schema →

What is acceptedAnswer?

acceptedAnswer is the property that holds the answer inside FAQPage structured data. The nesting is always the same: a FAQPage contains a mainEntity array of Question objects, and every Question carries exactly one acceptedAnswer — an Answer object whose text field is the answer itself.

Because the whole chain is required, a single missing or malformed acceptedAnswer invalidates the entire FAQ block — Google and AI platforms like ChatGPT and Perplexity then ignore all of it, silently. That's why this one property generates most FAQ schema error messages.

What correct acceptedAnswer markup looks like

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "name": "How long does shipping take?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Standard shipping takes 3-5 business days."
      }
    }
  ]
}
</script>

Every acceptedAnswer error — and its fix

"A value for the acceptedAnswer field is required"

Critical

Cause: A Question object has no acceptedAnswer property at all — usually a generator plugin skipped an empty answer, or the property name is misspelled.

Give every Question exactly one acceptedAnswer object. If an FAQ entry has no answer yet, remove that Question from the schema rather than leaving the field empty.

"Missing field acceptedAnswer" / "Missing field mainEntity"

Critical

Cause: Same root cause at different levels: FAQPage requires mainEntity (an array of Questions), and each Question requires acceptedAnswer.

Check the nesting: FAQPage → mainEntity → Question → acceptedAnswer → Answer → text. Every level must be present.

"Invalid object type for field acceptedAnswer"

Critical

Cause: The answer was written as a plain string instead of an Answer object — the most common hand-written mistake.

Wrap it: "acceptedAnswer": { "@type": "Answer", "text": "your answer here" }. The @type must be exactly "Answer".

acceptedanswer / AcceptedAnswer not recognised

High

Cause: Schema.org property names are case-sensitive camelCase. "acceptedanswer", "AcceptedAnswer", and "accepted_answer" are all silently ignored — the validator then reports the field as missing.

Use exactly acceptedAnswer. Same rule applies to mainEntity (not mainentity) and the @type values Question and Answer.

"Either acceptedAnswer or suggestedAnswer should be specified"

High

Cause: You used QAPage (or Question outside FAQPage) without any answer property. QAPage expects user-submitted answers.

For a normal FAQ page written by you, switch the top-level @type to FAQPage and give each Question one acceptedAnswer. Reserve QAPage + suggestedAnswer for forum-style pages.

Multiple acceptedAnswers on one Question

Medium

Cause: On FAQPage, each Question takes exactly one acceptedAnswer. Arrays of answers belong to QAPage’s suggestedAnswer.

Merge the answers into one Answer.text, or split the entry into separate Questions.

acceptedAnswer vs suggestedAnswer

These two properties belong to different page types, and mixing them up is the source of the confusing "either acceptedAnswer or suggestedAnswer should be specified" message:

FAQPageQAPage
Who writes the answersThe site itselfUsers (forum-style)
acceptedAnswerRequired — exactly one per QuestionOptional — the marked-correct answer
suggestedAnswerNever usedThe other user-submitted answers
Typical pagesFAQ sections, help pages, product FAQsForums, Q&A communities, support threads

How to check your acceptedAnswer markup

Don't debug by eye — casing mistakes and missing nesting levels are exactly what eyes skip over. Run the page through a validator:

  1. Paste your URL into the free FAQ schema validator — it checks the full FAQPage → Question → acceptedAnswer chain and flags each broken level.
  2. Cross-check rich result eligibility with Google's Rich Results Test.
  3. After fixing, re-validate and request re-indexing in Search Console. Google typically picks up schema changes within 1–2 weeks.

For the broader picture — what FAQ schema is, how to add it, and why it still matters for AI search — see the full FAQ schema validator guide.

Frequently asked questions

What is acceptedAnswer in FAQ schema?
acceptedAnswer is the required property on every Question inside FAQPage structured data. It holds the answer to the question as an Answer object with a "text" field. Each Question in a FAQPage must have exactly one acceptedAnswer — without it, validators report "a value for the acceptedAnswer field is required" and the whole FAQ block is ignored.
How do I fix "A value for the acceptedAnswer field is required"?
This error means a Question in your FAQPage schema has no acceptedAnswer property (or it is misspelled). Add an acceptedAnswer object to every Question: {"@type": "Question", "name": "...", "acceptedAnswer": {"@type": "Answer", "text": "..."}}. Note the exact camelCase spelling — "acceptedanswer" or "AcceptedAnswer" will not be recognised.
What is the difference between acceptedAnswer and suggestedAnswer?
acceptedAnswer is the single authoritative answer, used on FAQPage (where the site itself writes the answers). suggestedAnswer is for QAPage (forum-style pages where users submit multiple answers) — a QAPage Question can carry one acceptedAnswer plus several suggestedAnswers. On a normal FAQ page, always use FAQPage with exactly one acceptedAnswer per Question and no suggestedAnswer.
Why does the validator say "Invalid object type for field acceptedAnswer"?
You passed a plain string as the answer instead of an Answer object. Wrong: "acceptedAnswer": "We ship in 3 days." Correct: "acceptedAnswer": {"@type": "Answer", "text": "We ship in 3 days."}. The value must be an object with "@type": "Answer" and a "text" property.
Can acceptedAnswer contain HTML?
Yes — the text field of an Answer may contain a limited set of HTML tags: h1–h6, br, ol, ul, li, a, p, div, b, strong, i, and em. Any other tags are stripped. Remember to escape double quotes inside the JSON string, or the whole JSON-LD block becomes unparseable.

Find your acceptedAnswer errors in seconds

Validates the full FAQPage chain · flags missing and malformed fields · free, no account needed

Validate FAQ schema free →