Google FAQ schema markup tells search engines and AI assistants exactly what questions your page answers and what the answers are. It uses a structured data format called FAQPage schema, written in JSON-LD, that you place in your page's HTML. Google reads it. ChatGPT reads it. Perplexity reads it. Claude reads it.
This guide shows you how to add it, where to put it, how to test it, and the mistakes that break it. Everything here is current as of July 2026.
What FAQ schema markup does (and does not do) in 2026
In August 2023, Google restricted the FAQ rich result, the expandable accordion that appeared under search listings, to government and health websites. Everyone else lost the visual feature. A lot of the SEO industry read this as "FAQ schema is dead" and stopped implementing it.
That was wrong. Google restricted a visual SERP feature. They never stopped reading, indexing, or understanding FAQPage schema. The structured data still feeds Google's understanding of what your page is about and what questions it answers. It just no longer produces the accordion widget for most sites.
What changed instead is that AI search engines picked up the slack. ChatGPT, Perplexity, Google AI Overviews, and Claude all read FAQPage schema directly from your HTML. When a user asks one of them a question that matches a FAQ entry on your page, the schema makes it trivial for the AI to extract your answer and cite you as the source.
In our crawl of hundreds of audited sites, roughly 2 percent of local businesses have FAQPage schema. That means adding it puts you ahead of 98 percent of your competitors for question-based AI queries. The implementation takes about 10 minutes per page.
How to add FAQPage schema: step by step
FAQPage schema goes in a script tag in your page's HTML. The format is JSON-LD, which is just structured JSON inside a script tag with a specific type attribute. You do not need any special tool, plugin, or framework to add it. You write the JSON, paste it into your HTML, and you are done.
Step 1: Write your visible FAQ content first
Schema must match visible content. Before you write any JSON, write your FAQ questions and answers as visible HTML on the page. Each question should be a heading (H2 or H3). Each answer should be a paragraph immediately below.
This matters because Google and AI engines cross-reference the schema against the visible page. If your schema has questions that are not visible on the page, that is considered spam behavior and can get the schema ignored.
Step 2: Create the JSON-LD block
Here is a minimal FAQPage schema for two questions:
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "Do you take reservations?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Yes, we take reservations for parties of up to 8. Book online through our website or call us during business hours. We hold reservations for 15 minutes past the scheduled time."
}
},
{
"@type": "Question",
"name": "What time do you open on Sunday?",
"acceptedAnswer": {
"@type": "Answer",
"text": "We open at 10:00 AM on Sunday. Our kitchen serves the full menu from open until 9:00 PM."
}
}
]
}Each question is a Question object with a `name` field (the question text) and an `acceptedAnswer` object containing the answer in the `text` field. That is the entire structure.
Step 3: Place it in your HTML
Wrap the JSON in a script tag and place it in the `<head>` or `<body>` of your page:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [...]
}
</script>The script tag must use `type="application/ld+json"`. A regular `<script>` tag without that type will be treated as JavaScript and will not work.
You can place the script tag anywhere in the HTML. The `<head>` is the conventional location, but placing it at the end of the `<body>` works too. Google and AI crawlers find it either way.
Step 4: If you use WordPress, use a plugin or custom HTML
WordPress does not add FAQPage schema by default. You have three options:
- Use the Yoast FAQ block, which generates FAQPage schema automatically.
- Use the Rank Math FAQ block, which does the same.
- Add the JSON-LD manually using a Custom HTML block or a header injection plugin.
If you use a page builder like Elementor, the Accordion widget does not generate FAQPage schema unless you use a dedicated FAQ widget or add the schema manually. I have seen this trip up a lot of site owners who assume their accordion widget handles schema. It usually does not.
Four rules for writing schema that actually works
Rule 1: Match the schema text to the visible text
The answer in your `text` field should match the answer visible on the page. You do not need to copy it word for word, but the meaning should be the same. If your schema says "Yes, we offer gluten-free options" and your visible page says "We care deeply about all dietary needs," you create a mismatch. Some crawlers skip you. Others pick one version and ignore the other.
Rule 2: Keep answers concise
The `text` field should contain the full answer, but keep it tight. Aim for 40 to 60 words for simple questions. If your visible answer is three paragraphs, put the summary version in the schema. AI extraction models weight the first sentence heaviest. A 40-word schema answer extracts more reliably than a 300-word one.
Rule 3: Write questions the way people actually search
If customers ask "do you take walk-ins," write that as the question. Do not write "Regarding Our Walk-In Policy." AI search engines match your question headings against natural-language queries. The closer your question matches how people actually phrase it, the better the match.
Rule 4: Do not add hidden questions
Every question in your schema should have a corresponding visible question on the page. Adding schema-only questions that human readers cannot see is spam. It does not help, and if Google catches it, they can penalize the entire page.
How to test your FAQ schema
Google provides a free Rich Results Test that validates structured data. Paste your URL or your raw HTML into it and it will tell you whether your FAQPage schema is valid and whether it detects any errors.
The tool is at search.google.com/test/rich-results.
For a more detailed validation that checks against the full schema.org spec (not just Google's rich result requirements), use the Schema Markup Validator at validator.schema.org. This catches issues that Google's tool ignores, like missing recommended properties or incorrect nesting.
If you want to check whether Google has actually indexed your schema, use Search Console. Go to the Enhancements section and look for the FAQ report. If your pages have valid FAQPage schema and Google has crawled them, they will show up there.
One caveat: Google's FAQ report only appears in Search Console if Google detects FAQPage schema on your pages. If you just added it, it may take days or weeks for the report to appear, depending on your crawl rate.
Common errors that break your markup
These are the errors we see most often in our audits.
**Malformed JSON.** A single trailing comma, a missing bracket, or an unescaped quote character will invalidate the entire schema block. JSON is unforgiving. Run your JSON through a validator like jsonlint.com before pasting it into your HTML.
**Wrong script type.** Using `<script type="text/json">` or `<script type="application/json">` instead of `<script type="application/ld+json">`. Only the `ld+json` type is recognized as structured data.
**Schema on the wrong page.** The FAQPage schema is on the homepage, but the actual FAQ content lives on a separate page. The schema should be on the same page where the visible FAQ content appears.
**Duplicate or conflicting schema.** Two FAQPage schema blocks on the same page, or FAQPage schema combined with QAPage schema (a different type for forum-style content). Use one FAQPage block per page.
**Answers that are not answers.** The question is "Do you offer parking?" and the answer is "We are committed to providing a convenient experience for all our guests." That is marketing copy, not an answer. Say yes or no first, then add detail.
What this means for AI search specifically
The reason this matters more in 2026 than it did in 2022 is that AI search engines treat FAQPage schema differently than Google's old rich result did.
Google's accordion was a display feature. It showed your questions and answers in the search results, and users could expand them without clicking through. It was useful for visibility but it also cannibalized clicks.
AI search engines use the schema for extraction. When ChatGPT or Perplexity retrieves your page, it reads the FAQPage schema to find question-and-answer pairs it can cite in generated answers. If your schema says "We open at 10 AM on Sunday," and a user asks "what time does [your business] open on Sunday," the AI can cite your page as the source.
This is the difference between being a display feature and being a citation source. Citations in AI answers drive traffic. Display features in Google results often do not.
We see this in our crawl data. Sites with FAQPage schema get cited by AI search engines for question-based queries at a measurably higher rate than sites without it, even after controlling for overall site quality. The schema is not the only factor, but it is one of the few signals you can add in 10 minutes that produces a measurable change.
The practical takeaway
If you have not added FAQPage schema to your pages yet, do it today. Write five questions your customers actually ask. Write direct answers. Put them on the page as visible headings and paragraphs. Add the JSON-LD. Test it with Google's Rich Results Test. Done.
The most common mistake is overthinking it. The schema format is simple. The validation tools are free. The competitive advantage is large because almost nobody has done it. In our audit data, 98 percent of local business websites have zero FAQPage schema. You can be in the 2 percent by the end of the day.
If you want to know exactly where your site stands on FAQ schema and every other signal that affects AI search visibility, [run a free audit at parceit.com](https://parceit.com/audit). We crawl your site and show you every signal with a prioritized fix list.