Skip to content

Schema + AI-SEO

The AI/SEO pillar — four invisible Astro components that emit valid JSON-LD, plus an llms.txt front door for AI engines.

src/components/growth/schema/*.astro · public/llms.txt

Golden rule: only emit structured data for content that is actually visible on the page. Google requires the on-page text to mirror the markup; fabricated FAQs/ratings risk a manual action.

Each component is safe-by-default (renders nothing when required props are missing) and pulls defaults from brand.json via loadBrand().

<FaqSchema items={page.faq?.items ?? []} />
PropTypeDescription
items{ question, answer }[]Invalid entries are stripped.
<ServiceSchema name={page.title} serviceType={page.serviceType} url={`/${page.slug}`} description={page.metaDescription} />

name required; description / areaServed / providerName default from brand.json; provider auto-built from brand.business.

<BreadcrumbSchema crumbs={[
{ name: 'Home', url: '/' },
{ name: page.title, url: `/${page.slug}` },
]} />

URLs resolve absolute against brand.business.url.

<ReviewSchema ratingValue={4.9} reviewCount={37} reviews={[...]} />

Emit only ratings/reviews genuinely shown on the page.

Served at /llms.txt — H1 brand name + summary + link sections, positioning-correct (website + job-management system for service businesses). The front door for AI search engines.