Per Nergård (MVP)
Mar 10, 2026
  356
(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

Please login to comment.
Latest blogs
From Prompting to Production: Optimizely Opal University Cohort and the Future of Agentic MarTech

Most organizations today are still playing with AI. They experiment with prompts, test ideas in isolated chats, and occasionally automate a task or...

Augusto Davalos | Apr 28, 2026

Six Compelling Reasons for Upgrading to CMS 13

Most software updates ask you to keep up. Optimizely CMS 13 asks something different — it asks whether your digital strategy is built for a world...

Muhammad Talha | Apr 28, 2026

Optimizely CMS 13 breaking changes: GetContentTypePropertyDisplayName

When upgrading from CMS 12 to 13, resolving property display names may not work as before. Here’s what changed.

Tomas Hensrud Gulla | Apr 27, 2026 |

Accelerate Optimizely DAM Adoption: Unlocking Business Value with Metadata Bulk Import

Accelerating Optimizely DAM Adoption How a Metadata-Driven Bulk Import Utility Unlocks Real Business Value Executive Summary For enterprises runnin...

Vaibhav | Apr 27, 2026