DeepSmith

Jul 26 · AEO & AI Visibility

14 min read

How to Implement FAQ Schema to Get Cited by AI Answer Engines

Avinash Saurabh
Avinash Saurabh · CO-Founder & CEO
Monochrome geometric illustration of a stack of question and answer cards on a charcoal background, with connection lines carrying one pair out to a separate answer panel, under the centered white cover line "FAQ Schema for AI Citations".

You added FAQ schema years ago, the SERP dropdown disappeared, and now someone is asking whether the markup still earns you anything in ChatGPT or Perplexity. It is a fair question, and the honest answer has moved.

This guide walks you through FAQ schema for AI citations end to end: deciding whether your page qualifies, building a valid FAQPage block, validating it, and checking whether answer engines actually pick your page up. You will have working markup on a page by the end of an afternoon.

Take a breath first. This is one of the smaller jobs in your AEO backlog, and you are closer than you think.

Step 1: Get honest about what FAQ schema actually does

Start here, because the wrong expectation is what makes this work feel disappointing later.

Most FAQ schema AI advice online lands in one of two camps: the schema is dead, or the schema is a citation cheat code. Both are wrong. The truth sits between them, and it is more useful than either.

Google restricted FAQ rich results in August 2023 to well-known, authoritative government and health websites. Everyone else lost the accordion. In May 2026, Google's documentation recorded that the FAQ rich result is no longer shown in Google Search at all. The visual feature is gone.

The schema type is not. FAQPage remains an active Schema.org type, it still validates, and Google still parses it. Only the SERP decoration retired.

So what about AI answer engines? Here is the part most articles will not tell you. No vendor, not OpenAI, not Anthropic, not Google, not Perplexity, has published documentation confirming a special parser for FAQPage JSON-LD separate from ordinary HTML retrieval. Anyone promising you that a specific engine "reads your FAQ schema" is guessing.

What we do know is how these engines work. ChatGPT, Gemini, Perplexity, Claude, and Google AI Mode all run retrieval-augmented generation: they fetch candidate pages, rank passages inside them, and compose an answer with citations. Retrieval is the only step you can influence from your side of the screen.

Practitioner analyses across several SEO vendors do consistently report higher citation rates for pages that use question-form headings, put a self-contained answer directly under each one, keep the HTML clean, and carry valid FAQPage markup. None of those analyses separate the JSON-LD from the visible structure, so nobody has proven the schema itself causes the lift. The two travel together.

Here is the position worth writing on your whiteboard: FAQ schema does not open a private channel to any AI vendor. It packages your questions and answers in the shape retrievers already prefer. It is low cost and low risk, the visible structure does most of the work, and the schema is the label that matches it.

That is the whole FAQ schema AI citations claim, stated at a size you can actually defend. Smaller than the hype, and still worth your afternoon.

How you know this step is done: you can explain to your boss why you are adding this without promising a ranking feature.

Where people go wrong: they pitch FAQ schema internally as a citation switch, then get asked for the citation lift six weeks later and have nothing to show.

Step 2: Confirm your page is really an FAQ

Not every page with a question on it earns this markup.

FAQPage is for curated question and answer lists that you wrote, where each question has one canonical answer. The Q/A list should be the page, not a sidebar buried at the bottom of a 3,000-word essay.

There is a sibling type, QAPage, and people mix these up constantly. QAPage is for a single primary question with many competing user-submitted answers, forum style, Stack Overflow style. If your users are not submitting the answers, you want FAQPage.

Ask yourself one question: if someone landed on this page cold, would they describe it as an FAQ? If yes, continue. If it is an article that happens to end with three questions, you have two honest options. Restructure the page around the Q/A pairs, or skip the schema and let the page stand on its own.

Common mistake: using FAQPage on any page that contains a question. A single Q&A buried in a long article does not justify the type, and stretching it here is exactly the kind of thing that gets markup ignored.

How you know this step is done: you can count the Q/A pairs on the page and they are the reason the page exists.

Step 3: Write each answer so it survives being lifted out

Your schema will only ever be as good as the content it describes. That is not filler advice, it is the whole mechanism.

An answer engine does not quote your page. It quotes a passage. So write every answer to survive being pasted into a chat window with nothing around it.

Four things to get right:

  1. One question, one self-contained answer. No "as we mentioned above." The passage travels alone.
  2. Lead with the answer in the first sentence. Skip "Great question" and "That's a common concern." Answer, then elaborate.
  3. Mirror real buyer language. Phrase the question the way your buyer types it, not the way your product team says it internally.
  4. Keep the surrounding HTML clean. Clutter between the question and the answer makes the block harder to isolate.

