FAQ schema for answer engines: markup and checks
Contents
An answer engine wants a question and a clean answer it can lift. FAQ markup hands it both in a form it does not have to guess at.
Which checks cover FAQ content?
| Check id | What it tests | Fix |
|---|---|---|
aeo_faq | FAQPage schema is detected | Add FAQPage markup |
aeo_faq_count | The FAQPage lists 3 or more questions | Add more real questions |
faq_valid | Each question has a name and answer text | Fill both fields |
aeo_question_headings | A heading starts with What, How or Why, or ends with ? | Phrase an h2 as a question |
aeo_answer_after_question | A paragraph directly follows each question heading | Put the answer right under the heading |
aeo_answer_length_ideal | Half or more of the answers after question headings are 20 to 80 words | Tighten or expand |
aeo_faq_count, faq_valid and the answer checks are skipped when there is nothing to test, so they only apply once you add FAQ content.
What does the markup look 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": "Orders ship within two working days. Delivery then takes three to seven working days inside the country, and you get a tracking link by email."
}
},
{
"@type": "Question",
"name": "Can I return a mug?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Yes. Send it back within 30 days in its original box and we will refund the full price once it arrives at our warehouse."
}
},
{
"@type": "Question",
"name": "Are the mugs dishwasher safe?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Yes. Use the top rack of the dishwasher and a gentle cycle, and the glaze will last for many years."
}
}
]
}
</script>
How should the visible page match?
Show the same questions as headings and put each answer in the paragraph below. Then the schema and the page agree, and the page passes the question heading checks too:
<h2>How long does shipping take?</h2>
<p>Orders ship within two working days. Delivery then takes three to seven working days inside the country, and you get a tracking link by email.</p>
What are the common mistakes?
- Marking up questions nobody asked. Use real ones.
- Putting a sales pitch in the answer.
- Leaving
textempty, which failsfaq_valid. - One huge answer. Split it into separate questions.
- Schema that does not match the page text.
Key takeaways
- Add FAQPage JSON-LD with 3 or more questions you really answer.
- Give every question a
nameand an answertext. - Mirror the markup with question headings and short answers on the page.
- More on the format in JSON-LD basics and every AEO check.
FAQ
- Do I need FAQ markup if I have a visible Q&A section?
- No. The aeo_faq check passes only on FAQPage schema, so a visible Q&A section alone does not pass it. Add the markup, and keep the same questions visible on the page.
- How many questions should I include?
- findable recommends 3 or more in the aeo_faq_count check. Add as many as you genuinely answer on the page.
- Can the markup differ from the visible text?
- It should not. Mark up the same questions and answers a reader can see. Hidden or invented answers are a trust problem.
- Should answers be long?
- Keep them short and direct. A few sentences that answer the question on their own work best.
How does findable score a page?
| Family | Weight | Question it asks |
|---|---|---|
| SEO | 50% | Can crawlers read and index this page? |
| AEO | 25% | Is it easy to lift an answer from this page? |
| GEO | 25% | Does the page give a generative model a reason to cite it? |
The hosted audit waits up to 10 s for a page and fetches at most 5 MB. It reads robots.txt and llms.txt up to 512 KB each.
More guides
- Every findable AEO Check ID and How to Fix It
- All 35 AEO checks in findable explained, from aeo_faq to aeo_summary. See what each id tests, how loose the test is and how to fix it. AEO is 25% of the score.
- Canonical Tags and Duplicate Content: How to Get Them Right
- Use one canonical link per page that points to its own absolute URL. Learn the checks canonical, canonical_self and canonical_absolute and fix them.
- Get Findable in 15 Minutes: A Step by Step Checklist
- Install findable, audit a page and your site, fix the top failures, then add MCP, the web UI, the API and a CI gate. Every step has a copy-paste command.
- Every findable GEO Check ID, Plus AI Crawler Checks
- All 27 GEO checks in findable explained, plus the unscored Site checks for GPTBot, ClaudeBot and llms.txt. GEO is 25% of the score. Fixes included.
- Image Alt Text, Dimensions and Lazy Loading Explained
- Fix img_alt, img_dimensions, img_alt_quality, img_lazy_loading and img_modern_format. See what each image check in findable tests and how to pass.
- JSON-LD Schema Basics: What findable Checks and Why
- Learn what JSON-LD is, which schema.org types findable validates, and how to fix jsonld_valid, jsonld_context and empty or relative values.
- llms.txt: What It Is and How findable Checks It
- llms.txt is a plain Markdown file at your site root that points AI tools to your key pages. See the llms-txt check and how to write the file.
- How to Write a Meta Description That Passes findable
- Write a meta description of 120 to 160 characters, one per page, that matches the page. See the checks desc_exists, desc_length and desc_single.
- Open Graph and Twitter Cards: Fix Your Share Previews
- Add og:title, og:description, og:image, og:url and twitter:card so links unfurl well. See every social check findable runs and how to pass it.
- robots.txt and AI Crawlers: GPTBot, ClaudeBot, PerplexityBot
- How robots.txt rules decide whether GPTBot, ClaudeBot, PerplexityBot and Google-Extended can fetch your page, and how findable tests each one.
- Every findable SEO Check ID and How to Fix It
- A plain guide to all 98 SEO checks in findable, from title_length to csp. See what each id tests, when it passes and the fix. SEO is 50% of your score.
- SEO vs AEO vs GEO: The Difference in Plain Words
- SEO, AEO and GEO each target a different reader: a search crawler, an answer box, or a generative AI model. See what wins in each and how to check them.
- Why AI Answer Engines Skip Your Site and How to Fix It
- ChatGPT, Perplexity and Claude may ignore your pages for five fixable reasons, from robots.txt blocks to missing answers. Learn each cause and its check id.