Description
🌍 New in 1.6.0: Multilingual Auto Generate — pick the FAQ output language right in the block sidebar (19 languages supported). Default is auto-detect: post in Korean FAQ in Korean; post in Spanish FAQ in Spanish. No more English FAQs on non-English posts.
Struggling to get your content noticed on Google — or cited by AI search? Most WordPress sites miss out on FAQ rich results simply because setting up structured data is too technical or too time-consuming. And almost nobody is optimizing for AI Overview, ChatGPT, or Perplexity citations.
AI FAQ Schema solves both in one click.
Write your post, add the block, hit “Generate FAQ” — and the plugin handles everything else. It reads your content, generates relevant FAQ pairs using OpenAI, and automatically injects valid FAQPage JSON-LD schema into your page’s <head>. No coding. No guesswork. No plugin conflicts. Then run the dual SEO + GEO analyzer to see exactly how AI-citation-ready your FAQs are before you publish.
Why FAQs Matter for SEO
Google’s FAQ rich results can double your click-through rate by showing Q&A snippets directly in search results. But to qualify, your page needs properly formatted structured data — the kind that typically requires a developer to set up manually.
This plugin makes that automatic.
What Makes This Plugin Different
Most FAQ plugins just display pretty accordions. This one goes further:
- ✅ AI writes the FAQs for you — based on your actual post content, not generic templates
- ✅ Real structured data — valid FAQPage JSON-LD, not just visual styling
- ✅ Built-in SEO quality check — 12-point analyzer tells you exactly what to improve
- ✅ GEO quality check — 8-point AI citation analyzer for AI Overview, ChatGPT, and Perplexity visibility
- ✅ Works with any theme — no shortcodes, no theme dependency
- ✅ Zero build tools — drop it in and activate. No npm, no React, no headaches
Key Features
3 Ways to Add FAQs
- Auto Generate (AI) — Paste or write your content, click Generate, done. Powered by OpenAI.
- Paste Existing FAQs — Already have FAQs? Paste them in almost any format (Q:/A:, Question:/Answer:, numbered lists, plain text, HTML, or markdown) and the smart parser auto-detects and structures them instantly.
- Manual Input — Prefer full control? Type your questions and answers directly in the block editor.
FAQ Quality Analyzer (100-Point Score)
Before you publish, run the built-in analyzer. It checks 12 SEO criteria across 3 categories:
- Basic checks — FAQ count, duplicate detection, question format
- Direct answer quality — first-sentence scoring, search intent alignment
- Keyword SEO — keyword presence in questions and answers, sentence length, uniqueness
You get a score out of 100 with specific recommendations. No guessing what to fix.
GEO Quality Analyzer (AI Citation Score)
Optimize your FAQs for AI search engines — Google AI Overview, ChatGPT, Perplexity, and Claude. The GEO analyzer checks 8 criteria across 4 categories:
- Answer-First structure — no filler phrases, direct answers in the AI citation sweet spot (8-60 words)
- Self-Contained — no relative references, no vague endings, each FAQ stands alone
- Specificity and E-E-A-T — concrete data points, no promotional superlatives
- Clarity — no ambiguous pronouns, structured multi-sentence answers
SEO and GEO scores display side by side. Click each to see the detailed breakdown.
Google-Ready JSON-LD Schema
The plugin automatically injects FAQPage structured data into your page’s <head> — exactly the format Google requires for rich results. You don’t touch any code.
Multiple OpenAI Models
Choose the model that fits your needs and budget:
gpt-4o-mini— Fastest, lowest cost. Great for most blogs.gpt-4o— Multimodal flagship, balanced quality and cost.gpt-4.1-mini— Upgraded mini with a larger context window.gpt-4.1— Flagship model. Best quality for competitive niches.o3-mini— Reasoning model. Good for complex topics.o3— Most capable reasoning model.o4-mini— Latest lightweight reasoning model.
7 Display Styles
- Minimal — Clean text list with Q prefix
- Card — Elevated cards with hover effects
- Accordion — Click to expand, great for long answers
- Boxed — Colored header with distinct sections
- Timeline — Vertical timeline with numbered dots
- Chat Bubble — Messenger-style question/answer bubbles
- Numbered — Large index numbers for tutorial-style posts
Dark Mode
All display styles automatically adapt to your visitor’s OS preference — readers using dark mode see a matching dark-themed FAQ block with no extra configuration.
Custom AI Prompt
Not happy with the default output? Edit the prompt. Use {count} as a placeholder for the number of FAQs. The plugin always enforces JSON formatting automatically.
Target Keyword Optimization
Set a target keyword per block (or let AI detect it from your content). The quality analyzer then checks whether your FAQs are properly optimized around that keyword.
Who Is This For?
- Bloggers who want more Google visibility without touching code
- SEO professionals who need to scale FAQ structured data across many posts
- Content marketers building topical authority in competitive niches
- Agencies managing client sites and needing a reliable FAQ solution
- Small business sites looking to stand out in Google search results with rich snippets
Security
Your OpenAI API key is stored server-side and never exposed to the browser. All AI calls happen through a protected REST endpoint with nonce verification. Rate limiting (10 requests/minute/user) prevents abuse.
External Services
This plugin connects to the OpenAI API (api.openai.com) to generate FAQ content and extract target keywords.
When you click “Generate FAQ” or “AI Detect,” your post content and custom prompt are sent to OpenAI’s servers for processing. This only happens on demand — never automatically in the background.
Screenshots

