1.2.0: local SEO structured data (LocalBusiness, Service, FAQPage), noindex per page
This commit is contained in:
Vendored
+33
@@ -0,0 +1,33 @@
|
||||
type FaqItem = {
|
||||
answer: string;
|
||||
question: string;
|
||||
};
|
||||
/**
|
||||
* 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 declare function buildFaqJsonLd(items: FaqItem[]): {
|
||||
'@context': string;
|
||||
'@type': string;
|
||||
mainEntity: {
|
||||
name: string;
|
||||
'@type': string;
|
||||
acceptedAnswer: {
|
||||
'@type': string;
|
||||
text: string;
|
||||
};
|
||||
}[];
|
||||
} | null;
|
||||
export {};
|
||||
Reference in New Issue
Block a user