FREE TOOL · NO SIGNUP

Generate QAPage JSON-LD in Seconds

Mark up community Q&A pages the right way: one question, an accepted answer, and as many suggested answers as you need — with author, upvotes, URL, and date. Copy or download valid schema in one click.

QAPage inputs

Accepted answer
Example output — enter your question and answer to generate your own QAPage schema.
QAPage JSON-LD3 answers Valid
No issues found — this QAPage markup is ready to validate in Google’s Rich Results Test.

JSON-LD output

{
  "@context": "https://schema.org",
  "@type": "QAPage",
  "@id": "https://example.com/questions/qapage-structured-data",
  "mainEntity": {
    "@type": "Question",
    "name": "How do I add QAPage structured data to a community Q&A page?",
    "answerCount": 3,
    "text": "I run a forum-style page where one question collects multiple user answers. Which schema.org type should I use, and how do I mark up the accepted answer?",
    "author": {
      "@type": "Person",
      "name": "Priya Sharma"
    },
    "upvoteCount": 42,
    "dateCreated": "2026-05-12",
    "acceptedAnswer": {
      "@type": "Answer",
      "text": "Use the QAPage type with a single Question as the mainEntity. Mark the best/community-chosen reply as acceptedAnswer and list the rest under suggestedAnswer. Each Answer can carry an author, upvoteCount, url, and dateCreated. Do not use FAQPage — that is for pages where the site itself authors both the questions and answers.",
      "author": {
        "@type": "Person",
        "name": "Daniel Okafor"
      },
      "upvoteCount": 128,
      "url": "https://example.com/questions/qapage-structured-data#answer-1",
      "dateCreated": "2026-05-12"
    },
    "suggestedAnswer": [
      {
        "@type": "Answer",
        "text": "Remember that QAPage expects exactly one Question. If your page lists many independent questions, that is a different content model and QAPage is not the right fit.",
        "author": {
          "@type": "Person",
          "name": "Mei Lin"
        },
        "upvoteCount": 36,
        "url": "https://example.com/questions/qapage-structured-data#answer-2",
        "dateCreated": "2026-05-13"
      },
      {
        "@type": "Answer",
        "text": "Validate the output in Google’s Rich Results Test before shipping. The acceptedAnswer and suggestedAnswer text should match what users actually see on the page.",
        "author": {
          "@type": "Person",
          "name": "Carlos Mendez"
        },
        "upvoteCount": 9,
        "url": "https://example.com/questions/qapage-structured-data#answer-3",
        "dateCreated": "2026-05-14"
      }
    ]
  }
}

Embed as <script>

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "QAPage",
  "@id": "https://example.com/questions/qapage-structured-data",
  "mainEntity": {
    "@type": "Question",
    "name": "How do I add QAPage structured data to a community Q&A page?",
    "answerCount": 3,
    "text": "I run a forum-style page where one question collects multiple user answers. Which schema.org type should I use, and how do I mark up the accepted answer?",
    "author": {
      "@type": "Person",
      "name": "Priya Sharma"
    },
    "upvoteCount": 42,
    "dateCreated": "2026-05-12",
    "acceptedAnswer": {
      "@type": "Answer",
      "text": "Use the QAPage type with a single Question as the mainEntity. Mark the best/community-chosen reply as acceptedAnswer and list the rest under suggestedAnswer. Each Answer can carry an author, upvoteCount, url, and dateCreated. Do not use FAQPage — that is for pages where the site itself authors both the questions and answers.",
      "author": {
        "@type": "Person",
        "name": "Daniel Okafor"
      },
      "upvoteCount": 128,
      "url": "https://example.com/questions/qapage-structured-data#answer-1",
      "dateCreated": "2026-05-12"
    },
    "suggestedAnswer": [
      {
        "@type": "Answer",
        "text": "Remember that QAPage expects exactly one Question. If your page lists many independent questions, that is a different content model and QAPage is not the right fit.",
        "author": {
          "@type": "Person",
          "name": "Mei Lin"
        },
        "upvoteCount": 36,
        "url": "https://example.com/questions/qapage-structured-data#answer-2",
        "dateCreated": "2026-05-13"
      },
      {
        "@type": "Answer",
        "text": "Validate the output in Google’s Rich Results Test before shipping. The acceptedAnswer and suggestedAnswer text should match what users actually see on the page.",
        "author": {
          "@type": "Person",
          "name": "Carlos Mendez"
        },
        "upvoteCount": 9,
        "url": "https://example.com/questions/qapage-structured-data#answer-3",
        "dateCreated": "2026-05-14"
      }
    ]
  }
}
</script>

Paste this into the <head>of your Q&A page. Make sure the question and answer text match what visitors actually see on the page.

The Complete Guide

QAPage Schema, Explained: When to Use It and How to Get It Right

5 MIN READ

Understand with AI

Discuss with your preferred AI assistant

1
One question

A valid QAPage has exactly one Question as its mainEntity — never multiple questions.

1
Accepted answer

