How to add FAQ schema in WordPress
A step by step way to add FAQ schema to a WordPress page so an AI engine can read your questions and answers as facts, not as decorative text.
You added an FAQ section months ago and assumed engines could read it. They might not. A styled accordion of questions is still just text and layout to a machine until something labels it as a question and its answer.
This guide adds that label. It is short, and it is the same job whether you do it by hand or have it applied for you.
What FAQ schema actually does
FAQ schema is a small block of structured data that tells a machine: this is a question, this is its answer. Without it, an engine sees a heading, some body text, and a toggle, and has to guess that the three belong together.
With it, the page stops guessing on the engine's behalf. The questions and answers become facts it can lift cleanly. That is the whole point of FAQ schema.
Do the task
Step 1: Confirm the page is genuinely a Q and A
The markup describes real questions with real answers. If your page is a sales page with one rhetorical question, this is the wrong tool. Use it where you have honest question-and-answer pairs a reader can see.
Step 2: Write the JSON-LD
Create a FAQPage object. Inside it, list each Question with its acceptedAnswer. Pull the answer text straight from what is on the page so the two never drift apart.
Step 3: Place it in the page
Wrap the block in a <script type="application/ld+json"> tag. In WordPress, drop it into a custom HTML block, a code-snippet plugin, or the header of that page template. It does not need to be visible to readers. It needs to be in the page source.
Step 4: Validate
Run the URL through a structured data validator. Confirm the FAQPage parses with zero errors. Present is not the same as correct.
Step 5: Keep it honest after edits
This is where most FAQ schema rots. You reword an answer in the page and forget the markup. Now the visible answer and the labeled answer disagree, and a machine reading the label is repeating words you deleted. Change both, every time.
The old way and the new way
The old way was to install an SEO plugin, see "FAQ schema: on," and stop thinking about it. The plugin covered some pages and left others bare, and nobody checked which.
The new way is to know, page by page, which FAQs carry valid markup that still matches the text. That is a different bar. "A plugin can do it" is not the same as "it is done on this page and it is correct today."
The honest part
If your page has no real questions on it, do not bolt FAQ schema on to game an engine. Markup that describes content the reader cannot find is the kind of thing engines learn to distrust, and you gain nothing.
And adding this block does not make any engine quote you. It makes you readable. Whether ChatGPT, Perplexity, Gemini, or Claude then uses your answer is something we measure, not something we promise. The automated apply, with a preview and a per-fix approval, runs only through the connected Citedon plugin on WordPress. Everywhere else, the diagnosis is free and the fix is yours to paste.
Where to start
Run a free scan on the page that holds your most important FAQ. It shows whether an engine finds the markup, whether it is valid, and where the label and the visible text disagree. From there, fix the one page that matters most, then the next.