Per Nergård (MVP)
+1
Mar 10, 2026
visibility 643
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
The Silent Success: When Your Optimizely SaaS CMS Config Push Succeeds with "0" Changes

  Picture this frustratingly common scenario in headless, code-first development with Optimizely SaaS CMS: You’ve defined a brilliant new element,...

Vipin Banka | Jul 13, 2026

Architecting an Enterprise-Grade Development Pipeline in Optimizely SaaS CMS

Most enterprise teams show up to Optimizely SaaS CMS with a clear roadmap for their release pipeline: DEV → QA → Stage → Prod. Four logical...

Vipin Banka | Jul 12, 2026

Bynder DAM Connector for Optimizely SaaS CMS: Improved Metadata Property Synchronization

While working with the Bynder DAM Connector for Optimizely SaaS CMS , one of the key areas I explored was how Bynder asset metadata is synchronized...

Vipin Banka | Jul 11, 2026

Optimizely DXP: Every Supported Culture, One Searchable Page

Quick one for anyone building multi-language sites on Optimizely DXP. I put together a reference tool listing all 806 supported cultures. More...

Adnan Zameer | Jul 10, 2026 |