Google strongly prefers a single acceptedAnswer; all other replies go under suggestedAnswer.

< 60s
Setup time

Paste the question and answers and copy valid JSON-LD in under a minute — no code required.

QAPage structured data tells Google that a page is built around a single question with answers contributed by your community. When implemented correctly, it can earn rich results that show the question and the top answer right in the search listing — driving qualified clicks to forum threads, support pages, and discussion boards.

This guide explains what QAPage schema is, exactly when to use it (and the costly mistake of confusing it with FAQPage), the fields that matter, and how to generate valid JSON-LD in seconds.

What Is QAPage Schema?

QAPage is a schema.org type for pages where users ask a question and other users answer it — like Stack Overflow, Quora, Reddit threads, or a product Q&A widget. The page has one primary question (the mainEntity), one community-chosen acceptedAnswer, and any number of suggestedAnswer entries.

The key word is community. QAPage describes content where the visitors supply the answers, not content the site author wrote themselves.

QAPage vs FAQPage: The Distinction That Trips Everyone Up

This is the single most important thing to get right, because using the wrong type is a structured-data policy violation:

Use QAPage when…Use FAQPage when…
One question is answered by your users/community.The site itself wrote both the questions and the answers.
Multiple answers compete; one is accepted/best.There is exactly one official answer per question.
Answers have authors, upvotes, and timestamps.Answers are editorial content, not user-generated.
Example: a forum thread or product question.Example: a pricing or support FAQ section.

Put simply: if your team wrote the answers, use FAQPage. If your users wrote them, use QAPage. Never mark up the same content as both.

The Fields That Matter

A complete QAPage entry uses these properties:

  • Question.name — the question itself (required). Keep it concise and phrased as a real question.
  • Question.answerCount — the total number of answers on the page, even if you only mark up the best ones.
  • acceptedAnswer — the single best/community-accepted answer. Google strongly prefers pages that have one.
  • suggestedAnswer — all other answers, listed as an array.
  • Answer.text — the full answer body (required for each answer).
  • Answer.upvoteCount — net votes; Google uses this to rank which answer to surface.
  • Answer.author, url, and dateCreated — trust and freshness signals that strengthen eligibility.

How to Generate QAPage JSON-LD, Step by Step

1. Confirm the page is genuinely a Q&A page

Check that the page has one main question with user-contributed answers. If it does not, QAPage is the wrong type and the markup will be rejected.

2. Enter the question and mark the accepted answer

Paste the question text, then the answer your community accepted. The accepted answer is the one most likely to appear in the rich result, so make sure it is the genuinely best response.

3. Add the remaining answers as suggested answers

List the other replies as suggested answers, each with its author, upvote count, permalink URL, and date. Match the markup to what visitors actually see.

4. Validate and embed

Copy the generated JSON-LD into a <script type="application/ld+json"> tag in the page <head>, then run it through Google's Rich Results Test before shipping.

QAPage Best Practices

  • Mirror the visible page. The marked-up text must match what users see — paraphrasing or hiding content violates Google's guidelines.
  • Always include an accepted answer when one exists; it is the strongest eligibility signal.
  • Keep answerCount honest — it should reflect every answer on the page, not just the ones in your markup.
  • Use real upvote counts so Google can choose the most helpful answer to display.
  • Re-validate after content changes so deleted or edited answers don't leave stale schema behind.

Common QAPage Mistakes

  • Using QAPage for editorial FAQs (that's FAQPage) — the most frequent and most penalised error.
  • Marking up more than one question under a single QAPage; QAPage expects exactly one mainEntity Question.
  • Forgetting the accepted answer, which weakens rich-result eligibility.
  • Letting the markup drift out of sync with the visible answers after edits.

Expert Tips

Pick QAPage or FAQPage deliberately

If your users wrote the answers, use QAPage. If your team wrote them, use FAQPage. Choosing the wrong type is the most common reason QAPage markup gets flagged, so decide before you generate anything.

Match the markup to the visible page

Google requires that the question and answer text in your schema mirror what visitors actually see. After generating the JSON-LD, run it through the Rich Results Test and confirm every answer matches the live content.

Frequently Asked Questions

What is QAPage schema used for?

QAPage schema marks up a page built around a single question answered by your community or users — like a forum thread or product Q&A. It can earn rich results that show the question and top answer directly in Google search.

What's the difference between QAPage and FAQPage?

Use QAPage when users supply the answers and one is accepted as best; use FAQPage when the site itself authored both the questions and the official answers. Marking editorial FAQs as QAPage is a policy violation.

Does a QAPage need an accepted answer?

It's not strictly required, but Google strongly prefers QAPages that include an acceptedAnswer. If your page has a community-chosen best answer, always mark it as the accepted answer to improve rich-result eligibility.

Can I have multiple questions on one QAPage?

No. A QAPage expects exactly one Question as its mainEntity. If your page lists many independent questions, that's a different content model and QAPage is not the correct type.

Related guides

Related tools