34 lines
1.1 KiB
JavaScript
34 lines
1.1 KiB
JavaScript
/**
|
|
* Builds FAQPage JSON-LD (schema.org) from Q&A pairs. Google can show these as
|
|
* expandable FAQ rich results under the page, taking more SERP space and helping
|
|
* with voice/AI answers. Strong for service landing pages.
|
|
*
|
|
* Feed it the SAME questions/answers rendered on the page (from an FAQ block in
|
|
* the panel) — the structured data must match visible content, or Google may
|
|
* flag it. Never invent Q&A that isn't on the page.
|
|
*
|
|
* import { buildFaqJsonLd } from '@intecion/ipal-kit'
|
|
* const jsonLd = buildFaqJsonLd(
|
|
* faqBlock.items.map(i => ({ question: i.question, answer: i.answer }))
|
|
* )
|
|
*
|
|
* Returns null for empty list.
|
|
*/ export function buildFaqJsonLd(items) {
|
|
if (!items || items.length === 0) {
|
|
return null;
|
|
}
|
|
return {
|
|
'@context': 'https://schema.org',
|
|
'@type': 'FAQPage',
|
|
mainEntity: items.map((item)=>({
|
|
name: item.question,
|
|
'@type': 'Question',
|
|
acceptedAnswer: {
|
|
'@type': 'Answer',
|
|
text: item.answer
|
|
}
|
|
}))
|
|
};
|
|
}
|
|
|
|
//# sourceMappingURL=buildFaqJsonLd.js.map
|