---
title: "Supported Nodes"
description: "Schema.org nodes for Google Rich Results with define* functions. Article, Product, Event, Recipe, FAQ, and 30+ more types with TypeScript validation."
canonical_url: "https://unhead.unjs.io/docs/schema-org/guides/core-concepts/nodes"
last_updated: "2026-06-30T06:57:03.482Z"
---

**Quick Answer:** Schema.org nodes are created with `define*` functions like `defineArticle()`, `defineProduct()`, etc. Each function validates input and outputs valid JSON-LD.

Official nodes are ones that have a direct impact on Google Rich Results.

## 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](https://schema.org/docs/full.html).

For TypeScript support, use [schema-dts](https://github.com/google/schema-dts).

<code-group>

```ts [Untyped]
import { useSchemaOrg } from '@unhead/schema-org/@framework'

useSchemaOrg([
  {
    '@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',
    },
  }
])
```

```ts [schema-dts]
import type { DefinedTerm } from 'schema-dts'
import { useSchemaOrg } from '@unhead/schema-org/@framework'

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([NuxtSchemaOrgDefinedTerm])
```

</code-group>

## Which nodes are officially supported?

Officially supported nodes are those that enable Google Rich Results. Each has a dedicated `define*` function with validation and auto-completion.

<schema-org-node-list>



</schema-org-node-list>
