XooCode(){

FAQ Schema Generator

Fill out a form. Get valid FAQPage JSON-LD.

A form-driven builder for schema.org FAQPage markup with a live JSON-LD preview that updates as you type. Handles the mainEntity array of Question objects with nested acceptedAnswer shape, plus optional per-question and per-answer metadata (author, dateCreated, upvoteCount) in Full coverage mode. The FAQ rich result mostly died in 2023, but here’s why the schema is still worth shipping. Everything runs in your browser, nothing is sent to XooCode.

FAQ form

The title of your FAQ page. Emits as FAQPage.name.

The canonical URL of the FAQ page itself. Emits as FAQPage.url.

Questions (1)

Each row emits as a Question with a nested acceptedAnswer. At least one question is required for Google's FAQ policy.

  • Question 1

    Plain text or limited HTML (p, br, ol, ul, li, a, b, strong, i, em). Use single quotes inside HTML attributes to avoid escape pitfalls.

Live JSON-LD output

schema.org/FAQPage
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "FAQPage"
}
</script>

Updates as you type. Empty fields are omitted from the output. Click the copy icon above to copy the full <script> tag ready for pasting into your HTML head.

How to use the generator

The tool is a two-pane split: a form on the left, a live JSON-LD preview on the right. Type into any field and the preview updates immediately. When you’re done, click the copy icon in the preview header and paste the <script> block into your page’s <head> tag. That’s the whole workflow.

  1. 1

    Start from the seed example (optional)

    Above the form there’s a Load Dunmore example button. Click it and five Q&A rows populate with the visitor FAQ for the Xoo Code Shop Dunmore, the fictional retail outlet in the Xoo universe. Use it to see what a fully-populated FAQPage looks like, then clear and start over for your own FAQ.
  2. 2

    Pick your coverage mode

    The Coverage dropdown next to the Load example button has two settings. Essential shows the page name, URL, and repeatable question/answer rows (the minimum viable FAQPage). Full keeps all of that and adds publication metadata (description, datePublished, dateModified, inLanguage, author, publisher) plus per-question and per-answer author, dateCreated, and upvoteCount fields.
  3. 3

    Set the page metadata

    The page name becomes FAQPage.name and the URL becomes FAQPage.url. In Full mode the extra page-level fields below populate description, datePublished, dateModified, inLanguage, plus nested author and publisher entities. All optional, all emit only when populated.
  4. 4

    Add your questions and answers

    Each row becomes a Question object with a nested acceptedAnswer of type Answer. Answer text accepts limited HTML tags (p, br, ol, ul, li, a, b, strong, i, em). Use single quotes inside HTML attributes to avoid JSON escape pitfalls. Click Add question at the bottom to append more rows. Use the small Remove button next to each row’s header to drop one.
  5. 5

    Copy the output

    The preview pane shows the full <script type="application/ld+json"> wrapper with syntax highlighting. Click the copy icon to grab it and paste into your page head. Test it with Google’s Rich Results Test before publishing. If you’re on the allowlist, the test will preview the FAQ card. If you’re not, it’ll tell you “valid but not eligible”, which is fine because the non-SERP benefits still apply.

What happened to the FAQ rich result in 2023

For most of 2019 through mid-2023, a well-formed FAQPage block on almost any site produced a visible FAQ card under the organic search result: an accordion of collapsible question summaries, each expandable in-SERP. The card was dramatic enough to measurably increase click-through on supported queries, and FAQ markup deployment took off. By 2022 nearly every major CMS was emitting FAQPage markup from standard content blocks.

Then in August 2023, Google announced that the FAQ rich result was being restricted to a narrow allowlist of government and well-established health authority domains. For everyone else, FAQPage markup kept validating but stopped producing the card. The stated reason was visible-SERP clutter: Google’s research showed the accordion was pushing other results down-page without a proportional user-value win, and the policy change was meant to free up pixels for “the most reliable sources.”

The change was silent and site-by-site. There was no manual action, no Search Console notice, no migration path. Sites that had been getting FAQ cards stopped getting them. Rankings didn’t change (the underlying content still placed where it had been placing), but the high-visibility accordion disappeared. For publishers who had planned content strategy around FAQ rich result acquisition, this was a hard lesson in the “Google gives, Google takes away” nature of SERP features. HowTo rich results went through the same sunset around the same time.

Why FAQPage schema is still worth shipping

The rich result is gone for most sites, but structured FAQPage data still earns its keep in three distinct channels that don’t depend on Google’s SERP-rendering policies at all.

