FAQ Schema Generator
Build FAQPage structured data by filling in question and answer cards, then copy the JSON-LD for your page.
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "Are SocialTools free?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Yes. All tools are free with no signup required."
}
},
{
"@type": "Question",
"name": "Do I need an API key?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Most tools run in your browser with no paid API."
}
}
]
}Runs in your browser. Nothing you enter is uploaded.
What it does
FAQPage markup describes a list of questions and their answers in a form search engines and AI systems can parse. This generator gives you one card per pair, with Add FAQ and Remove last buttons, and writes the schema.org JSON-LD live: a FAQPage whose mainEntity holds a Question with an acceptedAnswer for every filled card.
It does one job, so it is quicker than the Schema Markup Generator when FAQ markup is all you need: each answer gets its own multi-line box instead of a pipe-separated line, and any card with a blank question or answer is left out. Google now shows FAQ rich results only for a small set of authoritative sites, so treat the markup as structure rather than a guaranteed snippet.
How to use it
- 1
Replace the two sample pairs in Question 1 and Question 2 with your own text.
- 2
Click Add FAQ for each extra question. Remove last deletes the bottom card.
- 3
Watch the JSON-LD panel update. Blank pairs are skipped automatically.
- 4
Click Copy schema.
- 5
Paste it inside a script tag with type="application/ld+json" on the page that shows those questions, then test the URL in the Rich Results Test.
What you get
Pretty-printed JSON-LD with @context https://schema.org, @type FAQPage and a mainEntity array of Question objects, each with a name and an acceptedAnswer of type Answer. The script wrapper is not included.
When to use it
- Product page FAQ sections
- Mark up the shipping, sizing and returns questions already shown on a product page so the answers are machine readable.
- Pricing and support pages
- Longer answers fit comfortably in the multi-line Answer boxes, which suits billing and account questions.
- Drafting questions over time
- Add an empty card as a placeholder. It stays out of the JSON-LD until both its question and answer are filled.
- Service business FAQs
- Turn the common questions a local business answers by phone into one FAQPage block for its services page.
Example
Input
Question 1: Can I change my delivery date? Answer: Yes, up to 48 hours before dispatch from your account page. Question 2: Do you ship to Canada? Answer: Yes, orders arrive in 5 to 8 business days.
Output
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "Can I change my delivery date?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Yes, up to 48 hours before dispatch from your account page."
}
},
{
"@type": "Question",
"name": "Do you ship to Canada?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Yes, orders arrive in 5 to 8 business days."
}
}
]
}Only the JSON object is copied, so wrap it in a script tag of type application/ld+json yourself.
Tips
- Mark up only questions that are visible on the same page, using the same wording as the on-page text.
- To drop a pair from the middle of the list, clear its question. Remove last only deletes the bottom card.
- Answers are copied exactly as typed. If you include links, stick to simple HTML such as a, p, ul and li, which Google accepts in answer text.
- Avoid pasting the same FAQ block onto many pages, since duplicated markup adds nothing and can look like spam.
Questions
Will FAQ schema still give my page dropdowns in Google results?
Probably not. Since 2023 Google shows FAQ rich results mainly for well-known government and health sites. The markup is still valid structured data that other search engines and AI tools can read.
Why did one of my questions disappear from the JSON-LD?
A pair is left out whenever its question or its answer is blank after trimming spaces. Fill in both boxes and it appears straight away.
Should I use this or the Schema Markup Generator for FAQs?
Use this one for FAQ-only markup with longer answers. The Schema Markup Generator covers many types, and its FAQ option takes pairs as pipe-separated lines, which gets awkward for multi-sentence answers.
Can a page have FAQPage markup and Article markup at once?
Yes. Add each as its own script block, or combine them in an @graph array. Just make sure the FAQ content is actually on that page.
Related tools
Related guides
Related tools
