SEO / AEO Global Rules
Structured data
Structured data — documentation pending.
Complete
Every detail page emits a JSON-LD block of type `application/ld+json` containing the primary schema.org entity plus an array of cross-module mentions. This is the entity graph that powers both classical rich-result SEO and answer-engine retrieval.
How emission works
Every page calls `this.jsonLd.set([primary, breadcrumb, ...mentions])` exactly once in `ngOnInit`. The StructuredDataService writes one `<script type="application/ld+json" data-sh-jsonld="N">` element per entry into `<head>`. On navigation, old entries are cleared and new ones written atomically.
Required fields on every JSON-LD object
- @context
- `https://schema.org` always. Top-level on the primary object.
- @type
- One of: Article, NewsArticle, Person, Organization, Event, BusinessEvent, CreativeWork, BreadcrumbList.
- @id
- Stable URL identifier with fragment (`#article`, `#event`, `#person`, `#breadcrumb`). Lets crawlers identify the entity across pages.
- name / headline
- `headline` on articles. `name` on everything else. Required.
- description
- Mirror of meta description. Required.
- inLanguage
- `en` or `ar`. Required for AEO so LLM retrievers know which language ground-truth this entity carries.