Block editor with Auto Generate tab — one click to generate FAQs from your content 
FAQ Quality Analyzer — 100-point score with specific improvement recommendations 
Settings page — API key, model selection, and custom prompt configuration 
Frontend display in card style — clean, styled FAQ output on your live page 
Schema Preview panel — view the generated JSON-LD directly in the block sidebar 
Manual Input tab with Remove All FAQs button
Blocks
This plugin provides 2 blocks.
- FAQ Schema (AI SEO)
- FAQ Schema (Legacy)
Installation
- Upload the
mkjb-ai-seo-faq-schemafolder to/wp-content/plugins/ - Activate the plugin through the Plugins menu in WordPress
- Go to Settings > AI FAQ Schema and enter your OpenAI API key
- Open any post or page in the block editor and search for “FAQ Schema” in the block inserter
- Add the block, choose your mode, and publish — schema is injected automatically
You don’t need an API key to use the Manual Input or Paste FAQ modes.
FAQ
-
Do I need an OpenAI API key to use this plugin?
-
No — not for everything. The “I Have FAQ” (paste mode) and “Manual Input” modes work without any API key. You only need a key for the “Auto Generate” mode and the AI keyword detection feature. You can get an API key at platform.openai.com/api-keys.
-
Will this actually help my Google rankings?
-
It gives your pages the structured data they need to qualify for Google’s FAQ rich results — expanded Q&A snippets that appear directly in search. These can significantly increase click-through rates. That said, Google decides whether to show rich results based on their own criteria; the plugin ensures your schema is valid and properly formatted.
-
How much does it cost to use the OpenAI API?
-
Very little for typical use. With
gpt-4o-mini, generating 5 FAQs from a blog post costs a fraction of a cent. Even a high-traffic content site generating hundreds of FAQs per month would spend just a few dollars. You only pay when you click “Generate” — never in the background. -
Is the generated schema valid for Google’s Rich Results Test?
-
Yes. The plugin outputs standard schema.org FAQPage JSON-LD markup that passes Google’s Rich Results Test. You can verify any page at search.google.com/test/rich-results.
-
Can I edit the FAQs after generating them?
-
Absolutely. The generated FAQs are fully editable directly in the block editor. Change any question or answer, reorder them, or delete individual entries anytime.
-
Does this work with my theme?
-
Yes. The plugin uses a native Gutenberg block with server-side rendering, so it works with any WordPress theme. No shortcodes, no theme customizations required.
-
Does this work with Yoast SEO or RankMath?
-
Yes. This plugin is fully compatible with Yoast SEO, RankMath, and other SEO plugins. It injects its own FAQPage JSON-LD schema independently. Just make sure you’re not also generating FAQ schema from your SEO plugin for the same page — otherwise you may end up with duplicate structured data. If you’re only using Yoast or RankMath for general SEO (title tags, meta descriptions, sitemaps), there’s no conflict at all.
-
Does this work with the Classic Editor?
-
No — this plugin requires the WordPress Block Editor (Gutenberg). It is a native Gutenberg block and does not work with the Classic Editor plugin. If your site uses the Classic Editor, you would need to switch to the block editor to use this plugin.
-
What happens to my FAQs if I deactivate the plugin?
-
Your FAQ content is preserved in your posts — it won’t disappear. However, the schema injection and visual display will stop working until you reactivate. Your settings (API key, model, etc.) are also saved and restored on reactivation.
-
What if I delete the plugin?
-
Your FAQ content inside posts is preserved. Plugin settings (API key, model, prompt, style preferences) are removed from the database on deletion, as per WordPress best practices.
-
Can I use this on multiple sites?
-
Yes. The plugin is standard GPL software with no license key or site limit. Install it on as many WordPress sites as you want.
-
Does the AI always produce perfect FAQs?
-
Not always — AI output quality depends on your content and prompt. That’s why the built-in FAQ Quality Analyzer exists. Run it before you publish and follow the recommendations to improve your score. You can also edit any generated FAQ manually.
-
How is the 100-point quality score calculated?
-
The analyzer runs 12 checks across three categories:
* Basic (40 pts) — FAQ count, no duplicates, questions end with “?”, answer length (100–1,000 chars)
* Direct Answer / SEO (30 pts) — Direct first sentence, sentence under 150 chars, search-intent format (What/How/Why), no first-person language
* Keyword SEO (30 pts, only if keyword is set) — Keyword in questions, keyword in answers, sentence length under 20 words, no duplicate answers -
Is my content sent to OpenAI every time I load the editor?
-
No. Content is only sent to OpenAI when you click “Generate FAQ” or “AI Detect.” Nothing is sent automatically in the background.
-
What is the difference between the SEO score and the GEO score?
-
The SEO score (out of 100) checks 12 traditional Google ranking factors: question format, answer length, direct first sentence, keyword placement, sentence length, duplicate detection, and so on. It tells you if your FAQ qualifies for Google’s FAQ rich results.
The GEO score (out of 100) checks 8 AI-citation factors that matter when ChatGPT, Perplexity, Google AI Overview, or Claude decides whether to quote you. These include: filler-word detection, citation-window length (8-60 words is the sweet spot AI assistants prefer), self-contained answers (no “as mentioned above”), specificity and E-E-A-T signals, pronoun ambiguity, and structured multi-sentence formatting. Both scores display side by side, and clicking either one shows a detailed per-FAQ breakdown.
-
Will this slow down my site?
-
No. Schema generation runs once per post when you save, then the JSON-LD is cached as post metadata. On every page view, the plugin reads the cache directly instead of re-parsing your block content. The frontend overhead is a single small
<script type="application/ld+json">tag in the page head, which is exactly what Google’s Rich Results Test expects. The CSS for display styles is also enqueued only on pages that actually contain a FAQ block. -
Does this work with non-English content?
-
Yes. The schema markup is language-agnostic — Google reads
FAQPageschema correctly in any language. The AI generation also works in any language OpenAI supports (60+ languages); if your post content is in Korean, Japanese, Spanish, French, German, etc., the generated FAQs will be in the same language. The “I Have FAQ” paste mode also accepts FAQs in any language.
Reviews
There are no reviews for this plugin.
Contributors & Developers
“AI FAQ Schema by MKJB” is open source software. The following people have contributed to this plugin.
ContributorsTranslate “AI FAQ Schema by MKJB” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
1.6.0
- Added: FAQ Output Language control — Auto Generate now produces FAQs in the same language as your post content by default (auto-detect). Previously, the AI always output English regardless of content language, which broke multilingual sites where posts in Korean / Spanish / Japanese / etc. ended up with English FAQs.
- Added: 18 explicit language overrides in the block sidebar (English, Korean, Spanish, French, German, Japanese, Chinese, Portuguese, Italian, Russian, Arabic, Hindi, Vietnamese, Thai, Indonesian, Turkish, Polish, Dutch) — useful when you want FAQs translated into a different language than the source content.
- Improved: Language directive in the prompt is injected with highest priority and explicitly overrides the default prompt’s “US market” framing, so question starters (What/How/Why), Yes/No answer starters, and cultural references all match the target language.
- Compatibility: Existing blocks default to “auto” — they will continue to work, and on the next regenerate they’ll match your post’s language automatically.
- WP 7.0 ready: Block API bumped from version 2 to version 3 (in both the JS
registerBlockTypeand the PHPregister_block_typecalls). WordPress 7.0 enforces full iframe isolation for the block editor and deprecates apiVersion 1 and 2; this release pre-emptively switches the FAQ block to apiVersion 3 so it keeps working when 7.0 lands. No user-visible behaviour change — the block already useduseBlockPropsand onlywp.*globals (nodocument.querySelectoretc.), so iframe isolation has no impact.
1.5.1
- Fixed: Inline CSS fallback now also covers FAQ markup that was saved as static HTML in the post body (a common state on multilingual sites where translation plugins copy the rendered HTML from the original post into the translated copy, stripping the block markup along the way). The 1.5.0 fix only covered dynamic block rendering via render_callback; this release adds a
the_contentfilter at priority 100 that scans for the FAQ block class and injects the inline stylesheet when needed. End result: FAQ styling now reaches the browser whether the block is dynamic, static HTML, translated, or pasted from another post.
1.5.0
- Fixed: Plugin CSS not loading on some pages — frontend FAQ blocks could appear unstyled when caching plugins (LiteSpeed Cache), translation/multilingual plugins, page builders, or path-obfuscation plugins (e.g. Hide My WP) suppressed the regular stylesheet enqueue. The block CSS is now emitted inline once per page render as a fallback, so styles always reach the browser regardless of the optimization stack.
- Added: Customize Style panel in the block sidebar with 10 per-block controls — Question/Answer text colors, Question/Answer backgrounds, Border color, Border radius, Question/Answer font sizes, Accordion default open state (all collapsed / first open / all open), and a Custom CSS textarea scoped to the block.
- Added: Per-block customize values render as inline CSS custom properties on the block wrapper, giving them the highest specificity — themes and caching plugins cannot override them.
- Improved: Accordion items can now start in an open state by default, useful for highlighting the most important question on landing pages.
1.4.0
- Renamed: Plugin display name changed from “MKJB AI SEO FAQ Schema” to “AI FAQ Schema by MKJB” for clearer discovery (keywords up front, brand preserved). Slug, settings, FAQs, API keys, and licensing are unchanged — this is a display-only rename and existing installs are unaffected.
- Improved: Updated tags and short description for better WordPress.org discoverability around AI search and rich-snippet keywords.
- Added: Three new FAQ entries — SEO vs GEO score difference, performance/caching behavior, and multilingual support.
- Cosmetic: All admin labels (Settings menu, error messages, on-screen hints) now read “AI FAQ Schema” instead of the old name.
1.3.3
- Improved: “I Have FAQ” tab now auto-detects multiple paste formats — no more strict Q:/A: only. Accepts Question:/Answer:, numbered lists (“1. …”), bracketed labels ([Q]/[A]), markdown headings, bold-wrapped labels (Q:), and plain text where each question simply ends with “?”.
- Improved: Pasting from HTML sources (blog posts, accordion widgets, <dt>/<dd> lists, <details>/<summary> elements) now strips tags and entities before parsing.
- Improved: Markdown decorations (#, ##, ###, >, -, *, bold) are stripped automatically so copy-pastes from Notion, Google Docs, and Markdown editors parse cleanly.
- Improved: Updated paste-tab help text and placeholder to show all supported formats with concrete examples.
1.3.2
- Fixed: Numbered style layout — answer text was breaking into single-word lines due to narrow CSS grid column width.
1.3.1
- Fixed: Updated OpenAI model list to currently available models (gpt-4o, gpt-4.1 series, o3, o4-mini). Replaced non-existent gpt-5.4 references that caused API errors.
- Fixed: Multi-line answers (numbered lists, bullet points) now preserve their line breaks on the frontend instead of being collapsed into a single line.
- Fixed: Rate limiter now uses a proper fixed 60-second window instead of a rolling window that could extend indefinitely.
- Fixed: Accordion heading structure improved for screen-reader accessibility.
- Fixed: Defensive length caps on individual question (300 chars) and answer (2,000 chars) to prevent runaway AI output.
- Improved: Schema injection is now cached per post on save — no more parsing blocks on every page view, significantly faster for high-traffic sites.
- Improved: Removed unnecessary admin-only data from the block editor script payload.
- Added: Dark mode support across all display styles — automatically follows visitor’s OS preference.
- Added: Drag-and-drop reordering and Duplicate button in the Manual Input tab.
- Added: 2 new display styles — Chat Bubble (messenger-style) and Numbered (tutorial-style).
1.3.0
- Added: GEO Quality Analyzer with 100-point scoring for AI search citation optimization
- Added: Dual score display — SEO and GEO scores shown side by side with tabbed breakdown
- Added: 8 GEO checks: filler detection, citation length, self-contained answers, specificity, E-E-A-T signals, pronoun ambiguity, promotional fluff, structured format
- Improved: Default AI prompt now includes explicit GEO rules for AI citation-ready FAQ generation
- Improved: AI prompt separates SEO rules and GEO rules for clearer optimization
1.2.4
- Fixed: CSS not loading on frontend for posts using legacy block name
- Fixed: Broken unicode characters in CSS causing style rendering issues
- Added: 2 new display styles – Boxed and Timeline
- Improved: All existing styles (Minimal, Card, Accordion) with premium visuals
- Improved: Responsive design for mobile devices
1.2.3
- Fixed: Backward compatibility for posts created with plugin v1.2.1 or earlier (fsg/faq-schema block)
- Added: Legacy block registration so existing FAQ blocks continue to work after update
- Added: Schema injection now detects both old (fsg/) and new (mkjb/) block names
1.2.2
- Updated: OpenAI model list (Note: the gpt-5.4 references in this release were not real models and were corrected in 1.3.1 — please update to 1.3.1 or later if you are still on 1.2.2.)
- Improved: Plugin description, FAQ section, and tags for better discoverability
1.2.1
- Fixed: Block not appearing in WordPress block inserter when searching “/faq”
- Fixed: Block category updated from deprecated ‘common’ to ‘text’
- Fixed: Added apiVersion 2 for proper useBlockProps support
- Fixed: Removed deprecated wp-editor script dependency
- Fixed: Removed all non-ASCII characters from JavaScript to prevent encoding issues on some server configurations
- Fixed: Updated deprecated isPrimary/isSecondary Button props to the current variant API
- Added: Block supports configuration (html: false, multiple: true)
- Improved: Version bump for reliable cache busting
1.2.0
- Added: “Remove All FAQs” button in I Have FAQ and Manual Input tabs
- Added: Score always displayed as X/100 (normalized when no keyword is set)
- Added: First-person usage detection (We/Our/Us/My) in Quality Analyzer
- Added: Sentence length check (20-word limit per sentence)
- Changed: Answer length requirements updated to 100-1,000 characters
- Changed: FAQ questions rendered as H3 for correct heading hierarchy
- Changed: Accordion questions use H3 inside summary element for accessibility
- Changed: Default AI prompt updated to enforce plain text formatting
- Fixed: Browser cache preventing updated JS/CSS from loading
- Improved: Quality Analyzer v2 rules aligned with SEO and GEO best practices
1.1.0
- Added: OpenAI model selection (gpt-4o-mini through o3)
- Added: Custom AI prompt with {count} placeholder
- Added: FAQ Quality Analyzer v2 with 100-point scoring
- Added: Target keyword input with AI auto-detect
- Added: FAQ title display option (H2/H3/H4)
- Added: Delete API Key button
- Added: Rate limiting (10 requests/minute/user)
- Added: Nested block support for schema injection
- Fixed: API key overwrite bug when saving other settings
- Fixed: Schema returning null on empty FAQ arrays
- Fixed: CSS double-loading on frontend pages
- Fixed: has_block() parameter error
- Improved: Modern CSS with custom properties
- Improved: Security hardening for public distribution
1.0.0
- Initial release
