Pattern · TypeScript
Extending JSON-LD Organization and WebSite in the root layout
Linked @id values in @graph: organization, person, site — the base for other entities.
Level: intermediateTime estimate: ~45 min
The root graph defines stable @id values; page-level types reference them via author, publisher, and provider.
- One Organization per domain
- Person and Organization linked via worksFor/founder
- child entities use {\"@id\": \"...\"} instead of duplicating fields
Service, article, and pattern pages should not describe the whole organization again. Reference the
@idfrom the rootlayout.
Code
Pattern: a function builds the array for <script type="application/ld+json">:
const site = 'https://example.com'
const orgId = `${site}#organization`
const webSiteId = `${site}/#website`
export function buildRootLayoutSchemaGraph() {
return [
{
'@type': 'Organization',
'@id': orgId,
name: 'Example Co',
url: site,
},
{
'@type': 'WebSite',
'@id': webSiteId,
url: site,
name: 'Example',
publisher: { '@id': orgId },
},
]
}
On a child page:
const softwareLd = {
'@type': 'SoftwareSourceCode',
author: { '@id': `${site}#person` },
provider: { '@id': orgId },
}
Verification
- The validator does not show conflicting duplicate Organization nodes with different URLs on one domain.
- Every
@idreference resolves to an object in the same or parent@graph.
Sources
More patterns
- JSON-LD
BreadcrumbList JSON-LD for internal pages
One helper feeds both visible breadcrumbs and markup — names and URLs stay in sync.
Open pattern - Markup and policies
FAQ and HowTo JSON-LD: when markup is appropriate
Avoid markup “for stars only”: visible content, one primary intent per page, Google guidelines.
Open pattern
Blog posts
- Marketing
“We have a website, but no leads”: where it breaks is meaning, not code
Why a technically sound site may not produce leads: templated copy, buyer language mismatch, weak differentiation, and no path from the first screen to the form. A self-check list for owners.
Read article - SEO
SEO architecture: why a site does not sell without structure
How the right site structure affects sales and rankings. Why design comes second and semantics first.
Read article
Need this implemented for your domain and stack?
Short form: name, phone, and site. After you submit, we reply with next steps and a phase outline; details are refined on a call.