Skip to content

Upgrade to CMS 13

⏱ 30 minutes to read, hours to days to execute advanced
📜Corecms

CMS 13 is not a minor version bump — it aligns the PaaS platform with CMS SaaS capabilities while preserving the full-control development model that PaaS customers value. Key reasons to upgrade:

  • Visual Builder — The drag-and-drop page composition experience, previously SaaS-only, is now available on PaaS
  • Graph as primary delivery — Content delivery through GraphQL with a schema aligned to SaaS, enabling headless and multichannel architectures
  • Modern frontend support — Updated JS SDK supporting React, Next.js, and other frameworks alongside traditional MVC/Razor
  • Opal AI integration — AI content generation and optimization available in the PaaS editor
  • Unified API surface — Management and REST APIs are now consistent between SaaS and CMS 13

Your upgrade effort depends on what you use today:

Current dependencyImpactAction required
Search and Navigation🔴 BreakingMust migrate to Graph — Search and Navigation is not supported in CMS 13
Graph (CMS 12 version)🟡 Schema changeSchema changed significantly — plan for Graph migration
Commerce 14🔴 Not compatibleMust upgrade to Commerce 15 for CMS 13 compatibility
Custom Dojo widgets🟡 DeprecatedDojo is no longer required — modern alternatives available
MVC controllers🟢 SupportedMVC remains fully supported with rendering helpers
Razor Pages🟢 SupportedRazor Pages work in CMS 13
Razor Components🟡 PartialNot yet fully supported — check release notes
Visitor Groups🟡 ChangedStill available for MVC rendering, but not indexed in Graph
Scheduled Jobs🟢 UnchangedAPI unchanged, async support planned for future
Custom property types🟢 SupportedContinue working as before

These changes will break existing implementations if not addressed:

1. Search and Navigation → Graph migration (mandatory)

Search and Navigation is completely removed in CMS 13. Every search feature — site search, content filtering, type-ahead — must be rebuilt using Optimizely Graph.

If you are currently on CMS 12 and considering implementing Graph: wait for CMS 13. The Graph schema changed significantly between versions, and implementing on CMS 12 means migrating the schema again for CMS 13.

2. Graph schema changes

The CMS 13 Graph schema aligns with CMS SaaS. If you implemented Graph on CMS 12, your queries, schema extensions, and frontend integrations will need updates. The schema cannot be manually modified — CMS generates it automatically, with some extension points available.

3. Commerce compatibility

CMS 13 is not compatible with Commerce 14. You must upgrade to Commerce 15 at the same time or after the CMS upgrade.

Update to the latest CMS 13 packages from the Optimizely NuGet feed:

Update packages
bash
# Update all Optimizely packages to CMS 13
dotnet add package Optimizely.CMS.Core --version 13.*
dotnet add package Optimizely.CMS.UI --version 13.*

# If using Commerce, update to 15
dotnet add package Optimizely.Commerce --version 15.*

# Restore and build
dotnet restore
dotnet build

Step 2: Remove Search and Navigation dependencies

Section titled “Step 2: Remove Search and Navigation dependencies”

If your project references EPiServer.Find or EPiServer.Search, remove them and replace with Graph:

Remove Search and Navigation
bash
# Remove old search packages
dotnet remove package EPiServer.Find
dotnet remove package EPiServer.Search

# Add Graph packages
dotnet add package Optimizely.ContentGraph.Client

Step 3: Migrate search functionality to Graph

Section titled “Step 3: Migrate search functionality to Graph”

Replace Find queries with Graph GraphQL queries. See the Graph Query Language Reference for the full API.

If you have custom Dojo widgets for editor UI, plan to migrate them. Dojo is no longer required — modern approaches are documented in the Custom Editors guide.

Section titled “Step 5: Configure Opti ID (optional but recommended)”

Opti ID is required for DAM, OCP, and Opal features. It applies only to editor and business users — custom site authentication for your visitors is unaffected.

DAM is cloud-based and requires Opti ID. It can coexist with your existing media library — there is no automatic migration, and the old media library cannot be disabled yet.

Visual Builder is now available on PaaS with the same content modeling rules as SaaS. Pages and Visual Builder experiences can coexist — you can adopt Visual Builder gradually without rewriting existing page types.

Visitor Groups still work for MVC-rendered content, but they are not indexed in Graph. If you deliver personalized content through Graph to headless frontends, you will need alternative personalization approaches.

Use the Deploy CMS PaaS guide for deployment steps. The Stride starter template (replacing Alloy) will be available at GA for reference implementations.

Not everything changes. These areas work identically in CMS 13:

  • Content types and properties — Same definition patterns, same attributes
  • Initialization modules — Same API
  • Content events — Same IContentEvents interface
  • Scheduled jobs — Same API (async support planned for future)
  • MVC controllers — Fully supported with rendering helpers
  • Custom property types — Continue working
  • REST APIs — Consistent format and payload between SaaS and CMS 13
FactorCMS 13 (PaaS)CMS SaaS
Custom code in process✅ Yes — full control❌ No custom code in process
Infrastructure managementYou manageOptimizely manages
Automatic updatesManual upgradesAutomatic
On-premises hosting✅ Supported❌ Cloud only
Opal AI✅ Via Opti ID✅ Built-in
Visual Builder✅ Available✅ Available
Graph delivery✅ Primary API✅ Built-in

Choose CMS 13 PaaS if you need deep customization, on-premises hosting, or full control over the runtime. Choose SaaS if you prefer automatic updates and less infrastructure responsibility.

  • CMS 12 continues to receive security updates
  • CMS 13 GA includes Stride starter template
  • CMS 14 has no confirmed timeline
  • CMS 12 certification remains relevant — CMS 13 is evolutionary