That is as far as we go on craft here, because writing genuinely citable FAQ answers is its own discipline and it deserves more room than a step in a schema guide.

How you know this step is done: paste any single answer into a blank document. If it reads as a complete thought, ship it.

Where people go wrong: writing the answers to sound good on the page, then discovering the schema forces them to be self-contained anyway, and rewriting everything twice.

Step 4: Build the FAQPage JSON-LD block

Now the part you came for. Here is how to add FAQ schema in the format Google asks for: JSON-LD, in a script tag.

If your page has one question, this is the whole thing:

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": {
    "@type": "Question",
    "name": "What is FAQ schema?",
    "acceptedAnswer": {
      "@type": "Answer",
      "text": "FAQ schema is a structured data type defined by Schema.org that lets you mark up a page of questions and answers so machines can parse each pair individually. It uses the FAQPage, Question, and Answer types."
    }
  }
}
</script>

Most pages have several questions. The preferred form wraps them in an ItemList so the order is explicit:

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": {
    "@type": "ItemList",
    "itemListElement": [
      {
        "@type": "ListItem",
        "position": 1,
        "item": {
          "@type": "Question",
          "name": "What is FAQ schema?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "FAQ schema is a structured data type defined by Schema.org that lets you mark up a page of questions and answers so machines can parse each pair individually."
          }
        }
      },
      {
        "@type": "ListItem",
        "position": 2,
        "item": {
          "@type": "Question",
          "name": "Does FAQ schema still show rich results on Google?",
          "acceptedAnswer": {
            "@type": "Answer",
            "text": "Not for most sites. Since August 2023 Google restricted the FAQ rich result to well-known authoritative government and health sites, and in May 2026 the feature was retired across Google Search. The schema itself is still valid and is still parsed."
          }
        }
      }
    ]
  }
}
</script>

Every FAQ schema JSON-LD block owes you the same handful of things. Read them straight off that example and you have the entire contract:

  • @context is always https://schema.org. Every JSON-LD block needs it.
  • @type is declared at every level: FAQPage, then Question, then Answer.
  • mainEntity carries the questions, and it needs at least one.
  • Every Question needs name (the full question text) and acceptedAnswer.
  • Every Answer needs text, and that text cannot be empty.
  • With an ItemList, each ListItem needs position, starting at 1.

The rule that matters most: build the block from the visible content, not from memory. Same wording, same order, same number of pairs. Copy and paste rather than retype.

If you are hand-maintaining FAQPage structured data across a growing library, that copy-paste discipline is where things quietly rot. Schema markup, heading structure, internal linking, and metadata are part of DeepSmith's writing pipeline rather than a cleanup pass after the draft exists, which is one way teams keep the markup and the visible page from drifting apart.

How you know this step is done: your block parses as valid JSON and every question on the page appears in it, word for word.

Step 5: Add the optional properties worth having

The required set gets you valid. A few optional properties make the block more useful, and they cost you about four minutes.

"about": { "@type": "Thing", "name": "FAQ schema markup" },
"inLanguage": "en-US",
"datePublished": "2026-07-15",
"dateModified": "2026-07-15",
"author": { "@type": "Organization", "name": "Your Company" },
"publisher": { "@type": "Organization", "name": "Your Company", "url": "https://example.com" }

Two more worth knowing:

Add url on each Question as a deep link to its anchor on the page, like https://example.com/faq#what-is-faq-schema. It helps human readers and crawlers land on the exact pair.

Bump dateModified whenever you change an answer. A stale date works against the trust signals you are trying to build.

One property to leave alone unless you mean it: speakable. It flags which sections a voice assistant should read aloud. It is for text-to-speech, not a lever for AI citations, and using it as one just adds noise.

Pro tip: pairing FAQPage with an Article or WebPage block is normal and does not conflict. Most publishers do exactly that.

Step 6: Place the script and keep it to one block

Your FAQ schema JSON-LD can live in two accepted places: inside <head>, or at the end of <body>. Head is cleanest. End of body is common in CMS templates. Pick whichever your setup makes easy, because neither one wins.

The rule that actually bites: one FAQPage block per URL. You will see multi-block pages in the wild, and parsers commonly treat them as conflicting. If you have questions in two places on the page, combine them into a single FAQPage block with multiple Question entries.

How you know this step is done: view source, search for application/ld+json, and find exactly one FAQPage block.

Step 7: Validate before you ship

