---
title: "Nuxt Content"
description: "How to use the Nuxt Schema.org module with Nuxt Content."
canonical_url: "https://nuxtseo.com/docs/schema-org/guides/content"
last_updated: "2026-05-20T05:47:16.935Z"
---

## Introduction

Nuxt Schema.org integrates with Nuxt Content out of the box, supporting a `schemaOrg` frontmatter key that can be used to configure your pages
schema.org data.

You can see a demo of this integration in the [Nuxt OG Image & Nuxt Content Playground](https://stackblitz.com/edit/github-hgunsf?file=package.json).

## Setup Nuxt Content v3

Add `defineSchemaOrgSchema()` to your collection's schema to enable the `schemaOrg` frontmatter key.

```ts [content.config.ts]
import { defineCollection, defineContentConfig } from '@nuxt/content'
import { defineSchemaOrgSchema } from 'nuxt-schema-org/content'
import { z } from 'zod'

export default defineContentConfig({
  collections: {
    content: defineCollection({
      type: 'page',
      source: '**/*.md',
      schema: z.object({
        schemaOrg: defineSchemaOrgSchema(),
      }),
    }),
  },
})
```

To ensure the tags actually gets rendered you need to ensure you're using the `useHead()` composable with the `head` key.

```vue [[...slug].vue]
<script setup lang="ts">
import { queryCollection, useRoute } from '#imports'

const route = useRoute()
const { data: page } = await useAsyncData(`page-${route.path}`, () => {
  return queryCollection('content').path(route.path).first()
})
// Ensure the schema.org is rendered
useHead(page.value.head || {})
useSeoMeta(page.value.seo || {})
</script>
```

## Setup Nuxt Content v2

No extra set up is required, simply add the `schemaOrg` key to your frontmatter.

## Usage

It's recommended to provide an array of Schema.org nodes, otherwise you will be extending the [`WebPage`](https://unhead.unjs.io/schema-org/schema/webpage) node with the provided data.

<code-group>

```md [Array]
---
schemaOrg:
  # Define new nodes
  - "@type": "BlogPosting"
    headline: "How to Use Our Product"
    author:
      "@type": "Person"
      name: "Jane Smith"
    datePublished: "2023-10-01"
---
```

```md [Object]
---
schemaOrg:
  # Augment WebPage to an AboutPage
  "@type": "AboutPage"
---
```

</code-group>

## Markdown Recipes

### Blog Post

```md
---
title: 'My Blog Post'
schemaOrg:
  - "@type": "BlogPosting"
    headline: "How to Use Our Product"
    author:
      "@type": "Person"
      name: "Jane Smith"
    datePublished: "2023-10-01"
---
```

### FAQ Page

```md
---
title: 'FAQ'
schemaOrg:
  "@type": "FaqPage"
  mainEntity:
    - "@type": "Question"
      name: "What is your return policy?"
      acceptedAnswer:
        "@type": "Answer"
        text: "You can return any item within 30 days of purchase."
    - "@type": "Question"
      name: "Do you offer technical support?"
      acceptedAnswer:
        "@type": "Answer"
        text: "Yes, we offer 24/7 technical support."
---
```

### About Page

```md
---
title: 'About'
schemaOrg:
  "@type": "AboutPage"
---
```

### Contact Page

```md
---
title: 'Contact'
schemaOrg:
  "@type": "ContactPage"
  mainEntity:
    "@type": "ContactPoint"
    contactType: "Customer Service"
    telephone: "+1-800-555-5555"
    email: "support@example.com"
---
```

### Product Page

```md
---
title: 'Product'
schemaOrg:
  - "@type": "Product"
    name: "Product XYZ"
    description: "A high-quality product that meets your needs."
    offers:
      "@type": "Offer"
      price: "29.99"
      priceCurrency: "USD"
---
```
