Case Study

SEO-Led Platform Migration

Migrated a Vue SPA to Nuxt 3 with full SSR — fixing indexability, cutting LCP from 4.2s to 1.4s, and recovering organic search traffic.

Result+64% organic search traffic in 90 days

The platform was a client-rendered Vue SPA. Google could not reliably index the content, resulting in near-zero organic traffic despite strong content quality. LCP exceeded 4s on mobile due to large JS bundles blocking first render. The SEO issue was entirely architectural — no amount of content work would fix it without changing how the page rendered.

Evaluated SSR, SSG, and ISR for each page type before choosing. Selected full SSR for dynamic product pages and static generation for marketing content. Migrated incrementally — routing and layouts first, then page by page — to ship early and catch integration issues before they compounded.

  • Framework: Nuxt 3 replacing a raw Vue CLI app
  • Rendering: SSR for dynamic pages, SSG for static marketing content
  • Meta: useHead and useSeoMeta composables per page
  • Sitemap: Auto-generated via nuxt-simple-sitemap
  • Images: Optimised with @nuxt/image

SSR over pre-rendering

Content was user-specific and updated frequently. Pre-rendering would have required cache invalidation logic that added complexity and risk. SSR served fresh content on every request with acceptable TTFB at this scale.

Incremental migration

Rewriting the entire app in a single sprint introduced too much risk. Migrating route by route allowed early shipment and isolated integration issues before they compounded into a larger problem.

Structured data on every key page

Added JSON-LD schema markup for product, article, and breadcrumb types. This directly improved rich snippet eligibility and click-through rates in search results.

Organic traffic increased 64% in 90 days post-launch. LCP dropped from 4.2s to 1.4s on mobile. The site achieved 91+ Lighthouse scores across all four categories. First page rankings appeared within 6 weeks.

Nuxt 3Vue 3TypeScript@nuxt/imagenuxt-simple-sitemap
  • Implement partial hydration for marketing pages to reduce JS payload further
  • Add server-side A/B testing at the edge layer

Like what you see?

Let's build something together.

Get in touch