Umbraco 8 to 13 Migration: Modernizing an Existing Digital Experience
Overview
As an experienced Umbraco Migration Company, Techxot migrated to an established Umbraco 8 website to Umbraco 13 LTS and Umbraco Cloud, preserving its content, functionality, structure, and SEO investment.
This Umbraco 8 to 13 Migration provided a modern .NET 8 foundation while addressing the challenges of Umbraco 8 End of Life and legacy dependencies.
The Challenge
- Umbraco 8 had reached end of life and was built on the legacy .NET Framework.
- Several third-party packages and property editors were no longer suitable for the target platform.
- The existing site contained established content, media, templates, forms, and custom functionality.
- The migration needed to minimize business disruption and protect URLs, SEO, and content integrity.
- The target needed to align with Umbraco Cloud and modern .NET deployment practices.
Why We Chose Re-platforming
The architectural change from .NET Framework to modern .NET made a traditional incremental upgrade unsuitable for this project. A fresh Umbraco 13 LTS foundation allowed the team to remove unsupported dependencies, modernize the codebase, and migrate only what was still valuable.
The Approach
1. Assess the Existing Umbraco 8 Solution
We cloned the existing repository and assessed document types, data types, templates, media, custom controllers and services, packages, integrations, and legacy components. Dependencies were classified as migrate, update, replace, rewrite, or remove.
2. Establish the Umbraco 13 + Cloud Foundation
A fresh Umbraco 13 LTS instance was established on .NET 8, with Umbraco Cloud, Git-based version control, and required extensions such as uSync and Deploy.
3. Use uSync as the Migration Backbone
uSync Migration Packer was installed in the v8 project. Document types, data types, templates, and content were exported and imported into v13, giving the new platform its existing content architecture without manually recreating everything.
4. Transform Legacy Content Structures
The migration exposed important differences between v8 and v13. Nested Content was converted to Block List using uSync Migrator, but property-level JSON and linked-content references required additional transformation.
5. Resolve JSON and Reference Mismatches
Custom migration logic was used to read legacy JSON, transform it to the target Block List structure, and validate the resulting content. NodeID/GUID relationships were checked to avoid orphaned content and broken references Read more
- Art
- Causes
- Crafts
- Dance
- Drinks
- Film
- Fitness
- Food
- Jogos
- Gardening
- Health
- Início
- Literature
- Music
- Networking
- Outro
- Party
- Religion
- Shopping
- Sports
- Theater
- Wellness