Company site
Outcome
Section titled “Outcome”Describe one organization once and reference it from the website and its pages.
Local validation — Builders reject unknown properties and expose
safeParse()for external data.Schema.org — The vocabulary defines property meaning; it does not guarantee any search appearance.
Google eligibility — Google requirements are additional and can change. Valid markup never guarantees a rich result.
Prerequisites
Section titled “Prerequisites”- A trustworthy canonical URL and
baseUrl. - Current, visible data from your domain source.
- Related builders:
Organization,WebSite,WebPage.
Recommended graph
Section titled “Recommended graph”Organization— primary nodeWebSiteWebPage
Minimal example
Section titled “Minimal example”import { Organization } from '@unschema-graph/core';
const entity = Organization({ "name": "Acme", "url": "https://example.com"});Production pattern
Section titled “Production pattern”Place the canonical Organization and WebSite nodes in the global layout; add a distinct WebPage node for each canonical page URL.
const result = Organization.safeParse(cmsData);if (!result.success) { throw new Error(result.error.issues.map((issue) => issue.message).join('\n'));}
const graph = buildJsonLdGraph([result.data], { baseUrl: 'https://example.com' });Environment variants
Section titled “Environment variants”| Astro | Svelte 5 / SvelteKit | Core |
|---|---|---|
<Schema items={items} /> |
<Schema items={items} /> |
serializeJsonLd(buildJsonLdGraph(items)) |
Common errors and diagnosis
Section titled “Common errors and diagnosis”- Changing the organization @id between pages. Compare the source data,
safeParse()result, and JSON-LD in the built HTML. - Using relative identifiers without a baseUrl. Compare the source data,
safeParse()result, and JSON-LD in the built HTML. - Creating a second full Organization node for every page. Compare the source data,
safeParse()result, and JSON-LD in the built HTML.
Validation
Section titled “Validation”- Run
safeParse()at the data boundary. - Inspect the script in built HTML.
- Run
unschema-graph auditagainst the output directory. - Schema.org / official documentation.
Final checklist
Section titled “Final checklist”- Marked-up content is visible and current.
- Every reusable identity has a stable
@id. - Local validation and the build audit pass.
- Eligibility is understood as non-guaranteed.
Go deeper: graphs and references, validation, audit CLI.