ADR-0010: Unified Structured Data and AI Engine Optimization
Unified Schema.org JSON-LD structured data engine and crawler access rules for AI search engines.
ADR 0010: Unified Structured Data (Schema.org / JSON-LD) and AI Engine Optimization (AEO/GEO)
Status
Accepted
Date
2026-09-23
Context
As search behaviors evolve towards AI-augmented search engines (Perplexity, ChatGPT Search, Claude, and Google AI Overviews) alongside traditional algorithmic rankings, plain HTML metadata is no longer sufficient. Search and retrieval models require disambiguated, machine-readable knowledge graph entities to accurately index, cite, and present rich results (Breadcrumbs, Rich FAQ snippets, Product/Offer details, and Organization credibility).
Prior to this decision, marketing apps across the ecosystem lacked:
- Canonical URL resolution with multi-lingual alternate tags (
hreflangforar-SA,en-US, andx-default), risking duplicate content penalties. - Type-safe, Schema.org-compliant JSON-LD structured data on landing pages, FAQs, and blog articles.
- Permissive crawler access rules for verified AI search bots in
robots.ts. - Dynamic
lastModifiedtimestamps in XML sitemaps aligned with Content Collections.
Decision
-
Type-Safe Schema Engine (
JsonLd.tsx): Implement a lightweight, zero-overhead structured data engine inmodules/shared/components/JsonLd.tsxthat outputs Schema.org JSON-LD scripts for:Organization(holding & project brand entity)WebSite(search and language properties)SoftwareApplication(category, supported platforms, pricing offers)FAQPage(dynamic extraction from localized FAQ dictionary items)BreadcrumbList(hierarchical navigational chains)BlogPosting/Article(authorship, publication, modified dates, images)
-
Standardized SEO Metadata Factory (
seo.ts): IntroducecreateMetadatainmodules/shared/lib/seo.tsto automatically generate:- Consistent canonical URLs
- Bi-directional
hreflangalternate links - Complete OpenGraph (
og:*) and Twitter Card (twitter:card: summary_large_image) payloads - Googlebot search directives (
max-snippet: -1,max-image-preview: large,max-video-preview: -1)
-
Crawl & Discovery Optimization:
- Explicitly permit reputable AI retrieval bots (
GPTBot,ChatGPT-User,ClaudeBot,PerplexityBot,Google-Extended) inrobots.ts. - Bind dynamic article
datevalues tolastmodentries insitemap.ts.
- Explicitly permit reputable AI retrieval bots (
Consequences
- Positive:
- Automated Rich Snippet eligibility across Google GCC and international search.
- Higher probability of inclusion and direct citation in AI Overview answers.
- Clean separation of SEO concerns with 100% test coverage and type safety.
- Zero duplicate-content penalties across Arabic and English localized routes.
- Negative / Maintenance:
- Changes to route hierarchies require keeping
BreadcrumbListschemas synchronized.
- Changes to route hierarchies require keeping
ADR-0009: English documentation, Arabic-first product
Repository documentation, code comments, and commit messages are English; the product UI is Arabic by default with English as the second locale. Resolves open question Q8.
Foundation session — 2026-09-18
State of the repository after the foundation session, what was verified, what is pending, and how to resume.