Index of every page on this site: llms.txt
All skills
onmax avatar

/nuxt-seo

@2e74504 official
by Maxonmax/nuxt-skills722 stars
38
Run it yourself

Nuxt SEO meta-module with robots, sitemap, og-image, schema-org. Use when configuring SEO, generating sitemaps, creating OG images, or adding structured data.

Use this Skill: https://skilld.dev/gh/onmax/nuxt-skills/nuxt-seo

Nothing lands on disk. Nothing to clean up.

Fork this Skill

Edit a local copy. It keeps the author and licence.

referencescrawlability.md

≈701 tokens on demand. Your agent reads this file only when SKILL.md points to it.

Crawlability: Robots & Sitemap

Robots.txt

Auto-generated at /robots.txt. Respects site.indexable setting.

Configuration

// nuxt.config.ts
export default defineNuxtConfig({
  robots: {
    // Block AI crawlers
    blockAiBots: true,
    // Block non-SEO bots (reduces server load)
    blockNonSeoBots: true,
    // Custom rules
    groups: [
      { userAgent: '*', disallow: ['/admin'] }
    ]
  }
})

Per-Page Control

// Disable indexing
useRobotsRule('noindex, nofollow')

// Object syntax with AI directives
useRobotsRule({
  noindex: true,
  nofollow: true,
  noai: true,           // Block AI training
  noimageai: true,      // Block AI image training
  'max-snippet': 150,   // Preview controls
  'max-image-preview': 'large'
})

Route rules:

export default defineNuxtConfig({
  routeRules: {
    '/admin/**': { robots: 'noindex, nofollow' },
    '/hidden': { robots: false }
  }
})

Nuxt Content Frontmatter

---
robots: noindex, nofollow
# Or structured:
robots:
  noindex: true
  nofollow: true
---

Sitemap.xml

Auto-generated at /sitemap.xml from app routes.

Configuration

// nuxt.config.ts
export default defineNuxtConfig({
  sitemap: {
    sources: ['/api/__sitemap__/urls'],
    exclude: ['/admin/**', '/secret'],
    // For static sites - no runtime generation
    zeroRuntime: true
  }
})

Dynamic URLs via API

// server/api/__sitemap__/urls.ts
import { defineSitemapEventHandler } from '#imports'
import type { SitemapUrlInput } from '#sitemap/types'

export default defineSitemapEventHandler(async () => {
  const posts = await $fetch('/api/posts')
  return posts.map(post => ({
    loc: post.path,
    lastmod: post.updatedAt,
    // Image sitemap
    images: [{ loc: post.image, title: post.title }],
    // Video sitemap
    videos: [{ content_loc: post.videoUrl, title: post.title }]
  } satisfies SitemapUrlInput))
})

Per-Page Control

Route rules:

export default defineNuxtConfig({
  routeRules: {
    '/blog/**': { sitemap: { changefreq: 'daily', priority: 0.9 } },
    '/hidden': { sitemap: false }
  }
})

Nuxt Content frontmatter:

---
sitemap:
  changefreq: weekly
  priority: 0.8
  lastmod: 2025-01-15
---

Multiple Sitemaps

For large sites:

export default defineNuxtConfig({
  sitemap: {
    sitemaps: {
      pages: { include: ['/**'], exclude: ['/blog/**'] },
      blog: { include: ['/blog/**'] }
    }
  }
})

Generates /pages-sitemap.xml, /blog-sitemap.xml, and /sitemap_index.xml.

i18n Sitemaps

With @nuxtjs/i18n, auto-generates per-locale sitemaps with hreflang alternates.

Debug

In development:

  • Robots: Check /robots.txt directly
  • Sitemap: Visit /__sitemap__/debug.json for raw data

Source: SKILL.md on GitHub

skilld matched fixed text patterns in SKILL.md and file names. Patterns miss obfuscated code.

skilld run checks every file with the same patterns. It asks for approval before it loads a Skill with a behavior marked Needs approval.

No alerts1mo5 checks · Risk SAFE
  • Gen Agent Trust Hub1mo

    This skill provides documentation and configuration examples for the Nuxt SEO module suite. It covers site configuration, robots.txt, sitemaps, Open Graph images, schema.org structured data, and SEO utilities. No malicious patterns or security risks were identified.

  • Socket1mo

    No alerts

  • Snyk1mo

    Risk: LOW · No issues

  • Runlayer8mo

    6 files scanned · No issues

  • ZeroLeaks6mo

    Score: 93/100 · 2 sections analyzed

Signed by skilld at 2e74504. This ties the file your Agent reads to that commit on GitHub. It does not review the instructions.

Last checked against GitHub last week.

Activeupdated 9 months ago
  • Nuxt
  • SEO
  • sitemap
  • og-image
  • schema-org
  • robots-txt
  • structured-data
  • json-ld
  • metadata

README badge

README badge for onmax/nuxt-skills/nuxt-seo

Generates and manages SEO metadata for Nuxt apps: robots.txt, sitemap.xml, dynamic OG images, JSON-LD structured data, and canonical URLs. Use this skill when configuring site SEO foundation, building crawlable sitemaps, creating social media preview images, or adding schema.org markup to pages.

Generated from the current SKILL.md.

Does this work with Nuxt Content?
Yes. Use `asSeoCollection()` to automatically generate sitemaps, OG images, and schema-org from Nuxt Content v3 frontmatter. Load @nuxtjs/seo before @nuxt/content in the modules array.
Can I generate dynamic OG images?
Yes. The skill includes nuxt-og-image for dynamic OG image generation. Load references/og-image.md for implementation details.
What structured data formats does this support?
JSON-LD via schema.org through the nuxt-schema-org module. Access it with `useSchemaOrg()` and refer to references/schema-org.md for configuration.
Does this handle robots.txt and sitemaps?
Yes. The skill includes @nuxtjs/robots for robots.txt generation and @nuxtjs/sitemap for sitemap.xml. Use `useRobotsRule()` and `defineSitemapEventHandler()` respectively.
What is the base configuration requirement?
You must configure the `site` object in nuxt.config.ts and access it via `useSiteConfig()`. This is the foundation all SEO modules depend on.

Generated from the current SKILL.md. These answers refresh after source changes.