Supported Nodes
Create Schema.org nodes with define* helpers such as defineArticle() and defineProduct(). Each helper provides TypeScript input types and attaches a resolver for node-specific defaults and relationships.
Supported nodes are the Schema.org types for which Unhead provides a dedicated resolver. Some correspond to Google Search features, while others are general Schema.org types.
The documented fields are a Google-focused subset, plus fields used by Unhead's resolver. A helper does not claim to type every property allowed by Schema.org. Extra properties pass through to the generated JSON-LD.
Google root coverage
Every entry in Google's structured data feature gallery can be represented by a dedicated helper or a composition of helpers. These features have their own root helpers:
- Discussion forums:
defineDiscussionForumPosting() - Education Q&A:
defineQuiz() - Employer ratings:
defineEmployerAggregateRating() - Math solvers:
defineMathSolver() - Vacation rentals:
defineVacationRental()
Carousels, profile pages, Q&A pages, speakable content, and paywalled content use existing helpers. See Google Search fields for the compositions and typed properties.
How do I add a custom Schema.org node?
If you need a node that isn't officially supported, provide it as a plain object following the Schema.org specification.
For TypeScript support, use schema-dts.
import { useSchemaOrg } from '@unhead/schema-org'
useSchemaOrg(unheadInstance, [
{
'@type': 'DefinedTerm',
'name': 'Nuxt Schema.org',
'description': 'Nuxt Schema.org is a Nuxt module for adding Schema.org to your Nuxt app.',
'inDefinedTermSet': {
'@type': 'DefinedTermSet',
'name': 'Nuxt Modules',
},
}
])
import type { DefinedTerm } from 'schema-dts'
import { useSchemaOrg } from '@unhead/schema-org'
const NuxtSchemaOrgDefinedTerm: DefinedTerm = {
'@type': 'DefinedTerm',
'name': 'Nuxt Schema.org',
'description': 'Nuxt Schema.org is a Nuxt module for adding Schema.org to your Nuxt app.',
'inDefinedTermSet': {
'@type': 'DefinedTermSet',
'name': 'Nuxt Modules',
},
}
useSchemaOrg(unheadInstance, [NuxtSchemaOrgDefinedTerm])
Which nodes are officially supported?
Each supported node has a dedicated define* helper with TypeScript autocomplete and resolver-backed transforms. The helpers do not perform runtime Schema.org or Google validation.