Per Nergård (MVP)
+1
Mar 10, 2026
visibility 735
star star star star star
(2 votes)

Missing Properties tool for Optimizely CMS

If you have been working with Optimizely CMS for a while you have probably accumulated some technical debt in your property definitions. When you refactor your models removing properties, renaming content types, or cleaning up after a migration the old property definitions often stick around in the database. They are harmless for the most part, but they add noise and can be confusing when inspecting content types.

  I actually built a tool for this like 10 years ago and I recently had a need to revisit it during a large migration project where we ended up with quite a few orphaned properties that   
  needed cleaning up.

  What it does

  The tool scans all your code-defined content types (PageTypes and BlockTypes) and looks for property definitions in the database that no longer have a corresponding attribute in code. Manually created content types are intentionally skipped it  only checks types backed by a C# model.

  The results are grouped by content type so you can see exactly what is affected. From there you have a few options:

  - Select individual properties and delete them
  - Select all properties for a specific content type
  - Delete everything at once

  Both deletion paths require a confirmation dialog because this operation is permanent and cannot be undone.

  There is also a Rescan button if you want to re-check after deploying model changes.

  Installation

  Configure blazor and decide on how you want to render the component. I just created a content type specific for the tool. Example layout included on github.

  Add the tool to your project and register it in Startup.cs:

  services.AddMissingProperties();

 

  The source code is on https://github.com/pernergard/NergardToolsAndUtilities

 

Mar 10, 2026

Comments

error Please login to comment.
Latest blogs
Copies vs. Connections: Modeling Content Areas for Multilingual Success

Starting With the Simple Question Most multilingual content modeling conversations start with a deceptively simple question from a client: "If we s...

Vipin Banka | Aug 23, 2026

Content Transfer coming to Optimizely SaaS CMS

Back in June I released Content Transfer on the Optimizely nuget feed – today I’m releasing version 1.0 , because we’ve had it running out in the...

Matt Pallatt | Aug 23, 2026

Improving Optimizely Product Information in LLM Tools

Tools like Claude Code can be great for working with Optimizely CMS, but when they index outdated or incomplete information about developing a...

Nicholas Sideras | Aug 21, 2026 |

How to Get a Bacpac Out of DXP (And Never Do It By Hand Again)

Every Optimizely DXP project eventually runs into the same task: getting production data onto a local machine so you can actually troubleshoot...

KennyG | Aug 20, 2026