SEO Engineering

The Nuxt 4 SEO Checklist for 2026: Ship Pages Google Actually Ranks

Nuxt gives you a massive SEO head start — server-side rendering by default, automatic code splitting, and a clean head management API. But "SEO-friendly framework" and "SEO-optimized site" are two very different things.

This is the checklist I run on every Nuxt project before launch. It is ordered by impact.

1. Server-side rendering — confirm it is on

Nuxt 4 defaults to SSR, but it is easy to accidentally disable it per-route with ssr: false in definePageMeta. Any route Google needs to index must render on the server.

Check it with a simple curl: curl -s https://yoursite.com/page | grep '<h1'. You should see real content, not an empty <div id="__nuxt">.

2. Per-page meta with useSeoMeta

Do not rely on a global title template alone. Every page should declare its own title, description, and OG tags:

useSeoMeta({
  title: 'The Nuxt 4 SEO Checklist for 2026',
  description: 'A practical, code-level SEO checklist for Nuxt 4 in 2026.',
  ogTitle: 'The Nuxt 4 SEO Checklist for 2026',
  ogDescription: 'A practical, code-level SEO checklist for Nuxt 4 in 2026.',
  ogImage: 'https://yoursite.com/og/checklist.png',
  twitterCard: 'summary_large_image',
})

3. Structured data

Search engines reward pages that declare what they are. For a blog post, that is Article. For a product, Product with offers. Nuxt's useHead makes this trivial:

useHead({
  script: [{
    type: 'application/ld+json',
    innerHTML: JSON.stringify({
      '@context': 'https://schema.org',
      '@type': 'Article',
      headline: 'The Nuxt 4 SEO Checklist for 2026',
      author: { '@type': 'Person', name: 'Creativitas' },
      datePublished: '2026-10-18',
    }),
  }],
})

4. Sitemap and robots

The @nuxtjs/seo module generates both automatically. Confirm /sitemap.xml includes every indexable route, and /robots.txt does not block crawlers. This takes five minutes and is forgotten on half the Nuxt sites I audit.

5. Core Web Vitals

Google's ranking signal is dominated by three numbers: LCP, CLS, and INP. Nuxt helps, but it does not save you from:

  • Unoptimized images — use <NuxtImg> with explicit width and height to prevent CLS.
  • Render-blocking fonts — preload or use font-display: swap.
  • Heavy client hydration — keep client-only components minimal and SSR the important ones.

Run PageSpeed Insights on a production URL, not localhost. A 99 on localhost means nothing.

6. Canonical URLs

Duplicate content is the silent SEO tax. Set a canonical on every page:

useHead({
  link: [{ rel: 'canonical', href: `https://yoursite.com${route.path}` }],
})

7. Internal linking

Search engines follow links, not sitemaps. Every blog post should link to at least one product page and one related article. This is also the highest-leverage conversion tactic you have — an article that links to a product converts 3 to 5 times better than one that does not.

The mistakes that quietly kill rankings

  • Client-only rendered content — Google may or may not index it. Do not gamble.
  • Missing meta descriptions — Google will pull random text from your page. Ugly in SERPs.
  • No OG image — social shares look broken. Kills click-through from Twitter and LinkedIn.
  • Slow TTFB — edge deployment is not optional anymore.

Where Nuxas fits

Nuxas ships with this entire checklist pre-configured: @nuxtjs/seo, per-page useSeoMeta, structured data helpers, sitemap generation, and OG image pipelines. You do not rebuild SEO from scratch — you inherit a working baseline and customize from there.

Get Nuxas Code Only → · Get Nuxas + Decap CMS →

Nuxas — Nuxt 4 SaaS Starter (Code Only)