<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title type="text">Blog posts by Stefan Holm Olsen</title><link href="http://world.optimizely.com" /><updated>2025-09-14T15:08:06.0000000Z</updated><id>https://world.optimizely.com/blogs/stefan-holm-olsen/</id> <generator uri="http://world.optimizely.com" version="2.0">Optimizely World</generator> <entry><title>Turbocharge your strings - a case of display channels</title><link href="https://stefanolsen.com/posts/turbocharge-your-strings-a-case-of-display-channels/" /><id>When doing a routine performance test, during a CMS 12 upgrade, I was able to achieve 95% performance improvement. Let&#39;s look at SearchValues with a simple case.</id><updated>2025-09-14T15:08:06.0000000Z</updated><summary type="html">Blog post</summary></entry> <entry><title>Send away Outlook Autodiscover request the easy way</title><link href="https://stefanolsen.com/posts/send-away-outlook-autodiscover-request-the-easy-way/" /><id>If you also hate false errors in your request logs, let’s clean up one path at a time. Here is how to avoid logging 404 errors caused by Outlook.</id><updated>2025-07-21T14:41:42.0000000Z</updated><summary type="html">Blog post</summary></entry> <entry><title>My key take-aways from Opticon 2023</title><link href="https://stefanolsen.com/posts/my-key-take-aways-from-opticon-2023/" /><id>This past week I spent 4 days with Optimizely at Opticon 2023 in San Diego, and got to hear a lot of inspiring announcements and ideas. Here are my personal favorites.</id><updated>2023-10-13T05:48:56.0000000Z</updated><summary type="html">Blog post</summary></entry> <entry><title>Send Optimizely notifications with SendGrid API, not SMTP</title><link href="https://stefanolsen.com/posts/send-optimizely-notifications-with-sendgrid-api-not-smtp/" /><id>If your Optimizely site already sends transaction emails through an email platform API, why not do the same with Optimizely notification emails?</id><updated>2023-09-06T20:00:00.0000000Z</updated><summary type="html">Blog post</summary></entry> <entry><title>Remember to configure your complementary SendGrid account in Optimizely DXP!</title><link href="https://stefanolsen.com/posts/remember-to-configure-your-complementary-sendgrid-account-in-optimizely-dxp/" /><id>For all those who have websites in Optimizely DXP, consider improving email deliverability with SendGrid. There is a bonus tip at the end…</id><updated>2023-08-15T17:00:00.0000000Z</updated><summary type="html">Blog post</summary></entry> <entry><title>Correlate telemetry for scheduled jobs in Optimizely CMS</title><link href="https://stefanolsen.com/posts/correlate-telemetry-for-scheduled-jobs-in-optimizely-cms/" /><id>Earlier I showed how to integrate Hangfire jobs with Application Insights, to correlate all job logging. Now you can do the same with regular Scheduled Jobs with this small trick.</id><updated>2023-08-07T18:30:00.0000000Z</updated><summary type="html">Blog post</summary></entry> <entry><title>Catalog roots can finally be customized in Optimizely Commerce!</title><link href="https://stefanolsen.com/posts/catalog-roots-can-finally-be-customized-in-optimizely-commerce/" /><id>Optimizely Commerce 14.13.0 removed a road block for customizing product catalog roots. Read here about how to use it.</id><updated>2023-07-26T20:00:00.0000000Z</updated><summary type="html">Blog post</summary></entry> <entry><title>Telemetry correlation for Scheduled Jobs in Optimizely</title><link href="https://stefanolsen.com/posts/telemetry-correlation-for-scheduled-jobs-in-optimizely/" /><id>I previously demonstrated how to correlate telemetry to Azure Application Insights within a Hangfire job. But how about those jobs that are built as regular Optimizely scheduled jobs? Read about a solution here.</id><updated>2023-03-23T19:30:00.0000000Z</updated><summary type="html">Blog post</summary></entry> <entry><title>4 tips and tricks for Hangfire on Optimizely CMS</title><link href="https://stefanolsen.com/posts/4-tips-and-tricks-for-hangfire-on-optimizely-cms/" /><id>Here are four useful tricks I always apply to any site where I use Hangfire (code included).</id><updated>2023-03-21T20:15:00.0000000Z</updated><summary type="html">Blog post</summary></entry> <entry><title>Performance tip: Use good old ContextCache for request-scoped caching</title><link href="https://stefanolsen.com/posts/performance-tip-use-good-old-contextcache-for-request-scoped-caching/" /><id>There is a less-known hidden gem in Optimizely CMS for brief request-scoped caching. Read about which it is and how simple it is to use.</id><updated>2023-03-04T21:17:39.0000000Z</updated><summary type="html">Blog post</summary></entry> <entry><title>Redis PubSub for Optimizely CMS 12 event messaging!</title><link href="https://stefanolsen.com/posts/redis-pubsub-for-optimizely-cms-12-event-messaging/" /><id>I made a new Redis PubSub event provider for Optimizely, for use with load-balanced servers that cannot use my .NET sockets event provider. Read about it, and get it, here.</id><updated>2023-03-02T16:25:20.0000000Z</updated><summary type="html">Blog post</summary></entry> <entry><title>Performance tip: Disable sticky sessions in Optimizely DXP</title><link href="https://stefanolsen.com/posts/performance-tip-disable-arr-affinity-sticky-sessions-in-dxp/" /><id>If you are working with Optimizely DXP sites, take a few minutes to consider whether you really need sticky sessions. Here is how to disable them and what happens after.</id><updated>2023-02-24T18:15:29.0000000Z</updated><summary type="html">Blog post</summary></entry> <entry><title>Performance tip: Don’t get a shopping cart until you need one</title><link href="https://stefanolsen.com/posts/performance-tip-dont-get-a-shopping-cart-until-you-need-one/" /><id>For all of you that work on sites with mini-carts, here is a performance tip for Optimizely Customized Commerce.</id><updated>2022-12-19T07:00:10.0000000Z</updated><summary type="html">Blog post</summary></entry> <entry><title>Hosting Optimizely CMS 12 on Docker Engine</title><link href="https://stefanolsen.com/posts/hosting-optimizely-cms-12-on-docker-engine/" /><id>Since Optimizely CMS can now be deployed as a Docker container, here is a demonstration of building, running and scaling an Optimizely CMS 12 site on a Docker Engine swarm.</id><updated>2022-12-04T18:35:53.0000000Z</updated><summary type="html">Blog post</summary></entry> <entry><title>7 ways to deploy Optimizely CMS 12 (.NET 6)</title><link href="https://stefanolsen.com/posts/7-ways-to-deploy-optimizely-cms-12-.net-6" /><id>With Optimizely CMS 12 now fully multi-platform, it can now be hosted in new ways. Here is a quick walkthrough of some of the hosting models.</id><updated>2022-09-05T16:30:00.0000000Z</updated><summary type="html">Blog post</summary></entry> <entry><title>New Optimizely CMS event provider for on-premise hosting</title><link href="https://stefanolsen.com/posts/new-optimizely-cms-event-provider-for-on-premise-hosting/" /><id>There is a new event provider for the Optimizely CMS 12+ platform, for use in on-premise hosting scenarios. It is simple and efficient.</id><updated>2022-04-11T06:00:00.0000000Z</updated><summary type="html">Blog post</summary></entry> <entry><title>Remember to flush Application Insights on shutdown!</title><link href="https://stefanolsen.com/posts/remember-to-flush-application-insights-on-shutdown/" /><id>Here is how to ensure that Azure Application Insights logs and performance are not lost on shutdown, all while also optimizing log collection.</id><updated>2020-11-28T08:30:00.0000000Z</updated><summary type="html">Blog post</summary></entry> <entry><title>Compressing Web API and Episerver API responses</title><link href="https://stefanolsen.com/posts/compressing-web-api-and-episerver-api-responses/" /><id>If you return large responses from your custom Web APIs or from Episerver Content and Service APIs, you might want to remember about response compression.
Read here about enabling it.</id><updated>2020-10-29T19:30:00.0000000Z</updated><summary type="html">Blog post</summary></entry> <entry><title>5 things to consider when integrating native apps with Episerver</title><link href="https://stefanolsen.com/posts/5-things-to-consider-when-integrating-native-apps-with-episerver/" /><id>From working on Episerver solutions with native apps, I have done several learnings on challenges, limitations and solutions. In this blog post, I list up five of them.</id><updated>2020-06-15T11:00:00.0000000Z</updated><summary type="html">Blog post</summary></entry> <entry><title>Burst-protecting pages with Cloudflare output caching</title><link href="https://stefanolsen.com/posts/burst-protecting-pages-with-cloudflare-output-caching/" /><id>This is the story about how an Episerver site achieved extreme performance for some landing pages, by applying distributed output caching using Episerver DXC and Cloudflare.</id><updated>2020-04-18T08:00:00.0000000Z</updated><summary type="html">Blog post</summary></entry></feed>