---
title: "Nuxt SEO Guide"
description: "Meta tags, robots.txt, sitemaps, rendering strategy, and Core Web Vitals: the full Nuxt SEO curriculum, built on the typed Nuxt SEO module."
canonical_url: "https://nuxtseo.com/learn-seo/nuxt"
last_updated: "2026-07-16"
---

Nuxt handles most SEO fundamentals by default: server-side rendering, sitemap generation, and meta tag management all work by default. The `@nuxtjs/seo` module adds the rest: robots.txt control, [Schema.org](http://Schema.org) structured data, and automated Open Graph images, all through typed composables built on Unhead.

This guide covers meta tags, crawler control, rendering strategy, and what to check once you're live.

## Install the Module

The official Nuxt SEO module bundles the ecosystem: sitemaps, robots.txt, OG images, [schema.org](http://schema.org), and the rest of the utilities, with a single typed config.

::module-card{slug="nuxt-seo"}
::

Prefer a modular approach? Install these individually instead:

::div{.grid.grid-cols-1.sm:grid-cols-2.gap-4}
  :::module-card{slug="sitemap"}
  :::

  :::module-card{slug="robots"}
  :::

  :::module-card{slug="og-image"}
  :::

  :::module-card{slug="schema-org"}
  :::

  :::module-card{slug="seo-utils"}
  :::

  :::module-card{slug="site-config"}
  :::
::

## Curriculum

**New to Nuxt SEO?** Start with [Mastering Meta](/learn-seo/nuxt/mastering-meta). It covers the fundamentals using `useSeoMeta()`{lang="ts"}.

**Need a quick audit?** Use the [SEO Checklist](/learn-seo/checklist), a pre-launch and post-launch audit tool.

### Mastering Meta

Control how your pages appear in search results and social feeds, using the type-safe `useSeoMeta()`{lang="ts"} composable and automated Open Graph generation.

| Guide                                                       | What You'll Learn                     |
| ----------------------------------------------------------- | ------------------------------------- |
| [Titles](/learn-seo/nuxt/mastering-meta/titles)             | Title templates and truncation limits |
| [Descriptions](/learn-seo/nuxt/mastering-meta/descriptions) | Writing descriptions that earn clicks |
| [Open Graph](/learn-seo/nuxt/mastering-meta/open-graph)     | Zero-runtime OG image generation      |
| [Schema.org](/learn-seo/nuxt/mastering-meta/schema-org)     | Building connected data graphs        |

### Controlling Crawlers

Define who can access your content, from Googlebot to AI scrapers.

| Guide                                                                 | What You'll Learn                              |
| --------------------------------------------------------------------- | ---------------------------------------------- |
| [robots.txt](/learn-seo/nuxt/controlling-crawlers/robots-txt)         | Blocking AI crawlers and managing crawl budget |
| [Sitemaps](/learn-seo/nuxt/controlling-crawlers/sitemaps)             | Dynamic sources and image sitemaps             |
| [Canonical URLs](/learn-seo/nuxt/controlling-crawlers/canonical-urls) | Consolidating ranking signals                  |

### Routes & Rendering

Move beyond a single SSR mode to route rules that pick the right rendering strategy per page.

| Guide                                                              | What You'll Learn                 |
| ------------------------------------------------------------------ | --------------------------------- |
| [Hybrid Rendering](/learn-seo/nuxt/routes-and-rendering/rendering) | Mixing SSR, SSG, and ISR by route |

### Launch & Listen

Deploy with confidence and monitor real-world performance.

| Guide                                                                | What You'll Learn                   |
| -------------------------------------------------------------------- | ----------------------------------- |
| [Core Web Vitals](/learn-seo/nuxt/launch-and-listen/core-web-vitals) | Optimizing INP and LCP              |
| [Search Console](/learn-seo/nuxt/launch-and-listen/search-console)   | Verification and indexing debugging |
| [SEO Monitoring](/learn-seo/nuxt/launch-and-listen/seo-monitoring)   | Tracking rank and site health       |

## Why Nuxt Handles SEO Well

```vue
<script setup lang="ts">
// Fully typed, auto-imported, and SSR-ready
useSeoMeta({
  title: 'Nuxt SEO Guide',
  description: 'The complete guide to Nuxt SEO.',
  ogImage: 'https://nuxtseo.com/og/guide.png',
  twitterCard: 'summary_large_image',
})
</script>
```

- **Server-rendered by default.** SSR ships real HTML in the initial response, which is what crawlers that don't execute JavaScript need to see your content at all.
- **Route-level rendering control.** Use `routeRules` to serve static content for marketing pages while keeping dashboards dynamic, all under one domain.
- **One hook system.** `@nuxtjs/seo` wires into Nuxt's build and runtime hooks, from build-time sitemap generation to runtime header injection.

Working outside Nuxt? The fundamentals (meta tags, rendering strategy, crawler control) still apply. See the [Vue SEO guide](/learn-seo/vue) for Vite SSR, [VitePress](https://vitepress.dev), and plain Vue 3 setups.

## Common Mistakes

**Reaching for `useHead()`{lang="ts"} for basic meta tags**: `useSeoMeta()`{lang="ts"} gives you flatter, type-safe syntax for the common SEO tags; save `useHead()`{lang="ts"} for cases it doesn't cover.

**Ignoring AI crawlers**: GPTBot and other LLM scrapers read your `robots.txt` like any other bot. Decide what to allow instead of leaving the default wide open.

**Skipping route rules**: Serving every route through the same rendering mode wastes edge caching that `routeRules` gives you for free on static content.