---
title: "Supported Nodes · Unhead"
canonical_url: "https://unhead.unjs.io/docs/vue/schema-org/guides/core-concepts/nodes"
last_updated: "2026-08-04T12:20:39.895Z"
meta:
  description: "Create Article, Product, Event, Recipe, and other Schema.org nodes with typed define* helpers and resolver-backed defaults."
  "og:description": "Create Article, Product, Event, Recipe, and other Schema.org nodes with typed define* helpers and resolver-backed defaults."
  "og:title": "Supported Nodes · Unhead"
---

Home

`
Unhead on GitHub

Switch to VueSwitch to TypeScriptSwitch to ReactSwitch to SvelteSwitch to Solid.jsSwitch to AngularSwitch to Nuxt

**Core Concepts**

# **Supported Nodes**

[Copy for LLMs](https://raw.githubusercontent.com/unjs/unhead/refs/heads/main/docs/schema-org/2.guides/1.core-concepts/2.nodes.md)

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~~**](https://developers.google.com/search/docs/appearance/structured-data/search-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~~**](https://unhead.unjs.io/docs/schema-org/guides/core-concepts/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~~**](https://schema.org/docs/full.html).

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

```
import { useSchemaOrg } from '@unhead/schema-org/vue'

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',
    },
  }
])
```

## 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.

[~~Edit this page~~](https://github.com/unjs/unhead/edit/main/docs/schema-org/2.guides/1.core-concepts/2.nodes.md)

[~~Markdown For LLMs~~](https://raw.githubusercontent.com/unjs/unhead/refs/heads/main/docs/schema-org/2.guides/1.core-concepts/2.nodes.md)

**Did this page help you? **

[**Deduping Nodes** Automatic Schema.org node deduplication by @id. Add multiple nodes of same type with custom IDs, replace vs merge strategies.](https://unhead.unjs.io/docs/schema-org/guides/core-concepts/deduping-nodes) [**Google Search Fields** Use typed required and recommended properties for Google Search structured data features.](https://unhead.unjs.io/docs/schema-org/guides/core-concepts/google-search-fields)

**On this page **

- [Google root coverage](#google-root-coverage)
- [How do I add a custom Schema.org node?](#how-do-i-add-a-custom-schemaorg-node)
- [Which nodes are officially supported?](#which-nodes-are-officially-supported)