Skip to the tool
OnPageKit

FAQ Schema Generator

Turn question and answer pairs into FAQPage JSON-LD.

a b br em i li p strong ul
a b br em i li p strong ul
a b br em i li p strong ul
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "FAQPage"
}
</script>

Every question and answer here must also be visible on the page itself, in the same wording. Markup that describes content a visitor cannot see is a spam violation, not a shortcut.

Everything runs in your browser. Nothing you type is sent to a server.

Found a bug in this tool? Report it.

Share this tool

Pairs in, FAQPage out

This faq schema generator takes a list of question and answer pairs and writes the FAQPage JSON-LD block for them, cleaning each answer down to the markup Google permits and reporting what it had to remove. Nothing you type leaves the browser, and the block is ready to paste straight into the page.

What changed in August 2023

For several years, FAQ markup was one of the highest-leverage things a site could add: the questions appeared under the listing as expandable rows, taking up vertical space that competitors could not. Then Google narrowed the feature to well-known government and health websites, and the rows disappeared from ordinary results overnight.

Plenty of advice written before that date is still circulating, which is why so many people add this markup expecting a SERP change that will not arrive. Be clear about what you are buying now.

Why it is still worth marking up

The rich result was one consumer of this data, and it was never the only one. FAQPage states, in a form no parser has to guess at, that this page contains a specific question and this specific answer to it. That statement is read by systems that summarise and cite pages rather than list them — and those systems are a growing share of how a page gets found.

There is also a cheaper argument. Writing the markup forces you to state the questions the page answers, in the words a visitor would use. Pages that survive that exercise tend to be better pages. If you cannot fill in three genuine pairs, the FAQ section probably should not exist.

The visibility rule is not negotiable

Every question and every answer in the block has to be present on the page, visible to a person who loads it, in the same wording. Content hidden behind an accordion counts as visible; content that exists only inside the JSON-LD does not.

This matters more than it sounds. Hidden structured data is one of the few markup problems that attracts a manual action rather than being quietly ignored, and a manual action against structured data on one template tends to cost the whole site its eligibility for every feature.

What the cleaner takes out, and why

Google permits a small set of tags inside an answer: paragraphs, unordered lists and list items, links, bold and italic in both their spellings, and line breaks. That is deliberately close to the minimum needed to write a readable answer.

Everything else is removed here before it reaches the output. Headings, tables, div and span wrappers, and images are stripped of their tags while their text survives; script and style blocks are removed with their contents, because nothing in them belongs in an answer. Attributes go too, except an href on a link — and an href using a javascript: scheme is dropped while the link text stays. The tool lists what it removed, so a paste from a word processor that arrives wrapped in twelve span elements is visible rather than silent.

Validity is not eligibility

The block this tool produces is valid JSON-LD and conformant with schema.org. What it cannot tell you is whether Google will do anything with it, because eligibility for any rich result is decided by Google against the live page. Publish the markup, then run the URL through the Rich Results Test, which reports what it parsed and which features the page qualifies for — for FAQ, on most sites, the honest answer will be none, and that is the expected outcome rather than a fault in the markup.

For the other blocks that belong on a content page, the article schema generator covers authorship and dates, and the breadcrumb schema generator covers the navigation path that Google does still display.

Frequently asked questions

Is FAQ markup still useful after the 2023 change?

Yes, for a narrower reason than before. In August 2023 Google restricted the FAQ rich result to well-known government and health websites, so ordinary sites no longer get the expandable questions in the SERP. The markup still describes the page in a way machines can read, and that description is what assistants and answer engines consume. Treat it as a semantic signal, not as a SERP feature.

Which HTML tags are allowed inside an answer?

Google documents a short list for acceptedAnswer.text: p, ul, li, a, b, strong, i, em and br. Anything else — headings, tables, divs, spans, images — is not permitted and is best removed before publishing. This generator strips the rest and names what it took out.

Do the questions have to be visible on the page?

They do. The entire content of every question and answer must appear on the page for a visitor to read, in the same wording. Markup describing content that only exists in the JSON-LD is hidden content, and it is one of the structured data violations Google acts on manually.

Can I put FAQPage on every page of my site?

No. One FAQPage per page, and only where a genuine list of questions and answers is the point of the page. Adding a token FAQ block to a product page or a category listing to farm markup is the pattern that got the feature restricted in the first place.

How do I check whether my FAQ markup parses?

Paste the block into the page, publish it, and run the live URL through Google's Rich Results Test. The JSON-LD produced here is valid and conformant with schema.org, but only that test tells you whether Google parsed it on your page and whether the URL is eligible for anything.

Related tools

Updated