Optimizely CMS
Optimizely CMS 13 and PageReference is obsolete
Learn what to to with the warning: 'PageReference' is obsolete: 'Use ContentReference instead.'
Optimizely CMS 13 and the Alloy demo site
The Alloy demo site now runs on Optimizely CMS 13. Here’s a quick guide to getting it up and running locally.
Optimizely CMS 13 and the first bug fixes
The first bug fixes for Optimizely CMS 13 is here!
Optimizely CMS 13 and errors when creating pages after upgrade
After upgrading to Optimizely CMS 13, I ran into issues creating pages and deleting media. The fix was easy!
Optimizely CMS 13 and the new login/admin/edit URL
What happened to /episerver/cms after upgrading to Optimizely CMS 13?
How to Disable automatic indexing in Optimizely Search & Navigation
Learn how automatic event-based indexing works in Optimizely Search & Navigation and how you can temporarily disable it.
Disabling the scheduler also stops event-based indexing in Optimizely CMS
If you disable the scheduler in Optimizely CMS, should event-based indexing for Search & Navigation stop working too? It does!
Running Optimizely CMS 12 on .NET 10 in Azure
Upgrade your Optimizely CMS website to .NET 10!
Optimizely CMS Roadmap – AI, automation and the future of digital experiences
A summary of the roadmap for Optimizely CMS from the Opticon conference on September 30, 2025.
Get last edited content from Optimizely CMS
Learn how to query the last updated blocks and pages from Optimizely CMS
Get last run of a scheduled job in Optimizely CMS
Learn how to get the last execution time of a scheduled job in Optimizely CMS.
Optimizely CMS and HTML validation message: Trailing slash on void elements has no effect and interacts badly with unquoted attribute values.
When using the W3C Markup Validation Service, some annoying information messages pop up because Optimizely CMS adds the trailing slash to self-closing tags. Let's fix that!
SQL addon for Optimizely CMS 12 updated with new features
First released in 2021, the SQL Studio addon for Optimizely CMS lets you query your database directly from the edit UI. The latest update adds support for GPT-5, a new UI for managing saved queries.
The remote server returned an error: (400) Bad Request – when configuring Azure Storage for an older Optimizely CMS site
How to fix a strange issue that occurred when I moved editor-uploaded files for some old Optimizely CMS 11 solutions to Azure Storage.
Enable Opal AI for your Optimizely products
Learn how to enable Opal AI, and meet your infinite workforce.
Exporting Optimizely databases causing errors
Solutions to a couple of recurring issues when migrating databases to the cloud.
Managed Identity for Connecting your Optimizely site to a Database in Azure
Are you using a connection string with username and password to connect to your Azure database? Use managed identity instead!
COGNITIVE_SERVICE_TRANSLATE_ERROR
COGNITIVE_SERVICE_TRANSLATE_ERROR
Unable to view Optimizely Forms submissions when some values are too long
I discovered a form where the form submissions could not be viewed in the Optimizely UI, only downloaded. Learn how to fix the issue.
The missing globe can finally be installed as a nuget package!
Do you feel like you're dying a little bit every time you need to click "Options" and then "View on Website"? Do you also miss the old "Globe" in Optimizely CMS? Your prayers have been heard: a NuGet package is available, and the Globe is back!
Increase timeout for long running SQL queries using SQL addon
Learn how to increase the timeout for long running SQL queries using the SQL addon.
Overriding the help text for the Name property in Optimizely CMS
I recently received a question about how to override the Help text for the built-in Name property in Optimizely CMS, so I decided to document my process for figuring it out...
Custom form element view in Optimizely CMS 12
Do you want full control over the form element markup? Create your own views!
Set Default Culture in Optimizely CMS 12
Take control over culture-specific operations like date and time formatting.
I'm running Optimizely CMS on .NET 9!
It works 🎉
XSS Vulnerabilities Patched with TinyMCE 6.8.4
Two different XSS vulnerabilities were fixed in the latest update of the NuGet package EPiServer.CMS.TinyMce. Update today!
Change texts in TinyMCE, inside Optimizely CMS 12
Not happy with some of the default texts in TinyMCE? Don't worry, simply update them.
Problem with language file localization after upgrading to Optimizely CMS 12
Avoid common problems with xml file localization when upgrading from Optimizely CMS 11 to CMS 12.
Add your own tools to the Optimizely CMS 12 admin menu
The menus in Optimizely CMS can be extended using a MenuProvider, and using the path parameter you decide what menu you want to add additional menu items to.
Optimizely CMS and weekly updates
Learn how reporting bugs in Optimizely CMS not only helps improve the platform but also benefits you and the entire user community.
Set icon for your Optimizely CMS custom form elements
Set your own icon on custom form elements in Optimizely CMS
Optimizely CMS image anonymization now available for Linux!
The famous image anonymization add-on for Optimizely CMS, with at least 5 downloads, is now finally available for use on Linux. Supports simultaneous anonymization of unlimited(?) numbers of faces. Perfect for data storage in the EU, where GDPR imposes strict restrictions on the use of personal information.
Auto-translate with OpenAI GPT-4o in Optimizely CMS
Improvements for Episerver.Labs.LanguageManager! It's now possible to auto-translate both a page and its children at the same time! Additionally, my new extension allows for OpenAI GPT-4o, or any other model from OpenAI, to be used as the translation provider.
Microsoft announces Natural language to SQL
Finally, Microsoft launches "Natural language to SQL," after it has been available for several months in Optimizely CMS!
Do not upgrade to EPiServer-CMS-Core 12.21.4 without reading this!
Todays update of EPiServer.CMS.Core 12.21.4 alters default sort order in an unexpected way, when you are working with muligple languages and have fallback languages set up. Please do test this throughly, if you want to update.
New Security Improvement released for Optimizely CMS 11
A new security improvement has been released for Optimizely CMS 11. You should update now!
Optimizely and the never-ending story of the missing globe!
I've worked with Optimizely CMS for 14 years, and there are two things I'm obsessed with: Link validation and the globe that keeps disappearing on me! Now, the globe is back again!
Identify Azure web app instance id's for an Optimizely CMS site
When running Optimizely CMS in Azure, you will be using an instance bound cloud license. What instances are counted, and how can you check them? Let me explain...
Adjust log levels in Optimizely DXP
You may adjust the log levels for your site in Optimizely DXP yourself, but only for the Integration environment. Follow this step-by-step guide.
Copy database and blobs to Optimizely DXP
It's easier than ever to import blobs and databases into the Optimizely DXP integration environment without involving support.
List number of pages per pagetype in Optimizely CMS
Learn how to identify the most frequently used content types in your Optimizely CMS installation using SQL.
I'm running Optimizely CMS 12 on .NET 8!
.NET 8 is launched, and the Optimizely team has announced support for .NET 8 in Optimizely products. Still, I had some problems. This is how I solved them.
Open AI GPT - using AI to feed an AI: Talk to my blog!
This Monday, OpenAI rolled out custom versions of ChatGPT that you can create for a specific purpose, called GPTs. It essentially functions as a chatbot with the powers of GPT-4. I used Optimizely Graph semantic search for my first GPT, so I can talk to my blog!
Sortable enum properties for Optimizely CMS
Enum properties in Episerver/Optimizely has been used for more than 10 years. I've made a few minor enhancements.
Semantic, AI-powered, search is coming to Optimizely CMS
The all new semantic AI powered search feature, and GraphQL API, for Optimizely CMS is finally released! Check it out!
Translating UI elements in Optimizely CMS 12
When Optimizely CMS is part of your website, most of your content will probably be translated using the localization features of the CMS. However, a few global texts might be practical to handle outside the CMS. Don't screw it up!
Auto-translate with OpenAI in Optimizely CMS
You can now auto-translate content using your favorite online AI service, inside the old trustworthy Episerver.Labs.LanguageManager!
Unleash AI in the Database!
These days, AI is everywhere! Why not put some AI into your database too? What could possibly go wrong?
Optimizely CMS 12 and SixLabors.ImageSharp
The NuGet package EPiServer.CMS.Core versions up to 12.16.0 included a reference to SixLabors.ImageSharp. Now, that has ended...
Optimizely CMS Scheduled Job «Change Log Auto Truncate» timeout
How to fix an issue in Optimizely CMS where the scheduled job «Change Log Auto Truncate» would fail with a timeout.
Optimizely CMS with new menu system
Optimizely CMS 12.22.0 introduced a new menu system and support for Optimizely Identity.
Updated Optimizely Link Status Report – Missing property names!
A couple of months ago Optimizely CMS introduced Deep linking from broken links report to Optimizely edit mode! One problem I discovered was that the «Property Name» does not show up in the Link Status report for existing content until you publish a change. I propose a fix!
Optimizely CMS Link Validation Job now finally uses GET instead of HEAD!
Previously the Optimizely CMS Link Validation job has used HTTP HEAD to check the status of external links. This has led to a lot of links erroneously being incorrectly listed as broken. As of today, Optimizely has started using HTTP GET!
Automatic Alt Text for images using Optimizely CMS 12
You may use this addon to generate alt text for your images automatically, which enhances accessibility, SEO, and assists content creators. The addon may also generate other types of relevant meta data.
Deep linking from broken links report to Optimizely edit mode
Optimizely CMS adds deep linking from broken links report to edit mode. Makes it easier to track down those broken links!
New ways to add content from within TinyMCE in Optimizely CMS 12
Todays update makes it easier to add content directly from TinyMCE!
Optimizely finally releases new and improved list properties!
For years, the Generic PropertyList has been widely used, despite it being unsupported. Today a better option is released!
The new LinkItem property in Optimizely CMS, and why it matters
In the past, we have used different tricks to achieve this. Now, the LinkItem property is finally built-in in Optimizely CMS 12!
Power Optimizely CMS with the brand new GPT-4 language model!
On March 14th, OpenAI released a waiting list for access to their GPT-4 language model, which was also made available for paying users of ChatGPT the same day. I got access 20 minutes ago, and this is how you can use it in Optimizely CMS!
Configuring link validation in Optimizely CMS 12
When Optimizely released version 12 of their CMS, it was not possible to configure how links should be validated. Now it is!
Power Optimizely CMS using the same language model as ChatGPT
On March 1st, OpenAI released their Chat completion API using the gpt-3.5-turbo language model, the same language model used by ChatGPT. Learn how you can add ChatGPT-capabilities to Optimizely CMS.
Is there really a RIGHT way to delete content directly in the Optimizely CMS database?
What is really the right way? And who decides what's the right way? I don't...
Delete content directly from the Optimizely database
Do you know your way around the Optimizely CMS database? Deleting, or updating, content directly in the database is pretty straightforward, but of course not recommended...
Integrating generative AI in Optimizely CMS: A quick test with OpenAI
Some of the new AI services have received a lot of attention recently. Can you integrate them in Optimizely CMS? Of course, you can!
Breaking changes in EPiServer.CMS.TinyMce 4.0.0
After upgrading to the latest version of EPiServer.CMS.TinyMce, the dropdown with formats disappears. Learn how to get it back!
Image preview in Optimizely CMS12 all properties view
With these simple steps, you can now see an Image and its Metadata, including size and dimensions, when editing an Image property in Optimizely Content Cloud 12.
Localized page types and properties in Optimizely CMS 12
If you have editors that use different languages, you might want localized content type and property names. Learn how it's done in CMS 12.
Upload files larger than 4MB in Optimizely CMS12
The default max file upload size in CMS 12 is 4MB. Learn how to increase it!
Optimizely shortcuts in CMS 12 will get a trailing slash appended!
Not all URLs will work when the trailing slash is added, and that could cause problems. Hopefully it will be fixed soon.
Optimizely CMS running on .NET 7!
Can you run Optimizely CMS on .NET 7? Yes! Can you upgrade in less than a day? Probably!
Warning CS0618: 'TextIndexer' is obsolete: 'This class is no longer used by CMS and will be removed in a future release.'
I do not like warnings, and I prefer to get rid of them. If I upgrade to the latest version of Optimizely CMS and then Install Episerver Search & Navigation – I get this warning.
Warning NU1603: EPiServer.Find.Cms 14.2.1 depends on System.Linq.Async (>= 6.0.0 && < 7.0.0) but System.Linq.Async 6.0.0 was not found. An approximate best match of System.Linq.Async 6.0.1 was resolved.
I do not like warnings, and I prefer to get rid of them. If I upgrade to the latest version of Optimizely CMS and then Install Episerver Search & Navigation – I get this warning.
Bring the Report Center back in Optimizely CMS 12
The Report Center has been a part of Optimizely CMS since its first debut in version 5R2 in 2008, but in CMS 12, it's removed! Don't despair! Make your own Report Center!
The Report Center is finally back in Optimizely CMS 12
With Episerver.CMS.UI 12.12.0 the Report Center is finally re-introduced in the core product.
If you want to upgrade – do not upgrade upgrade-assistant!
Today was the day. I was finally ready for upgrading to Optimizely CMS 12! It did not go very well, because I decided to start by upgrading upgrade-assistant.
Improve build speed in Optimizely CMS 12
In Episerver.CMS.UI 12.11 that was released today, we are promised improved build speed in projects by copying shell module files only when they change or are missing.
Fixing invisible broken links in Optimizely CMS!
On some websites, I find broken ghost links in the «Link Status» report! When I open the page in edit mode I'm unable to find them. I went on a ghost busting mission to get rid of them for good! 👻
Output cache in Optimizely CMS 12 that vary by visitor group
.NET5 and .NET6 has no concept of output caching, and neither does Optimizely Content Cloud 12. When adding output cache, there are a few things to consider - visitor groups are one of them.
Upgrade from .NET 5 to .NET 6
.NET 5 has reached end of support - you should update to .NET 6 today!
Scheduled Jobs in Optimizely CMS 12
In Optimizely CMS 12 the admin mode is given a real facelift. There are graphs and stuff! But is it still the same under the hood...?
Finally kill the EPiStateMarker cookie!
Wave goodbye to the EPiStateMarker cookie!
Quick and dirty output cache in Optimizely CMS12
.NET5 and .NET6 has no concept of output caching, and neither does Optimizely Content Cloud 12. Don't let that stop you from caching your output!
Optimizely CMS 12 can finally convert pages!
Optimizely CMS 12 can finally convert pages from one page type to another! Great! But what about blocks and media...?
Download database + blobs from your Optimizely DXP project
In Optimizely DXP, you can't access the live production environment directly. However, you can still download the database and blobs!
GDPR compliant image upload in Optimizely Content Cloud 12
Google Analytics might be illegal, cookies can't be used without active consent, GDPR and Schrems II are almost a household name. You should be very careful with personal data, at least if you are based in the EU!
Speed-upgrading an add-on for Optimizely CMS 12 🚀
Is it possible to upgrade an add-on to support .NET 5 and Optimizely CMS 12 in just three minutes? Hold my beer!
Get your Optimizely Content Cloud developer certification for free!
Learn how to renew your Optimizely Content Cloud developer certification for free!
Optimizely Content Delivery API - getting started smoothly!
The Content Delivery API adds headless capabilities to your traditional Optimizely Content Cloud CMS. Get started smoothly, without doing the same mistakes as I did...
Optimizely Content Manager - still not production-ready!
Optimizely Content Manager is a lightweight editing UI that aims to make publishing content easier, as it takes away some of the complexity. I like the idea, but here are still some major issues!
Developers, developers, developers!
When Episerver rebranded to Optimizely, the World website lost its developer focus and the community updates are not as easy to find anymore. Learn where to find them now!
Replace the link to the Optimizely User Guide
The Optimizely (formerly Episerver) user interface has a link to the User Guide, you can update this link if you want to.
Custom icons in the Optimizely/Episerver CMS page tree
By default, all pages in your Optimizely page tree look the same. With custom icons, you can add your personal touch, and make it easier to visually separate the different types of pages.
Optimizely Content Cloud (CMS) and updates to the database schema
When upgrading Optimzely Content Cloud, the database schema might need updating too. Confused? Let me explain...
Episerver Scheduled jobs - Add a GUID!
A scheduled job is Episerver's/Optimizely's way of running some piece of code at a configurable interval. If there is a chance that code could change in the future, you should add a GUID when you create it!
Critical bug in Episerver/Optimizely Forms 4.30.1/4.30.2 - upgrade ASAP!
Episerver Forms submission data older than 30 days can be unexpectedly deleted, even if the form is configured to keep submissions forever. If you are using version 4.30.1 or 4.30.2 - I would recommend upgrading ASAP!
New Optimizely Most Valuable Professionals!
Yesterday Optimizely announced the addition of 11 new Most Valuable Professions - OMVPs! Congrats and welcome!
Content Manager Update!
Content Manager is finally updated, and it's now possible to create and publish content without going through a bunch of meaningless steps.
Lazy loading images in Episerver/Optimizely xhtml string properties
Increase web performance by lazy loading images! With native browser support it's easier than ever!
Content Manager, the greatest thing since sliced bread?
No! Optimizely Content Manager is a lightweight editing UI that aims to make publishing content easier, as it takes away some of the complexity. I like the idea, but here are two main issues left before Content Manager could be used in a production environment.
Scroll to the top, and beyond!
Do you ever find yourself switching from on-page editing view to all-properties editing view to access basic information about the current page in Episerver CMS? You don't have to do that! Just scroll upwards!
New SQL addon for Episerver CMS
I enjoy poking around in the Episerver database, so I made an addon to make it easier! Enjoy autocomplete, save your favorite queries for later - but be careful!
Real-time Updates: A real-time connection could not be established with the server
If you are faced with this error message when you log into Episerver Edit mode, do not fear. It can be easily fixed.
Locate Episerver content with restricted access rights
If someone deletes a page from an Episerver site, you can figure out what happened by looking at the changelog. What if someone changes access rights? I show how to locate pages that have their access rights set explicitly.
Episerver Forms - public access to uploaded files
Files uloaded to an Episerver Form, can not be accessed without logging in. Unless...
Deploying to Episerver DXP - Part 1: Integration, direct deploy
When deploying your site to Episerver DXP, there are so many options. Some are quite fast, some are super slow. I show how to deploy to the Integration environment the fast way, using Azure DevOps.
Deploying to Episerver DXP - Part 2: Preproduction and Production, Deployment API
When deploying your site to Episerver DXP, there are so many options. I show how to deploy using Azure DevOps, the deployment API, and Epinova's DXP deployment extension.
Change text in Episerver TinyMCE UI
Descriptive alt texts on images are important, but in TinyMCE the field is called «Image Description». You can change that!
Image preview in Episerver all properties view
Editing image properties would be more intuitive if we could see both the image and the properties at the same time! Let's add image preview to All properties view!