SEO by platform · Updated
Nuxt SEO: metadata, sitemaps and rendering
Nuxt renders Vue pages on the server by default, so crawlers get full HTML. Use its useSeoMeta and useHead composables for titles and meta tags, add sitemap and robots modules, and prerender pages that don't change often.

Founder, SEO·AEO·GEO
Builds SEO·AEO·GEO and writes the crawler, schema, and citation research published here.
How Nuxt serves pages to crawlers
Nuxt uses universal rendering by default: the server returns full HTML, then the app hydrates in the browser. You can also prerender routes to static HTML or set rendering per route with route rules.
Titles and meta tags
<script setup lang="ts">
const { data: post } = await useFetch(`/api/posts/${useRoute().params.slug}`)
useSeoMeta({
title: post.value?.seoTitle,
description: post.value?.description,
ogTitle: post.value?.seoTitle,
ogDescription: post.value?.description,
})
</script>useSeoMeta is type-safe and covers the common meta tags; useHead handles everything else, including canonical links and JSON-LD scripts.
Checklist
- Fetch content with useFetch or useAsyncData so it's in the server HTML, not only fetched on the client.
- Add a sitemap module (such as @nuxtjs/sitemap) and robots rules.
- Prerender static content (nuxi generate, or prerender route rules).
- Throw createError({ statusCode: 404 }) for missing items so they return a real 404.
- Use <NuxtLink>, which renders real <a href> links.
- Don't set ssr: false on pages that need to rank.
Nuxt and AI search
- Check robots.txt allows the AI search crawlers you want: OAI-SearchBot (ChatGPT search), Claude-SearchBot, PerplexityBot. See the AI crawler list and the robots.txt generator.
- Check your host's or CDN's bot protection doesn't block them even when robots.txt allows them.
- Make sure the main text is in the HTML the server sends. AI crawlers don't run JavaScript.
- Avoid nosnippet and tiny max-snippet values on pages you want quoted; they also keep pages out of Google's AI Overviews.
Check it on your own site
What the free audit tests for this
- Raw HTML visibility
- Title tag
- Meta description
- sitemap.xml
- Soft 404
One URL, about 20 seconds, no login. You get the result of every check and the exact fix for the top three issues.
Audit your website freeFAQ
Is Nuxt good for SEO?+
Yes. Server rendering by default, prerendering and built-in head management make it one of the best Vue options for SEO.
What's the difference between useSeoMeta and useHead?+
useSeoMeta is a typed shortcut for common meta tags; useHead sets anything in the head, including links and scripts.
Sources
- SEO and Meta — Nuxt Docs
- Rendering Modes — Nuxt Docs
- Understand JavaScript SEO basics — Google Search Central