seo.yatna.ai
Free SEO Audit Tool

Nuxt SEO Audit — Vue.js SSR and the 10 Issues That Hurt Your Search Rankings

Run a free Nuxt SEO audit. Catch missing SEO modules, inconsistent SSR meta tags, sitemap gaps, AI crawler blocks, and schema issues across your Vue.js site.

Run Free Audit

No credit card required · Results in under 2 minutes

Nuxt's server-side rendering, auto-imports, and module ecosystem make it one of the most capable Vue.js frameworks for building SEO-friendly web applications. But "capable" is not the same as "configured." The SEO module, sitemap module, OG image generation, and robots configuration are all opt-in. A freshly scaffolded Nuxt 3 project has none of them. Add Nuxt's hybrid rendering modes — where some routes are SSR, others SSG, and others client-side — and you have a configuration surface large enough that critical SEO signals can fall through the cracks between rendering modes.

seo.yatna.ai crawls your Nuxt site the way Google and AI assistants do — fetching server-rendered HTML, parsing JSON-LD, checking meta tag consistency across routes, and scoring across 7 weighted categories. The result is a complete picture of where your Nuxt configuration is helping or hurting your organic visibility.

10 Most Common Nuxt SEO Issues Found in Audits

  1. Nuxt SEO module not installed — Packages like nuxt-seo-kit or @nuxtjs/seo bundle the canonical, meta, and structured data configuration that Nuxt doesn't provide natively. Without them, developers must manage SEO head configuration manually across every page component — and inevitably miss pages. The audit checks for module presence and flags pages where SEO head data is missing or inconsistent.

  2. robots.txt module not configured for AI crawlers — The @nuxtjs/robots module generates your robots.txt from a config object in nuxt.config.ts. Even when installed, teams typically configure only Googlebot and * rules, leaving GPTBot, ClaudeBot, PerplexityBot, and Amazonbot without explicit directives. As AI-generated search results become a larger source of traffic, being absent from AI training data is a growing disadvantage.

  3. SSR/SSG hybrid rendering causing inconsistent meta tag rendering — Nuxt's routeRules allows you to set different rendering modes per route. A common pattern: marketing pages as SSG, application pages as SSR, admin routes as client-side only. The risk: meta tags configured in useHead() may not appear in server-rendered HTML on CSR routes — meaning those pages have no title or description visible to crawlers.

  4. Sitemap module not generating dynamic route entries@nuxtjs/sitemap generates sitemaps from your Nuxt routes, but dynamic routes (e.g., /blog/[slug]) require explicit data sources to enumerate all possible values. Without configuring sources or urls in the sitemap module config, dynamic content pages are excluded from the sitemap even if they're accessible via inbound links.

  5. OG image generation requires separate @nuxtjs/og-image module — Nuxt has no built-in OG image generation. Without the @nuxtjs/og-image module or a custom API endpoint, every page either shares a static OG image or has none at all. Social shares and AI snippet previews default to a blank or generic image — undermining click-through from social and AI-generated content cards.

  6. Canonical tags missing on locale-specific routes — Nuxt sites using @nuxtjs/i18n generate locale-prefixed URLs (e.g., /en/about, /fr/about). Without explicit canonical configuration, these routes may lack canonical tags entirely, or the canonical may point to the wrong locale variant — causing duplicate content issues across your international URL structure.

  7. Vue component hydration causing LCP delays — On SSR routes, Nuxt serves pre-rendered HTML that hydrates on the client. If above-fold content is inside a heavy Vue component that takes time to hydrate, the browser may repaint it during hydration — contributing to CLS and delaying the LCP event beyond Google's scoring threshold.

  8. JSON-LD schema not added to individual page componentsuseHead() in Nuxt supports inline JSON-LD via the script property, but it requires explicit addition to each page or layout component. Most Nuxt sites in production have no JSON-LD schema at all, or have it only on the homepage via a global layout — missing Article, Product, FAQ, and BreadcrumbList opportunities on inner pages.

  9. No llms.txtllms.txt is an emerging standard that tells AI assistants how to represent your site accurately. Nuxt has no native mechanism to serve this file. Without a custom server route or static file in /public/llms.txt, AI assistants have no structured signal for how to describe your application — and may describe it based on incomplete crawled content.

  10. <NuxtImg> requires explicit width/height — Nuxt's image optimization component <NuxtImg> from @nuxt/image requires explicit width and height props to generate the correct srcset and avoid layout shift. Projects that migrate from plain <img> tags to <NuxtImg> without adding these attributes introduce new LCP and CLS regressions in the process.

What Our Audit Checks

seo.yatna.ai scores your Nuxt site across 7 weighted categories:

  • AI Readiness (20%)robots.txt for GPTBot/ClaudeBot, llms.txt presence, schema structured for AI citation
  • E-E-A-T (20%) — Author schema, About page depth, named contributors, expertise signals in content
  • Technical SEO (20%) — Crawlability, canonical tags, sitemap health, redirect chains, HTTP headers
  • On-Page SEO (15%) — Title tags, meta descriptions, heading hierarchy, keyword presence
  • Schema Markup (15%) — JSON-LD validity, required fields, rich result eligibility
  • Performance (5%) — Core Web Vitals (LCP, CLS, INP), TTFB, render-blocking resources
  • Images (5%) — Alt text, explicit dimensions, format (WebP/AVIF), LCP image loading

Sample Audit Findings

A typical Nuxt 3 site audited on seo.yatna.ai returns results like this:

Category Score Key Finding
E-E-A-T 50/100 No author schema on blog post pages
Technical SEO 64/100 Dynamic routes missing from sitemap
On-Page SEO 68/100 CSR routes missing meta description
Schema 30/100 JSON-LD only in root layout, not pages
Performance 70/100 NuxtImg missing width/height on 8 images
AI Readiness 18/100 No AI crawler directives; no llms.txt
Images 62/100 8 images missing explicit dimensions
Overall 55/100 20 actionable issues found

Each finding links to the specific URL where the issue was detected, with configuration-level fixes referencing the correct Nuxt module and nuxt.config.ts options.

FAQ

Does this audit work with Nuxt 2 as well as Nuxt 3? Yes. seo.yatna.ai crawls rendered HTML output, not your source code. It evaluates what Google and AI crawlers actually receive — which applies equally to Nuxt 2 and Nuxt 3 deployments.

How do I fix the SSR/CSR rendering inconsistency for meta tags? The safest approach is to use useServerSeoMeta() for any routes that must expose meta tags to crawlers. This ensures the meta tags appear in server-rendered HTML regardless of the route's rendering mode. Our audit flags which specific routes have this problem.

My Nuxt site uses @nuxtjs/i18n. Will the audit check all locale routes? The audit crawls all URLs it discovers from your sitemap and internal links. If your @nuxtjs/sitemap is configured to include locale variants, they'll be audited. If not, the audit will flag the missing sitemap entries as a finding.

Is AI readiness important for a Nuxt application? Yes, especially if your Nuxt site is a marketing or content site rather than a pure web app. AI assistants are increasingly used to find software tools, services, and resources. If GPTBot and ClaudeBot can't crawl your site, you're invisible in AI-generated recommendations.

Run a Free Nuxt SEO Audit — No Credit Card Required

Nuxt's rendering capabilities give you all the tools to build a highly SEO-optimized site. The audit shows you exactly which modules to install and which configuration to add to close the gap between capability and reality.

Audit My Nuxt Site — Free →


Related reading:

Ready to audit your site?

7 AI agents. 7 audit categories. One score. Free for your first audit.

Run Free Audit