Structured data does not change what a page says. It restates part of the page in a vocabulary machines already agree on, so a search engine does not have to guess which text on the page is a question and which is its answer. That certainty is what makes the content eligible for richer treatment in results and easier for assistants to quote correctly.
The markup is assembled locally. Your draft copy is never uploaded, which matters when the questions describe a product that has not launched yet.
What FAQPage markup is allowed to contain
FAQPage structured data describes a page where a publisher asks and answers questions itself. Every entry is a Question with a name, and each Question carries exactly one acceptedAnswer of type Answer whose text holds the response. There is no room for a competing second answer, and none for a question the reader is expected to answer.
That last point is the rule most people break. A community page where visitors post answers is QAPage, not FAQPage, and marking it up wrongly is a guideline violation. If your questions are rhetorical headings rather than questions a reader would type, leave the markup off.
- Every question in the markup must be visible on the page as text.
- Every answer must be the complete answer, not a teaser that links elsewhere.
- One acceptedAnswer per question. Multiple user submitted answers means QAPage.
- Answer text may contain basic HTML such as links, lists and emphasis.
- Do not mark up advertising, or questions that only appear behind a click without being in the source.
The eligibility limit nobody tells you about
In August 2023 Google narrowed faq rich results to a small set of well known authoritative government and health sites. For everybody else the expanded question list no longer appears in search results, and it is not coming back on request.
That does not make the markup pointless, but it does change why you add it. Valid FAQPage data still helps a crawler segment the page, still feeds the systems that quote pages in AI answers and assistant surfaces, and still costs nothing but a few hundred bytes. What it will not do is give an ordinary commercial site an expanded listing, and any tool that promises one is describing the world as it was three years ago.
Add it because the structure is genuinely true of the page. Do not add it as a ranking trick.
Escaping, HTML and the traps in answer text
JSON-LD lives inside a script element, and the HTML parser stops that element at the first closing script tag it sees, wherever that appears. An answer that quotes a script tag will therefore truncate your markup and silently break the block. This tool escapes that sequence for you so the output survives being pasted into a page.
Quotation marks, backslashes and line breaks inside answers are escaped as JSON string escapes, which is why the copied output sometimes looks less readable than what you typed. That is correct. A raw newline inside a JSON string is invalid and would fail parsing.
Allowed HTML inside an answer is limited in practice to simple formatting: anchors, paragraphs, breaks, lists and emphasis. Anything more elaborate is stripped by consumers, so write answers that read correctly as plain sentences.
How this faq schema generator validates your input
Before the output is produced, each row is checked for the failures that actually matter. An empty question or answer is rejected outright, because a Question with no name is invalid. Duplicate questions are flagged, since two identical name values in one FAQPage is a sign that a row was pasted twice.
The tool also warns on very short answers. An answer of four or five words is technically valid but is almost never the complete response the guidelines ask for, and it is the pattern that makes an otherwise good page look thin. Long answers are not flagged, because there is no upper limit.
The output includes the optional mainEntityOfPage property when you supply a page URL. It is not required, but it removes any ambiguity about which page the FAQ block belongs to when the same markup ends up syndicated somewhere else.
Where to put the script tag from the faq schema generator
JSON-LD can sit in the head or the body and both are read. Head is the conventional choice for a page whose FAQ content is static. If the questions are rendered by a component, emit the block from that component so the two can never drift apart, which is the most common cause of markup that no longer matches the visible page.
One FAQPage block per page is enough. Multiple blocks are merged by consumers, but splitting them makes it harder to see at a glance whether every visible question is represented. Where a page already carries other markup such as Article or BreadcrumbList, keep each type in its own script tag rather than trying to nest them.
How to generate FAQ schema markup
- 1
Add your first pair
Type a question exactly as it appears on the page, then paste the full answer text below it.
- 2
Add the remaining questions
Press add question for each further pair. Reorder or remove rows until the list matches the page.
- 3
Add the page URL
Optional. Supplying it adds mainEntityOfPage so the block is unambiguously tied to one page.
- 4
Generate and paste
Press generate, read any warnings the faq schema generator raises, then copy the script tag into your page.
Related tools worth bookmarking
Sources and further reading
- schema.org: FAQPageThe vocabulary definition, including which properties FAQPage and Question actually accept.schema.org
- Google Search Central: FAQPage structured dataThe current guidelines, including the eligibility restriction introduced in 2023.developers.google.com
- W3C: JSON-LD 1.1The specification for the serialisation format this tool emits, including context and typing rules.w3.org
Frequently asked questions
Common questions about the faq schema generator.
Probably not, and no tool can promise otherwise. Since 2023 the expanded FAQ listing has been limited to well known authoritative government and health sites. The markup remains valid and useful for machine understanding, but treat an expanded listing as unlikely rather than expected.
Yes. Both the question and the full answer must be visible to a visitor in the page source. Marking up content that is absent, hidden or loaded only after an interaction is a guideline violation and is the fastest way to have the markup ignored entirely.
FAQPage is for questions the publisher asks and answers itself, with exactly one accepted answer each. QAPage is for a forum style page where visitors submit competing answers and vote on them. Using FAQPage for user generated answers misrepresents the page.
Yes. Answer text accepts simple HTML including anchors, paragraphs, line breaks, lists and emphasis. The tool escapes the markup correctly for JSON so the block stays parseable. Complex markup is stripped by consumers, so keep it to basic formatting.
There is no technical limit, but keep the block to the questions a reader genuinely asks about that page. Twenty tangential questions bolted onto a thin page is a pattern that gets flagged as spam. Five to ten well chosen pairs is a healthy range.