Claude-skills nuxt-seo
Nuxt SEO v5 modules (robots, sitemap, og-image, schema-org, link-checker, seo-utils, site-config). Use when implementing SEO, robots.txt, sitemaps, Schema.org, or meta tags in Nuxt apps.
git clone https://github.com/secondsky/claude-skills
T=$(mktemp -d) && git clone --depth=1 https://github.com/secondsky/claude-skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/plugins/nuxt-seo/skills/nuxt-seo" ~/.claude/skills/secondsky-claude-skills-nuxt-seo && rm -rf "$T"
plugins/nuxt-seo/skills/nuxt-seo/SKILL.mdNuxt SEO v5
Status: Production Ready | Dependencies: Nuxt >=3.0.0
Use this skill when building SEO-optimized Nuxt applications with any combination of the 8 official Nuxt SEO modules plus standalone modules.
Quick Start (5 Minutes)
1. Install Complete SEO Bundle
# Recommended (v5) npx nuxt module add @nuxtjs/seo
2. Configure Site Settings
export default defineNuxtConfig({ modules: ['@nuxtjs/seo'], site: { url: 'https://example.com', name: 'My Awesome Site', description: 'Building amazing web experiences', defaultLocale: 'en' } })
CRITICAL (v5 Breaking Change):
is NO LONGER auto-inferred fromsite.name
— set it explicitlypackage.json- Set
to production URL (required for sitemaps and canonical URLs)site.url - Set
if using i18ndefaultLocale
3. Restart and Verify
Visit these URLs to verify:
- Robots file/robots.txt
- Sitemap/sitemap.xml
- Debug (v5)/__robots__/debug-production.json
- Debug (v5)/__sitemap__/debug-production.json
Individual Module Install
npx nuxt module add @nuxtjs/robots npx nuxt module add @nuxtjs/sitemap npx nuxt module add nuxt-og-image
Module Overview
| Module | Version | Purpose |
|---|---|---|
| @nuxtjs/seo | v5.1.0 | Primary SEO module (installs all 8 as bundle) |
| @nuxtjs/robots | v6.0.6 | Manages robots.txt and bot detection |
| @nuxtjs/sitemap | v8.0.11 | Generates XML sitemaps with advanced features |
| nuxt-og-image | v6.3.1 | Creates Open Graph images via Vue templates |
| nuxt-schema-org | v6.0.4 | Builds Schema.org structured data graphs |
| nuxt-link-checker | v5.0.6 | Finds and fixes broken links with ESLint integration |
| nuxt-seo-utils | v8.1.4 | SEO utilities, share links, favicons, inline minification |
| nuxt-site-config | v4.0.7 | Centralized site configuration management |
Standalone (MIT):
nuxt-ai-ready (llms.txt), nuxt-skew-protection (version safety)
Pro (Paid): Nuxt SEO Pro — Search Console, Core Web Vitals, MCP server
For detailed module docs: Load
references/module-details.md
Critical Rules
Always Do
- Set
ANDsite.url
explicitly in nuxt.config.ts (v5: name no longer auto-inferred)site.name - Use environment variables for multi-environment setups
- Configure robots.txt to block admin/private pages
- Add Schema.org structured data to all important pages
- Generate OG images for social sharing
- Use
on server side (v5:getSiteConfig(event)
removed)useSiteConfig(event) - Use
for Content v3 (v5:defineSitemapSchema()
deprecated)asSitemapCollection()
Never Do
- Forget to set
andsite.url
(breaks sitemaps, canonical URLs, titles)site.name - Allow crawling of staging environments
- Use
on server side (v5: useuseSiteConfig(event)
)getSiteConfig(event) - Use
(v5: useasSitemapCollection()
)defineSitemapSchema() - Use
(v5: usegetSiteIndexable()
){ indexable } = getSiteConfig(event)
Known Issues Prevention
Issue #1: Sitemap Not Generating
Error:
/sitemap.xml returns 404 | Fix: Set site.url in nuxt.config.ts
Issue #2: robots.txt Missing
Error:
/robots.txt not accessible | Fix: Install @nuxtjs/robots and set site.url
Issue #3: OG Images Not Rendering
Error:
/__og-image__/og.png returns error | Fix: Use Satori-compatible CSS or switch to Chromium renderer
Issue #4: Schema Validation Errors
Error: Invalid JSON-LD | Fix: Follow official Schema.org types, validate with Google Rich Results Test
Issue #5: Broken Internal Links
Error: 404 on internal links | Fix: Enable
nuxt-link-checker with ESLint rules during development
Issue #6: Duplicate Meta Tags
Error: Multiple meta tags with same property | Fix: Let modules handle meta tags automatically
Issue #7: Canonical URL Issues
Error: Wrong canonical URL | Fix: Configure
site.url and trailingSlash correctly
Issue #8: Sitemap Index Errors
Error: Sitemap index XML malformed | Fix: Use
chunkSize option to split large sitemaps
Issue #9: Crawling Staging Environment
Error: Staging indexed by Google | Fix:
disallow: process.env.NUXT_PUBLIC_ENV === 'staging' ? ['/'] : []
Issue #10: Missing Social Sharing Images
Error: No preview on social media | Fix: Use
defineOgImage() on all important pages
Issue #11: Missing Site Name (v5 Breaking)
Error: Site title/og:site_name missing | Fix: Set
site.name in nuxt.config.ts or NUXT_SITE_NAME env var
Ref: https://nuxtseo.com/docs/nuxt-seo/migration-guide/v4-to-v5
Issue #12: Server-Side useSiteConfig Error (v5 Breaking)
Error:
useSiteConfig is not a function on server | Fix: Use getSiteConfig(event) on server side
Ref: https://github.com/harlan-zw/nuxt-site-config/releases
Issue #13: Deprecated Content Composables (v5 Breaking)
Error:
asSitemapCollection is not defined | Fix: Use defineSitemapSchema(), defineSchemaOrgSchema(), defineRobotsSchema()
Ref: https://nuxtseo.com/docs/nuxt-seo/migration-guide/v4-to-v5
Issue #14: OG Image Security Errors (v5)
Error: OG image requests return 403 or signature errors | Fix: Use
defineOgImage() properly; don't manually construct OG image URLs
Ref: https://nuxtseo.com/docs/og-image/getting-started/introduction
Configuration Example
export default defineNuxtConfig({ modules: ['@nuxtjs/seo'], site: { url: process.env.NUXT_PUBLIC_SITE_URL, name: 'My Site', defaultLocale: 'en' }, robots: { disallow: process.env.NUXT_PUBLIC_ENV === 'staging' ? ['/'] : [] }, sitemap: { sitemaps: { blog: { sources: ['/api/__sitemap__/blog'] } } } })
New v5 Features
- Social Share Links:
with UTM trackinguseShareLinks({ title, twitter, utm }) - Favicon Generation:
npx nuxt-seo-utils icons --source logo.svg - ESLint Link Checking:
import linkChecker from 'nuxt-link-checker/eslint' - definePageMeta Sitemap:
definePageMeta({ sitemap: { changefreq: 'daily', priority: 0.8 } }) - Inline Minification:
seo: { minify: true }
When to Load References
Load reference files based on the user's specific needs:
| Load When | Reference File |
|---|---|
| Upgrading v4→v5, breaking changes | |
| Rendering modes, JSON-LD, canonical URLs, IndexNow | |
| AI optimization, llms.txt, MCP tools | |
| I18n SEO, route rules, link checker rules | |
| OG image templates, Satori/Chromium, fonts | |
| Nuxt Content integration, asSeoCollection | |
| Dynamic sitemaps, multi-sitemaps, chunking | |
| Server-side hooks, Nitro plugins | |
| llms.txt, AI crawlers, content signals | |
| Module capabilities overview | |
| First-time setup, package manager specifics | |
| Composable API docs, parameter lists | |
| Blog, e-commerce, multi-language patterns | |
| Specific module configuration | |
| Production SEO guidelines | |
| Error resolution, module conflicts | |
| Multi-environment, advanced features | |
Bundled Resources
Agents
| Agent | Purpose |
|---|---|
| Comprehensive SEO audit |
| Generate Schema.org structured data |
| Create custom OG image templates |
| Analyze internal/external links |
| Design optimal sitemap strategies |
Commands
| Command | Purpose |
|---|---|
| Run comprehensive SEO audit |
| Quick Nuxt SEO project setup |
| Preview OG image generation |
| Run link checker analysis |
| Validate sitemap configuration |
| Validate Schema.org implementation |
Assets
— Current module versions for verificationassets/package-versions.json
Package Versions (Verified 2026-04-02)
{ "dependencies": { "@nuxtjs/seo": "^5.1.0", "@nuxtjs/robots": "^6.0.6", "@nuxtjs/sitemap": "^8.0.11", "nuxt-og-image": "^6.3.1", "nuxt-schema-org": "^6.0.4", "nuxt-link-checker": "^5.0.6", "nuxt-seo-utils": "^8.1.4", "nuxt-site-config": "^4.0.7" } }
Official Documentation
- Nuxt SEO: https://nuxtseo.com
- v5 Migration: https://nuxtseo.com/docs/nuxt-seo/migration-guide/v4-to-v5
- @nuxtjs/robots: https://nuxtseo.com/docs/robots/getting-started/introduction
- @nuxtjs/sitemap: https://nuxtseo.com/docs/sitemap/getting-started/introduction
- nuxt-og-image: https://nuxtseo.com/docs/og-image/getting-started/introduction
- nuxt-schema-org: https://nuxtseo.com/docs/schema-org/getting-started/introduction
- nuxt-link-checker: https://nuxtseo.com/docs/link-checker/getting-started/introduction
- GitHub: https://github.com/harlan-zw
Production Ready: All patterns based on official documentation from https://nuxtseo.com/llms-full.txt | Last verified: 2026-04-02