Do not skip this. Four checks, in this order, and the second one will scare you if you are not ready for it.

  1. Schema Markup Validator at validator.schema.org. This confirms your FAQPage structured data matches the Schema.org definition: right parent type, required properties present, correct value types. It replaced Google's retired Structured Data Testing Tool.
  2. Google Rich Results Test at search.google.com/test/rich-results. This tells you whether the markup would be eligible for a Google rich result. For a general site after May 2026, valid FAQ markup will typically report as not eligible. That is expected. Your markup is not broken.
  3. Search Console URL Inspection. After you deploy, request indexing, then check the Structured Data section to confirm Google parsed the FAQPage type. Because of the 2023 policy change, most publishers will not see this under the Enhancements report, so URL Inspection is your main confirmation.
  4. Browser DevTools. View source, find the script block, and paste its contents into a JSON parser to confirm your FAQ schema JSON-LD is valid JSON. Catching a stray comma here saves you a day of confusion.

Where people go wrong: seeing "not eligible" in the Rich Results Test, assuming the implementation failed, and ripping out markup that was perfectly fine.

Step 8: Check yourself against the mistakes that break FAQ markup

Almost every broken implementation is one of these eight. Run the list before you call it done.

  1. Marking up content users cannot see. Schema on content hidden by CSS, stuck behind accordions that never expand, or living only in the script block violates Google's spam policies. Parsers ignore it.
  2. Mismatched wording. The Question.name or Answer.text differs from the on-page text, even by punctuation. Copy and paste, exactly.
  3. Empty Answer.text. Empty or whitespace-only strings fail validation outright.
  4. Multiple FAQPage blocks on one URL. Combine them.
  5. Wrong type names. @type: "FAQ" instead of "FAQPage", or Question where the answer body belongs.
  6. Missing @context. The block does nothing without it.
  7. Unescaped characters. Inner quotes need escaping as \". Apostrophes in contractions are fine, but smart quotes pasted from a doc are a real risk.
  8. FAQPage on a non-FAQ page. Step 2. It still catches people.

That mistake list? Almost everyone has made at least two of them. Fixing one this week is a good week.

Step 9: Track whether AI engines actually cite the page

Markup shipped is not the finish line. FAQ schema for AI citations only pays for itself if you measure it, because otherwise you are guessing about the only outcome you care about.

Pick a fixed set of the questions your buyers actually ask. Run them across ChatGPT, Perplexity, Gemini, Claude, and Google AI Mode on a schedule, not once in a panic. Record which URLs get cited. Then look for FAQ pages that should be showing up and are not, and treat those as your next batch of work.

Be patient with the clock. For Google Search, indexing usually happens within days of a crawl. For the answer engines, refresh cadence is opaque and none of them publish a timeline. Assume weeks, and do not rewrite the page in week one because nothing moved.

Doing this by hand across five engines gets old fast, which is the gap DeepSmith's AI visibility tracking is built for: you define the prompts, it checks them on a schedule and reports mention rate, citation rate, and which of your pages are actually being cited. It tracks what engines do; it does not control or guarantee citations, and no honest tool will tell you otherwise.

How you know this step is done: you have a repeating check and a short list of pages that deserve citations but are not getting them.

What to do next

You now know how to add FAQ schema that validates, and roughly what it is worth. The harder part is the habit, so keep the first pass small.

Pick one page. Your pricing FAQ or your product FAQ is usually the best first choice, because the questions are already written and the buyer intent is already there.

Work Steps 2 through 7 on that single page this week. Ship it, validate it, then add it to your tracked prompts and leave it alone for a month.

Then do the next one. Momentum matters more than a perfect rollout across forty pages, and a small first step you finish beats a big plan you abandon.

If the tracking and the production around all of this is what keeps stalling, that is the problem DeepSmith works on: seeing where you show up in AI answers, finding the gaps, and producing the on-brand content that closes them. You can start a free trial and look at real data on your own pages before you decide anything.

Frequently asked questions

Does FAQ schema help content get cited in AI answers?

No AI vendor has published documentation confirming a special parser for FAQPage JSON-LD. Practitioner reports describe higher citation rates for FAQ-formatted content, but they do not isolate the JSON-LD from the visible Q/A structure, so causation is not established. Treat the schema as a packaging format, not a citation switch.

Is FAQPage schema still valid in 2026?

Yes. FAQPage remains an active Schema.org type and Google continues to parse it. The visible FAQ accordion in Google search results was restricted to authoritative government and health sites in August 2023, and the feature is no longer shown in Google Search as of May 2026. The schema type and the SERP feature are different things.

What is the difference between FAQPage and QAPage?

FAQPage is for curated Q/A lists where each question has a single canonical answer that you wrote. QAPage is for a single primary question with many competing user-submitted answers, like a forum thread. Use FAQPage for any standard FAQ.

Can I put multiple FAQPage blocks on one page?

It is not recommended. Multiple blocks appear in the wild, but parsers commonly treat them as conflicting. Combine everything into one FAQPage block with multiple Question entries.