First, AI crawler consumption. Every large language model search product on the market (ChatGPT Search, Perplexity, Gemini, Claude, and Google’s own AI Overviews) reads structured FAQPage data and treats it as high-quality signal for factual Q&A content. When a user asks ChatGPT a question your FAQ answers, the FAQPage markup tells the crawler “this specific answer corresponds to this specific question” in a way unstructured prose cannot. Citations back to your site follow. This channel did not exist in 2019 when FAQPage was designed. It’s now the biggest single reason to still ship the markup.

Second, Google knowledge graph and People Also Ask. Even without the accordion SERP card, Google still parses FAQPage data into its knowledge graph. Well-marked FAQ content surfaces in the “People also ask” accordion that still exists on almost every search result page, in featured snippets at the top of some queries, and in voice assistant answer matching. None of these are technically called “rich results”, but they’re in the same family of search-result features, and Google’s 2023 restriction doesn’t touch them.

Third, internal documentation and retrieval indexes. If you or your team build a search index over your own site content (for a support agent chatbot, a help-center search, a Slack-based lookup), the FAQPage schema is the easiest way to tell the indexer “treat this as Q&A, not prose.” The structured form keeps the question-answer pairing intact through whatever embedding or retrieval pipeline your team ends up using. For teams running LLM-assisted internal tools, shipping FAQPage markup on help content pays off in retrieval quality months before it pays off in search visibility.

FAQPage vs QAPage: two types, one common confusion

schema.org defines two distinct types for question-and- answer content and picking the wrong one silently disqualifies your markup from both rich results (to the extent either still fires for you). This is the single most common FAQ schema mistake in the wild.

FAQPage is for pages where a single authoritative author answers many related questions. Your shop’s FAQ page, a product support guide, a pricing page, a service onboarding doc. The mainEntity property holds an array of Question objects, each with a single acceptedAnswer of type Answer. The whole page is owned by one voice. This generator only emits FAQPage markup.

QAPage is for community Q&A pages like Stack Overflow, Quora, Reddit post threads, or forum discussions. A single user asks a single question, and multiple other users post answers; the community (or a moderator) marks one as accepted. QAPage markup expects mainEntity to hold a single Question object (not an array), with both acceptedAnswer and optionally suggestedAnswer arrays of Answer objects from different authors. The Q&A each carry their own author, dateCreated, and voting counts.

What this generator isn't

The FAQ Schema Generator is a tightly-scoped authoring tool. Knowing what it doesn’t try to do will save you time hunting for features that were never supposed to exist.

It IS a FAQPage JSON-LD builder

Full FAQPage vocabulary: name, URL, description, publication dates, inLanguage, author, publisher, and repeatable Q&A rows with optional per-question and per-answer metadata.

It is NOT a QAPage builder

FAQPage and QAPage are different types with different rich results. This tool emits only FAQPage markup. For user-generated Q&A pages with multiple answer authors, you need QAPage by hand.

It IS AI-crawler aware

The content calls out that the FAQ rich result mostly died in 2023 but AI crawlers (ChatGPT, Perplexity, Gemini, Claude) still consume FAQPage data. Ship the markup and your Q&A shows up in AI answers whether or not Google ever restores the SERP card.

It is NOT a rich result restorer

If you're not on Google's government/health allowlist, no amount of correct markup brings back the FAQ SERP card. This tool emits valid FAQPage JSON-LD, not magic eligibility.

It IS Essential/Full aware

Essential mode shows only the minimum viable fields. Full mode exposes every semantically-useful page-level and per-Q&A property schema.org defines for FAQPage + Question + Answer.

It is NOT a Rich Results Test

Run the JSON-LD through Google's Rich Results Test afterwards to catch value-level mistakes the form can't see (broken URLs, invalid dates, etc).

Authoritative sources behind the FAQPage vocabulary

The generator’s behaviour is sourced from primary documentation. These are the documents to consult when you need to verify anything the tool produces.

  • schema.org/FAQPage. The canonical vocabulary definition. FAQPage inherits from WebPage which inherits from CreativeWork which inherits from Thing, so the full property list is much longer than the FAQPage-specific section.
  • schema.org/Question and schema.org/Answer. The two nested types FAQPage composes. Question carries acceptedAnswer, suggestedAnswer, answerCount, and inherits the full CreativeWork property list. Answer is simpler.
  • Google FAQPage structured data documentation. The current required/recommended property lists and the August 2023 eligibility restriction. Read this first when deciding whether to ship FAQPage markup.
  • Google Search Central: Changes to HowTo and FAQ rich results. The original 2023 announcement of the restriction, including the government/health allowlist policy. The canonical primary source for what happened and when.
  • Google Rich Results Test. Run your generator output through this to confirm the markup is valid. It will tell you “valid but not eligible” if you’re not on the FAQ allowlist, which is the expected response for most sites.
  • Schema Markup Validator. The schema.org-maintained validator. Use it for vocabulary conformance independent of Google’s rich result policies.