Nuxt Content · Nuxt Schema.org · Nuxt SEO

[NuxtSEO](https://nuxtseo.com/ "Home")

- [Modules](https://nuxtseo.com/docs/nuxt-seo/getting-started/introduction)
- [Tools](https://nuxtseo.com/tools)
- [Pro](https://nuxtseo.com/pro)
- [Learn SEO](https://nuxtseo.com/learn-seo/nuxt) [Releases](https://nuxtseo.com/releases)

[1.4K](https://github.com/harlan-zw/nuxt-seo)

[Nuxt SEO on GitHub](https://github.com/harlan-zw/nuxt-seo)

[User Guides](https://nuxtseo.com/docs/schema-org/getting-started/introduction)

[API](https://nuxtseo.com/docs/schema-org/api/use-schema-org)

[Releases](https://nuxtseo.com/docs/schema-org/releases/v6)

Schema.org

- [Switch to Schema.org](https://nuxtseo.com/docs/schema-org/getting-started/introduction)
- [Switch to Nuxt SEO](https://nuxtseo.com/docs/nuxt-seo/getting-started/introduction)
- [Switch to Robots](https://nuxtseo.com/docs/robots/getting-started/introduction)
- [Switch to Sitemap](https://nuxtseo.com/docs/sitemap/getting-started/introduction)
- [Switch to OG Image](https://nuxtseo.com/docs/og-image/getting-started/introduction)
- [Switch to Link Checker](https://nuxtseo.com/docs/link-checker/getting-started/introduction)
- [Switch to SEO Utils](https://nuxtseo.com/docs/seo-utils/getting-started/introduction)
- [Switch to Site Config](https://nuxtseo.com/docs/site-config/getting-started/introduction)
- [Switch to Skew Protection](https://nuxtseo.com/docs/skew-protection/getting-started/introduction)
- [Switch to AI Ready](https://nuxtseo.com/docs/ai-ready/getting-started/introduction)

Search…```k`` /`

v6.0.4

- Playgrounds
- [Discord Support](https://discord.com/invite/275MBUBvgP)

### Getting Started

- [Introduction](https://nuxtseo.com/docs/schema-org/getting-started/introduction)
- [Installation](https://nuxtseo.com/docs/schema-org/getting-started/installation)
- [Troubleshooting](https://nuxtseo.com/docs/schema-org/getting-started/troubleshooting)

### Core Concepts

- [How It Works](https://nuxtseo.com/docs/schema-org/guides/how-it-works)
- [Nuxt Content](https://nuxtseo.com/docs/schema-org/guides/content)
- [Default Schema.org](https://nuxtseo.com/docs/schema-org/guides/default-schema-org)
- [Setup Identity](https://nuxtseo.com/docs/schema-org/guides/setup-identity)
- [Nuxt I18n](https://nuxtseo.com/docs/schema-org/guides/i18n)
- [Supported Nodes](https://nuxtseo.com/docs/schema-org/guides/nodes)
- [Full Documentation](https://nuxtseo.com/docs/schema-org/guides/full-documentation)

Core Concepts

# Nuxt Content

[Copy for LLMs](https://nuxtseo.com/docs/schema-org/guides/content.md)

## [Introduction](#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](#setup-nuxt-content-v3)

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

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.

[...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](#setup-nuxt-content-v2)

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

## [Usage](#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.

Array

Object

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

```
---
schemaOrg:
  # Augment WebPage to an AboutPage
  "@type": "AboutPage"
---
```

## [Markdown Recipes](#markdown-recipes)

### [Blog Post](#blog-post)

```
---
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](#faq-page)

```
---
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](#about-page)

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

### [Contact Page](#contact-page)

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

### [Product Page](#product-page)

```
---
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"
---
```

[Edit this page](https://github.com/harlan-zw/nuxt-schema-org/edit/main/docs/content/2.guides/1.content.md)

[Markdown For LLMs](https://nuxtseo.com/docs/schema-org/guides/content.md)

Did this page help you?

[How It Works Learn more about how Nuxt Schema.org works.](https://nuxtseo.com/docs/schema-org/guides/how-it-works) [Default Schema.org The default Schema.org setup for Nuxt Schema.org.](https://nuxtseo.com/docs/schema-org/guides/default-schema-org)

On this page

- [Introduction](#introduction)
- [Setup Nuxt Content v3](#setup-nuxt-content-v3)
- [Setup Nuxt Content v2](#setup-nuxt-content-v2)
- [Usage](#usage)
- [Markdown Recipes](#markdown-recipes)

[GitHub](https://github.com/harlan-zw/nuxt-seo) [ Discord](https://discord.com/invite/275MBUBvgP)

### [NuxtSEO](https://nuxtseo.com/ "Home")

- [Getting Started](https://nuxtseo.com/docs/nuxt-seo/getting-started/introduction)
- [MCP](https://nuxtseo.com/docs/nuxt-seo/guides/mcp)

Modules

- [Robots](https://nuxtseo.com/docs/robots/getting-started/introduction)
- [Sitemap](https://nuxtseo.com/docs/sitemap/getting-started/introduction)
- [OG Image](https://nuxtseo.com/docs/og-image/getting-started/introduction)
- [Schema.org](https://nuxtseo.com/docs/schema-org/getting-started/introduction)
- [Link Checker](https://nuxtseo.com/docs/link-checker/getting-started/introduction)
- [SEO Utils](https://nuxtseo.com/docs/seo-utils/getting-started/introduction)
- [Site Config](https://nuxtseo.com/docs/site-config/getting-started/introduction)
- [Skew Protection](https://nuxtseo.com/docs/skew-protection/getting-started/introduction)
- [AI Ready](https://nuxtseo.com/docs/ai-ready/getting-started/introduction)

### [NuxtSEO Pro](https://nuxtseo.com/pro "Home")

- [Getting Started](https://nuxtseo.com/pro)
- [Dashboard](https://nuxtseo.com/pro/dashboard)
- [Pro MCP](https://nuxtseo.com/docs/nuxt-seo-pro/mcp/installation)

### [Learn SEO](https://nuxtseo.com/learn-seo "Learn SEO")

Nuxt

- [Mastering Meta](https://nuxtseo.com/learn-seo/nuxt/mastering-meta)
- [Controlling Crawlers](https://nuxtseo.com/learn-seo/nuxt/controlling-crawlers)
- [Launch & Listen](https://nuxtseo.com/learn-seo/nuxt/launch-and-listen)
- [Routes & Rendering](https://nuxtseo.com/learn-seo/nuxt/routes-and-rendering)
- [Staying Secure](https://nuxtseo.com/learn-seo/nuxt/routes-and-rendering/security)

Vue

- [Vue SEO Guide](https://nuxtseo.com/learn-seo/vue)
- [Mastering Meta](https://nuxtseo.com/learn-seo/vue/mastering-meta)
- [Controlling Crawlers](https://nuxtseo.com/learn-seo/vue/controlling-crawlers)
- [SPA SEO](https://nuxtseo.com/learn-seo/vue/spa)
- [SSR Frameworks](https://nuxtseo.com/learn-seo/vue/ssr-frameworks)
- [SEO Checklist](https://nuxtseo.com/learn-seo/checklist)
- [Pre-Launch Warmup](https://nuxtseo.com/learn-seo/pre-launch-warmup)
- [Backlinks & Authority](https://nuxtseo.com/learn-seo/backlinks)

### [Tools](https://nuxtseo.com/tools "SEO Tools")

- [Social Share Debugger](https://nuxtseo.com/tools/social-share-debugger)
- [Robots.txt Generator](https://nuxtseo.com/tools/robots-txt-generator)
- [Meta Tag Checker](https://nuxtseo.com/tools/meta-tag-checker)
- [HTML to Markdown](https://nuxtseo.com/tools/html-to-markdown)
- [XML Sitemap Validator](https://nuxtseo.com/tools/xml-sitemap-validator)
- [Schema.org Validator](https://nuxtseo.com/tools/schema-validator)
- [Keyword Research Pro](https://nuxtseo.com/tools/keyword-research)
- [SERP Analyzer Pro](https://nuxtseo.com/tools/serp-analyzer)
- [Domain Rankings Pro](https://nuxtseo.com/tools/domain-rankings)

Copyright © 2023-2026 Harlan Wilton - [MIT License](https://github.com/harlan-zw/nuxt-seo/blob/main/license) · [mdream](https://mdream.dev)