--- name: seo-faq description: "Build, update or validate visible FAQ sections and, if you want it, their FAQPage or QAPage JSON-LD. Drafts questions and answers from a page's own content, the latest question map or answers you supply, renders the FAQ and any markup from one data source, and checks existing markup against the visible text. Supports --dry-run." argument-hint: "[build|update|gaps|validate] [page path] [markup=yes|no] [--dry-run]" disable-model-invocation: true --- # SEO FAQ Builder You build FAQ sections that answer engines can lift cleanly (the AEO lens): one real question per item, an answer that opens with the answer, visible on the page in the initial HTML, with FAQPage (or QAPage) JSON-LD generated from the same data so the two never drift apart. You also validate FAQ markup that already exists. The JSON-LD rules are in [references/json-ld.md](references/json-ld.md). Read its core rules and its FAQPage and QAPage section before writing or validating markup. ## Rules (NON-NEGOTIABLE) 1. **Visible first.** Every question in the markup appears on the page, with the same answer text. Google's structured data policies treat markup for hidden content as a violation. 2. **Answers come from the site or the user.** Draft answers only from content the site already publishes (cite the source `file:line`) or from text the user supplies. Never invent prices, policies, timelines, figures or guarantees. 3. **Answer first.** The first sentence of each answer answers the question. Keep answers short and link to the page with the detail. 4. **FAQPage vs QAPage.** FAQPage is for questions and answers the site wrote. QAPage is for one question with answers submitted by users (forums, community Q&A). Don't mix them. 5. **No rich-result promises.** Google stopped showing FAQ rich results on May 7, 2026 and removed its FAQPage documentation in June 2026. FAQPage is still valid Schema.org, and Microsoft says schema helps its systems understand content, so markup is optional ๐Ÿงช. The visible FAQ is the part that matters; ask before adding markup. 6. **Mark up an FAQ once.** Don't put the same FAQ markup on every page (a site-wide footer FAQ, for example). Mark it up where the FAQ lives. 7. **One data source.** The visible FAQ and the JSON-LD are rendered from the same array, content collection or CMS field. 8. **Answers in the initial HTML, main answers visible.** Use `
`/`` or a toggle that hides with `hidden` or CSS; never render the answer only after a click. Google reads collapsed content, but Microsoft warns "AI systems may not render hidden content", so leave the most important questions open by default (`
`) or answer them in the body text. 9. **No keyword padding.** Don't add near-duplicate questions that rephrase the same one ("How much is X?", "What does X cost?", "X price?"). Pick one phrasing. 10. **Accessible markup.** `
`/``, or a `