Nuxt SEO meta-module with robots, sitemap, og-image, schema-org. Use when configuring SEO, generating sitemaps, creating OG images, or adding structured data.
nuxt-seo follows the SKILL.md standard. Use the install command to add it to your agent stack.
---
name: nuxt-seo
description: Nuxt SEO meta-module with robots, sitemap, og-image, schema-org. Use when configuring SEO, generating sitemaps, creating OG images, or adding structured data.
license: MIT
---
# Nuxt SEO
```bash
npx nuxi module add @nuxtjs/seo
```
## When to Use
Working with:
- SEO configuration (site URL, name, indexability)
- Robots.txt and sitemap.xml generation
- Dynamic OG image generation
- JSON-LD structured data (schema.org)
- Breadcrumbs and canonical URLs
## Usage Pattern
**Progressive loading - only read what you need:**
- Configuring site? → [references/site-config.md](references/site-config.md)
- Setting up robots/sitemap? → [references/crawlability.md](references/crawlability.md)
- Generating OG images? → [references/og-image.md](references/og-image.md)
- Adding JSON-LD? → [references/schema-org.md](references/schema-org.md)
- Breadcrumbs, links, icons? → [references/utilities.md](references/utilities.md)
## Site Config
Foundation for all SEO modules. Configure `site` in `nuxt.config.ts`, access via `useSiteConfig()`. See [references/site-config.md](references/site-config.md) for full options.
## Module Overview
| Module | Purpose | Key API |
| ----------------- | --------------- | ----------------------------- |
| nuxt-site-config | Shared config | `useSiteConfig()` |
| @nuxtjs/robots | robots.txt | `useRobotsRule()` |
| @nuxtjs/sitemap | sitemap.xml | `defineSitemapEventHandler()` |
| nuxt-og-image | OG images | `defineOgImage()` |
| nuxt-schema-org | JSON-LD | `useSchemaOrg()` |
| nuxt-seo-utils | Meta utilities | `useBreadcrumbItems()` |
| nuxt-link-checker | Link validation | Build-time checks |
## Nuxt Content v3
Use `asSeoCollection()` for automatic sitemap, og-image, and schema-org from frontmatter:
```ts
// content.config.ts
import { defineCollection, defineContentConfig } from '@nuxt/content'
import { asSeoCollection } from '@nuxtjs/seo/content'
export default defineContentConfig({
collections: {
posts: defineCollection(asSeoCollection({ type: 'page', source: 'posts/**' }))
}
})
```
**Important:** Load `@nuxtjs/seo` before `@nuxt/content` in modules array:
```ts
export default defineNuxtConfig({
modules: ['@nuxtjs/seo', '@nuxt/content']
})
```
Frontmatter fields: `ogImage`, `sitemap`, `robots`, `schemaOrg`.
## Related Skills
- [nuxt-content](../nuxt-content/SKILL.md) - For MDC rendering with SEO frontmatter
## Links
- [Documentation](https://nuxtseo.com)
- [GitHub](https://github.com/harlan-zw/nuxt-seo)
## Token Efficiency
Main skill: ~250 tokens. Each sub-file: ~400-600 tokens. Only load files relevant to current task.