SEO / AEO Global Rules
BreadcrumbList schema
BreadcrumbList schema — documentation pending.
Every page with a visual breadcrumb emits a matching `BreadcrumbList` JSON-LD entry. The two are mirrors — if the visual breadcrumb has 3 segments, the schema has 3 ListItems with the same titles and URLs.
BreadcrumbList shape
A BreadcrumbList is an ordered ItemList. Each item is a ListItem with `position` (1-indexed), `name`, and `item` (the URL). The last item points to the current page — yes, you include the current page even though the visual breadcrumb does not link the last segment.
Per-surface examples
- Event detail
- 1. Home → /en/ · 2. Calendar → /en/calendar · 3. Events → /en/calendar/events · 4. [Event title] → /en/calendar/events/[slug]
- Founder File reader
- 1. Home · 2. Founder Files → /en/founder-files · 3. [File title] → /en/founder-files/[slug] · 4. Reader → /en/founder-files/[slug]/read
- Docs topic
- 1. Documentation → /en/docs · 2. [Section title] → /en/docs/[section-slug] · 3. [Topic title] → /en/docs/[section-slug]/[topic-slug]
Implementation
The page composes the BreadcrumbList as a plain JS object and passes it inside the `jsonLd.set([...])` array. Title text comes from i18n keys (the same keys the visual breadcrumb uses) so EN and AR versions emit matching schemas.
