Your Umbraco Site Costs £18K/Year to Host What Vercel Runs for £240
Why leave Umbraco?
- Ship every page in 800ms–2.5s because Razor renders server-side and waits on SQL queries before responding
- Score 45–65 on mobile Lighthouse while your buyers judge your site in the first 2 seconds and bounce
- Pay Azure App Service + SQL Server hosting that costs 3–5× what edge-deployed Next.js costs on Vercel
- Hunt for .NET developers in a shrinking talent pool while React/TypeScript developers flood the market
- Scale horizontally with distributed cache hell and database replication your team doesn't want to manage
- Build frontend features without component libraries, hot reload, or any modern design system tooling
What you gain
- Hit 95–100 mobile Lighthouse scores with static generation and edge rendering that ships pages in 80ms
- Drop TTFB from 2+ seconds to sub-100ms with ISR and CDN-first delivery on Vercel or Cloudflare Pages
- Cut hosting spend 60–80% by replacing Azure tiers with edge functions billed per invocation, not uptime
- Hire from the React/TypeScript talent pool -- 10× larger and more affordable than .NET CMS specialists
- Deliver your content to mobile apps, kiosks, and third-party platforms via your existing Umbraco API
- Build with component-driven architecture, Storybook, Tailwind, and every modern frontend tool your team wants
Why Umbraco Teams Are Moving to Next.js
Umbraco has earned its reputation. It's open-source, flexible, and deeply embedded in the .NET ecosystem. Over 16,900 companies run on it, with the UK accounting for roughly 31% of that install base. The recent v17 LTS release proves the project is alive and well.
But here's the uncomfortable part: most Umbraco sites are still server-rendered Razor views sitting behind IIS or Azure App Service. The frontend's tightly coupled to the .NET backend. Page speed suffers. Hiring gets harder every year as the talent pool shifts toward React and TypeScript. And your editorial team is stuck with a publishing workflow that was designed for a monolithic architecture -- because it is one.
Next.js solves these problems without making you throw away everything you've built. Since v12, Umbraco's Content Delivery API has enabled genuine headless mode. You can keep the Umbraco backend and bolt a Next.js frontend onto it. Or make a clean break and migrate content to a purpose-built headless CMS like Sanity or Payload.
We're a UK-based agency. We know the Umbraco ecosystem intimately because it's everywhere here. We also know when it's time to move on.
The Real Pain Points With Umbraco
Performance Bottlenecks
Umbraco's default rendering pipeline produces server-rendered HTML on every request unless you layer aggressive caching on top. Even with output caching, TTFB on Azure App Service typically lands between 800ms and 2.5 seconds depending on hosting tier and database performance. Mobile Lighthouse scores for typical Umbraco sites sit between 45 and 65 -- well below Google's Core Web Vitals thresholds.
Frontend Developer Experience
Razor views work, but they're limiting. No component-based architecture. No hot module replacement. No design system tooling like Storybook. Junior and mid-level developers increasingly come from React backgrounds and find the Razor/C# templating layer genuinely frustrating. Recruitment becomes the bottleneck.
Hosting Costs and Complexity
Running Umbraco properly means managing Windows servers, SQL Server databases, and often Azure Blob Storage for media. Monthly hosting costs for a production-grade setup typically run £150 to £500+ depending on traffic. Compare that to a static or ISR-based Next.js site deployed to Vercel or Cloudflare Pages -- it's not close.
Scaling Limitations
Umbraco doesn't scale horizontally without significant effort. Load balancing requires careful configuration of distributed cache and database synchronisation. A CDN-first approach with Next.js eliminates most of that complexity entirely.
Content Modelling Rigidity
Umbraco's Document Types are powerful, but they're tightly coupled to the rendering layer. Reusing content across channels -- mobile apps, kiosks, third-party platforms -- requires custom API work that the Content Delivery API only partially addresses.
Two Migration Paths: Choose What Fits
Option A: Umbraco Backend + Next.js Frontend
This is the low-risk path. Your content team keeps using Umbraco's familiar backoffice. Document Types, content nodes, media library -- all of it stays exactly where it is. We build a Next.js frontend that consumes the Content Delivery API introduced in v12+.
This approach works well when:
- Your editorial team is deeply invested in Umbraco's workflow
- You have complex Document Types with nested content and block editors
- You want to de-risk the migration by changing one layer at a time
- Your .NET team can continue maintaining the backend
We map each Document Type to a corresponding React component. Razor views become typed Next.js page templates. Grid layouts and Block List editors get converted to composable React components with TypeScript interfaces generated from your Umbraco schema.
Option B: Full Migration to Sanity or Payload CMS
This is the clean-break path. We extract all content from Umbraco, transform it, and load it into a modern headless CMS. Sanity gives you real-time collaborative editing and a flexible schema system. Payload CMS is open-source, self-hosted, and built on Node.js -- a natural companion to Next.js.
This approach makes sense when:
- Your Umbraco instance is outdated (pre-v10) and upgrading is expensive
- You want to eliminate .NET hosting entirely
- You need structured content that serves multiple channels
- Your team wants a unified JavaScript/TypeScript stack
We write custom migration scripts that map Document Types to CMS content models, preserve relationships between content nodes, and handle media asset migration with proper URL redirection.
Our Migration Process
1. Discovery and Audit (Week 1-2)
We audit your Umbraco instance: version, Document Types, templates, custom controllers, media volume, third-party integrations, existing URL structure. We benchmark current performance and flag SEO-critical pages.
2. Architecture Decision (Week 2)
Based on the audit, we recommend Option A or Option B with a detailed rationale. We define the tech stack, hosting strategy, and content model mapping.
3. Content Model Mapping (Week 2-3)
Every Document Type gets mapped to either a React component (Option A) or a CMS content model (Option B). We document this in a shared schema reference that both developers and content editors can review.
4. Frontend Build (Week 3-6)
Razor views become React components. We build the design system in a component library, create page templates, and wire up data fetching via either the Umbraco Content Delivery API or your new headless CMS.
5. Content Migration (Week 5-7, Option B only)
Custom ETL scripts extract content from Umbraco's database, transform it to match the new schema, and load it into the target CMS. We validate every content node, relationship, and media asset.
6. SEO Preservation and Launch (Week 7-8)
This is where migrations succeed or fail. We implement a complete redirect map covering every URL. XML sitemaps are regenerated. Structured data is ported. We verify canonical tags, meta descriptions, and Open Graph data page by page. Screaming Frog crawls run pre- and post-launch to catch any gaps.
For a deeper comparison of Umbraco and Next.js approaches, we've published a detailed technical breakdown.
SEO Preservation Strategy
SEO is a first-class concern throughout the migration -- not something we bolt on at the end:
- Full 301 redirect mapping from every Umbraco URL to its Next.js equivalent
- Preservation of internal link structure -- no orphaned pages
- Metadata migration -- page titles, descriptions, OG images carried over programmatically
- Structured data ported and validated against Google's Rich Results Test
- Performance gains that directly improve Core Web Vitals rankings
- Post-launch monitoring with Search Console and Ahrefs for 90 days
Timeline and Investment
A typical Umbraco to Next.js migration for a mid-sized site (50-200 pages) takes 6-10 weeks depending on complexity and which migration path you take.
- Option A (Headless Umbraco + Next.js): £15,000 – £35,000
- Option B (Full migration to Sanity/Payload): £20,000 – £50,000
Larger sites -- complex integrations, multi-language setups, e-commerce -- will land at the higher end. We scope every project with a fixed-price proposal after the discovery phase. No surprises mid-project.
Why Work With Social Animal
We're UK-based, so we understand the Umbraco market better than most. We've worked directly with .NET teams, migrated Razor codebases, and dealt with the specific quirks of Umbraco's content architecture first-hand. We also build production Next.js applications every day -- it's our core capability.
Your Umbraco site served you well. Let's make sure the next platform serves you better.
The migration process
Discovery & Audit
We map every page, post, media file, redirect, and plugin. Nothing gets missed.
Architecture Plan
New stack designed for your content structure, SEO requirements, and performance targets.
Staged Migration
Content migrated in batches. Each batch verified before the next begins.
SEO Preservation
301 redirects, canonical tags, sitemap, robots.txt — every ranking signal carried over.
Launch & Monitor
DNS cutover with zero downtime. 30-day monitoring period included.
Umbraco vs Next.js
| Metric | Umbraco | Next.js |
|---|---|---|
| Lighthouse Mobile | 45-65 | 95-100 |
| TTFB | 0.8-2.5s | <0.1s |
| Build Deploys | 5-15 min (Azure) | 30-90s (Vercel) |
| Hosting Cost | £150-500/mo | £0-30/mo |
| Developer Experience | Razor/C# templates | React/TypeScript components |
| API/Headless | v12+ only (partial) | Full headless-native |
Common questions
Can I keep using Umbraco's backoffice with a Next.js frontend?
Yes. Umbraco v12+ includes a Content Delivery API that exposes your content as JSON endpoints. We build the Next.js frontend to consume this API directly. Your editorial team keeps working in Umbraco's backoffice exactly as before — they won't notice any difference in their publishing workflow.
How long does an Umbraco to Next.js migration take?
A typical migration for a site with 50-200 pages takes 6 to 10 weeks. That covers discovery, content model mapping, frontend development, content migration if needed, SEO validation, and launch. Sites with complex integrations, multiple languages, or e-commerce can run 12-16 weeks.
Will my Google rankings drop during the migration?
Not if the migration's handled properly. We implement 301 redirect maps, preserve all metadata and structured data, and monitor Search Console for 90 days post-launch. The performance improvements from Next.js tend to produce ranking gains within weeks as Core Web Vitals scores climb significantly.
Should I choose Sanity or Payload CMS as a replacement for Umbraco?
Sanity's the better fit if you want real-time collaboration, a hosted content lake, and powerful querying with GROQ. Payload makes more sense if you need full self-hosting control, an open-source codebase, and tight integration with the Node.js ecosystem. We make that call based on your team's specific needs during the discovery phase.
What happens to my Umbraco media library during migration?
All media assets are migrated programmatically. We extract files from Umbraco's media storage, optimise images using the Next.js Image component or a dedicated CDN, and set up redirects from old media URLs to new locations. No broken images, no missing files, no manual re-uploading.
Is my Umbraco version too old to migrate to Next.js?
No version is too old to migrate from — the approach just differs. Umbraco v12+ supports the Content Delivery API, so a headless setup (Option A) is straightforward. Older versions like v7 or v8 typically need a full migration to a new CMS (Option B) since the headless API isn't available. We handle both.
How much does an Umbraco to Next.js migration cost?
For a mid-sized site, Option A (headless Umbraco + Next.js frontend) typically runs £15,000-£35,000. Option B (full migration to Sanity or Payload) ranges from £20,000-£50,000. After the discovery audit, we put together a fixed-price proposal — no unexpected costs halfway through the project.
Ready to migrate?
Free assessment. We'll audit your current site and give you a clear migration plan — no commitment.
Let's build
something together.
Whether it's a migration, a new build, or an SEO challenge — the Social Animal team would love to hear from you.