Take the community feedback survey now.

K Khan
Jun 19, 2019
  83
(0 votes)

Best practises cheat sheet for your EPi site

  • Prefer Controllerless blocks
  • Don't Create Content Areas in Blocks, No nesting blocks.
  • Minimize database calls. Instead, use Episerver’s caching layer where ever possible.
  • Personalization might have an impact on performance, therefore make sure you implement personalization in a way that has the least possible impact.
  • Avoid frequent querying of the Dynamic Data Store.
  • Try to keep your content tree well balanced.
  • Prefer Lists over ContentArea where possible to avoid big content structures for complex pages.
  • Avoid dynamic properties.
  • Register UIDescriptor, where you disable on page edit and preview views
  • For settings kind of pages, ensure that it will not have a template
  • Use Episerver’s Object Cache instead of .NET’s built-in cache
  • Create all Content Types (Page Types, Block Types, Media Types) in code
  • For property (field) names in code, use standard .NET PascalCase. Make sure to set a friendly Display Name and Description
  • Plan a data hierarchy for Content Types, and use class inheritance
  • Organize groups of properties (fields) into tabs
  • Provide an order of properties, with frequently used properties at the top of each tab, Consider Editors
  • Set default values for Content Types’ Properties (if known)
  • For media properties, use the ContentReference type and the appropriate UIHint
  • Use the PropertyFor method to render properties (fields) in Content Type views
  • Make sure to always create the appropriate Media Types for assets in the project
  • Use Container Pages for folder nodes, without presentation (if required) use IContainerPage.
  • Plan carefully the content structure hierarchy, and avoid overloading a single level with too many pages
  • Make sure to load-test external systems integrations
  • Avoid resolving URLs repeatedly, think about cache.
  • Avoid creating blocks to use for image refernces and pages only along with some text as Alt

Disclaimer: Points have been learned from many different sources and experience, have been adding in my best practices document.

Jun 19, 2019

Comments

Please login to comment.
Latest blogs
A day in the life of an Optimizely OMVP - Opticon London 2025

This installment of a day in the life of an Optimizely OMVP gives an in-depth coverage of my trip down to London to attend Opticon London 2025 held...

Graham Carr | Oct 2, 2025

Optimizely Web Experimentation Using Real-Time Segments: A Step-by-Step Guide

  Introduction Personalization has become de facto standard for any digital channel to improve the user's engagement KPI’s.  Personalization uses...

Ratish | Oct 1, 2025 |

Trigger DXP Warmup Locally to Catch Bugs & Performance Issues Early

Here’s our documentation on warmup in DXP : 🔗 https://docs.developers.optimizely.com/digital-experience-platform/docs/warming-up-sites What I didn...

dada | Sep 29, 2025

Creating Opal Tools for Stott Robots Handler

This summer, the Netcel Development team and I took part in Optimizely’s Opal Hackathon. The challenge from Optimizely was to extend Opal’s abiliti...

Mark Stott | Sep 28, 2025

Integrating Commerce Search v3 (Vertex AI) with Optimizely Configured Commerce

Introduction This blog provides a technical guide for integrating Commerce Search v3, which leverages Google Cloud's Vertex AI Search, into an...

Vaibhav | Sep 27, 2025

A day in the life of an Optimizely MVP - Opti Graph Extensions add-on v1.0.0 released

I am pleased to announce that the official v1.0.0 of the Opti Graph Extensions add-on has now been released and is generally available. Refer to my...

Graham Carr | Sep 25, 2025