Built for Nuxt · the intuitive Vue meta-framework

Free Nuxt SEO Audit
in 8 seconds.

Paste any Nuxt URL. Get 70+ ranking signals scored — schema, Core Web Vitals, mobile-first, AEO (ChatGPT & Perplexity visibility). AI Coach generates the exact fix. No signup. No credit card.

Free foreverTuned for NuxtAI Coach generates patches
No signup required 70+ SEO checks · 8 seconds Free forever tier

Or try a sample — audit nuxt.com

Nuxt gives Vue developers server-side rendering, static generation, and a clean head-management API — which means it can produce excellent SEO. But 'can' is doing a lot of work: Nuxt's SEO quality depends entirely on how you configure rendering and meta. The issues we see most are pages rendered client-side that ship empty HTML to crawlers, useHead/useSeoMeta calls that were never added so titles default to the app name, hydration-heavy pages that fail mobile Core Web Vitals, and a complete absence of structured data because nobody wired it into the head. Nuxt's defaults are sensible but minimal — it gives you the tools and assumes you'll use them. Our audit reads your rendered output and tells you exactly which pages are shipping thin HTML, missing meta, or dropping schema.

What we catch

The 5 most common SEO issues
on Nuxt apps.

Our audit is tuned to spot the patterns that show up over and over on Nuxtsites. Here's what to look for — and how to fix each one.

01

Client-side-only routes shipping empty HTML

If a route renders client-side only (ssr: false, or a component that only mounts data after hydration), crawlers receive a near-empty HTML shell. Google can render JavaScript, but it's slower and less reliable — and other crawlers (Bing, AI engines, social unfurlers) often don't render it at all.

Fix: Use SSR or static generation (nuxt generate) for any route that needs to rank, and make sure critical content is in the server-rendered HTML, not fetched only on the client. The audit shows how much real content is in your initial HTML.

02

Missing useHead/useSeoMeta on pages

Nuxt won't set per-page titles and descriptions unless you call useHead or useSeoMeta in each page. Skip it and every route inherits the app-level default — producing duplicate, generic titles that don't target distinct keywords.

Fix: Add useSeoMeta({ title, description, ogImage }) to every page component, ideally driven by your content/CMS data. The audit lists pages with missing or duplicated titles and descriptions.

03

Hydration cost failing mobile Core Web Vitals

Nuxt hydrates the whole page by default, and a content-heavy page with large component trees can spend significant main-thread time hydrating — delaying interactivity (INP) and sometimes the largest paint on mid-range mobile devices.

Fix: Lazy-hydrate or defer non-critical components, code-split heavy routes, and consider Nuxt's island/partial-hydration patterns for static content. The audit's Performance category reports your LCP and identifies the blocking work.

04

No structured data in the head

Nuxt has no built-in schema — unless you've added JSON-LD via useHead's script option, your app has zero structured data. That means no Article, Product, FAQ, or Organization signals for rich results or AI answer engines.

Fix: Add JSON-LD through useHead({ script: [{ type: 'application/ld+json', innerHTML: ... }] }) or the @nuxtjs/seo module's useSchemaOrg. Our Schema Generator produces valid blocks to drop in.

05

Canonical and trailing-slash inconsistencies

Nuxt routing can serve a page at both /about and /about/ (or with/without query params) unless canonicals and redirects are configured. Without a consistent canonical, Google may index multiple versions and split ranking signal.

Fix: Set canonical URLs via useHead link tags and enforce a trailing-slash policy in nuxt.config + redirects. The audit checks your canonical tags and flags duplicate-path patterns.

Pro for Nuxt

When you outgrow the free tier.

Nuxt apps range from a handful of marketing routes to large content sites, and rendering-mode bugs tend to be systemic — one mis-set route option affects every page using that layout. Pro's full-site crawl audits up to 25 routes per scan, so you can confirm SSR is actually shipping content across your key pages and spot which ones dropped their meta or schema. The AI Coach writes useSeoMeta blocks and JSON-LD you paste straight into your page components, and the weekly monitor catches the SEO regressions that ship with framework upgrades and refactors — before they reach production rankings.

Nuxt SEO — answered.

Long-tail questions we hear from Nuxt site owners.

Is Nuxt good for SEO?
Yes — when you use its server-side rendering or static generation. Nuxt with SSR/SSG produces fully-rendered HTML that crawlers index easily, plus a clean head-management API for titles, meta, and canonical tags. The risk is shipping client-only rendered routes that send crawlers empty HTML, or forgetting to add per-page meta. Nuxt gives you everything you need; you have to configure it. Run the audit to confirm your pages are rendering real content.
How do I set meta tags in Nuxt 3?
Use useSeoMeta({ title, description, ogTitle, ogImage }) or useHead inside each page's <script setup>. For site-wide defaults, set them in app.vue or nuxt.config's app.head. Drive them from your content data so every CMS-generated page gets unique meta. The audit flags pages with missing or duplicated titles and descriptions.
Why is my Nuxt page not showing content to Google?
Almost always client-side-only rendering. If a route is ssr:false or fetches its content only after hydration, the server sends an empty shell and crawlers see little to no content. Switch ranking-critical routes to SSR or static generation so the content is in the initial HTML. The audit reports how much real content is in your server-rendered output.
How do I add schema markup to Nuxt?
Use useHead with a script entry of type 'application/ld+json', or install the @nuxtjs/seo module which provides useSchemaOrg helpers for common types. Nuxt has no schema by default, so it must be added explicitly. Our Schema Generator outputs valid JSON-LD for Article, Product, FAQPage, and Organization that you can drop into useHead.
Does the audit work on Nuxt SSR, SSG, and hybrid rendering?
Yes. The audit fetches your deployed page exactly as a crawler would, so it accurately reflects what SSR, static generation, or hybrid (route-rules) rendering actually ships. That's the point — it shows you the real HTML crawlers receive, which is the only thing that matters for indexing.
Does this work for Nuxt 2 and Nuxt 3?
Yes. The audit reads rendered output, so it's version-agnostic — Nuxt 2 or Nuxt 3, any module setup. The meta and schema APIs differ between versions (Nuxt 3 uses useHead/useSeoMeta), but the audit checks the resulting HTML, and the AI Coach can give you the right syntax for your version.

Audit your Nuxt site
right now.

Free forever for any URL. 8-second audit. AI Coach generates the fix.