Skip to content
May 6, 2020 / kiranpatils

SXA Renderings Cheat Sheet


Recently have been doing SXA GAP analysis for new project. Sitecore documentation team has done great job documenting those here :

As you can see there are 70+ components and it’s easy to remember all of them (you no need to in real world). But when you are doing quick analysis and try to map Non SXA component with SXA.

Mark and SXA team has done great job help you visualize all components using this SXA Style guide : (Thank you so much!)

Still I wanted to have list of all components as a single reference card. So, I can quickly review it. And that’s how idea of having SXA Renderings Cheat Sheet came into existence!


You can view/Download PDF from here :

  1. First column indicates Rendering name
  2. Second column indicates whether it supports rendering variant or not (If this column doesn’t exist means it doesn’t support rendering variant)
  3. Third column indicates Description

Happy SXA Development! 🙂

February 19, 2020 / kiranpatils

Sitecore Experience Accelerator (SXA) Basics


Howdy Friends, I’m really excited to share my first SXA post with you!

SXA 1.0 was launched in 2016 and SXA 9.3 (Yes, Sitecore has changed SXA versioning!) has been released on November 2019.

I just explored little bit when it was launched, But I had my own apprehensions about It’s adoption due to unclear Sitecore licensing process [at-least to me] and lot of other things. But as following quote says:

All change is hard at first, messy in the middle, and so gorgeous at the end.” – Robin Sharma.

I think this is true for SXA as well. SXA 9.3 is gorgeous version! [That doesn’t mean past version has been hard/messy 😉 ]

I wanted to learn SXA, But there were lot of resources on the web posted by great people. As a newbie, I was confused. From where to start? [You as well!?]

Image result for confused kid with options
Image Credits :

Or, If you have following questions in your mind, then this post is for you!

  • Where to learn SXA basics?
  • What is SXA?
  • Why I should learn and adopt SXA?
  • How can I be expert in SXA?
  • What is co-relation between Sitecore Custom, Sitecore SXA, and Sitecore JSS? Are they competing development methodologies or complementing each other?
  • We are starting new project — It should be on SXA or Custom?
  • How SXA development is different than my earlier Sitecore Custom Development (Sitecore WebForms/MVC Development)?
  • I’m working on Sitecore since long time, So, whatever I’ve learnt on Sitecore platform till this point of time will be of no use?
  • Our FED-BED integration process will be impacted by SXA?
  • All my FED team need to learn SXA?
  • All my FED team need to have Sitecore instance in local?
  • BED Developer Can’t I work ahead of FED Developers?

Wow, There are lot of questions. I might not be able to cover all of them in this post. But I will try to share SXA fundamentals and try to answer few questions and by end of this post my goal will be that you will be self sufficient to find your own answers!

Quotable Quote:

Give a man a fish and you feed him for a day. Teach him how to fish and you feed him for a lifetime


Let’s follow the W-W-H (What, Why, How) learning framework for SXA.

What is SXA?

Let’s refer Sitecore’s definition :

Web development teams use Sitecore Experience Accelerator (SXA) to speed up the production of websites and to reuse components, layouts, and templates across a variety of sites.

SXA separates structure from design, so front-end designers, creative designers, content authors, and developers can work in parallel and you can deploy and maintain multiple sites quickly and cost effectively. Once a basic user experience plan is in place, everyone can get started on the platform. For example: the content author can start entering the content in the wireframe environment, while the front-end developer works on the theme, and the developer sets up the data templates.

Before we go in further details about SXA. Let’s understand type of Sitecore Development:

Image credits :
  • Custom : If you have been doing Sitecore Development since long time, then you must have seen Sitecore framework ivolved from XSLT [You are getting old? :-)], to Web Forms and MVC. We’ve taken a big leap in development from XSLT to MVC for sure. But as a human we always want to do better than yesterday. Sitecore industry folks also wanted to make product better for the full eco system. Developers across different companies/projects/agencies have been spending more time on building those similar components – Header, Footer, Menu etc. rather than focusing on core business challenges and this was impacting “Time to market” for business. Everyone was looking for something better and there were few accelerators built by few companies for either their in-house use or as a product. But Configide‘s Zengarden was promising. It got adopted by lot of companies and community members. Sitecore also noticed that and adopted SXA in Sitecore’s offerings!
  • SXA : SXA stands for Sitecore Experience Accelerator. As name suggests, it helps you to speed up your website development. SXA comes with over fifty components that can be completely customized for the needs of your brand.
  • Sitecore JSS : For headless development.

Refer following diagram which depicts SXA benefits :

SxA Website development process 
User Experience 
Visual Design 
Frontend Development 
Backend Development 
Content Entry 
Time to market

Let’s try to understand above diagram with an example – Company Contoso Inc. acquired new brand and would like to spin up a new website. They asked two different teams to develop website using different approaches. Sitecore Custom vs Sitecore SXA.

This is how overall process looks like:

Sitecore custom approach – Looks more like old manufacturing assembly approach. Where each department can work on module, once last department completes their work.
SXA approach – Looks more like round-table approach. Where everyone can work collaborate together!

As you rightly guessed, SXA team could spin up new website faster than Custom Development team.

ALERT! — If your Maths is good and you are a business stakeholder, Then please don’t create formula that SXA site should take 5 times less than Custom Development approach. It might not work that way. As each Site has different features, integrations and complexity. Please let your implementation team come up with proposed solution and time it needs to build. You also need to consider some learning curve for this new tool set. But relatively SXA should take less time than Custom. But how much that all depends on lot of factors. Which your implementation team will be able to share with you.

Also, depends on your site’s complexity, you might need to divide some work between Design, FED and BED team.

If you want to read more about SXA, I strongly recommend you to read this doc :

As you might have noticed from architecture diagram. Lot of other Sitecore pieces are old e.g. MVC, WFFM, Presentation etc. You must have noticed Sitecore Powershell module in architecture diagram.

Powershell module is heart of SXA.

Why SXA?

I believe by this time you might have already been clear with “Why SXA?” and you must be saying “Why not SXA?” 🙂 But still if you are someone who needs more reasons before deciding. I would recommend you to read following posts:

If you reached thus far and have heard following feedback from your colleagues/friends about SXA and hesitant to use SXA with that feedback or not:

  • Front-end and Back-end integration is challenging.
  • It’s cumbersome to make rendering variants.
  • Front-end markups can’t be exactly applied in Back-end.
  • Export and Import process of Creative exchange is cumbersome when project is complex and team is big.
  • It’s good for small sites. But if Site has complex custom design. Then customization takes lot of time.

This all is great feedback and learnings. Sitecore product team have been listening and working on it, and came up with SXA 9.3 version. Which has major updates. Two of my favorites are:

  • Scriban templates support – This is huge and solves two main challenges – FED-BED integration and makes customization super simple and extensible!
  • Front-end and Back-end integration workflow has been revamped : Raw FED Assets has been moved to file system rather than media library. So, your FED team mates can work in isolation and larger team can work together. Only compiled assets will be stored in Sitecore media library.

I will not spend much time writing about SXA 9.3 as lot of great souls have already written/shared about it:

What!? You are still not convinced to use SXA and need to see more reasons to use SXA over Custom Development?

Let me share few examples using which you can compare Custom and SXA way to do things and understand how efficient SXA is:

  1. SXA Caching Options : Read this section : – Allows you to apply HTML Caching at Site, Component, Placeholder level along with donut caching.
  2. Source field report OOTB :
  3. Helps you choose option :
  4. Easy cloning : – You can create pattern library and clone it as per your need.
  5. SXA Site manager : – No more restarts for adding/deleting website!
  6. Standard Security and roles management :

Hopefully you must have been convinced to use SXA by this time. If not, then please drop your use case and we can try to understand more about it :-). It might be possible that custom development might be more efficient for you to use than SXA.

Please remember technology and tools can’t solve all problems!

How to use SXA?

If you reached thus far. Then it means you are all charged up to learn SXA and looking for sources from where you can start learning basics of SXA.

I will share my learning sources and approach which I followed. Feel free to tweak it as per your need.

  1. Sitecore e-learning courses : I was very impressed with Sitecore training course’s new design. If you are developer, you might not find lot of value from Development Point of view. But these courses are great to have SXA’s fundamental understanding. You can follow your suitable approach to learn SXA. I learnt following two courses:
    1. Introduction to Sitecore® Experience Accelerator 9
    2. Fast-Track Design in Sitecore® Experience Accelerator 9
  2. Short, unofficial, ad-hoc, Sitecore SXA tutorials : This is second great source to learn SXA. Lot of great videos have been posted here. But please don’t get overwhelmed with all videos. To learn SXA, you no need to go through all videos. To keep things simple, go through some basic videos – especially – How to create site, Page Design, Partial design, Rendering variants etc. :
  3. Sitecore Documentation : – This is another great source to learn more about SXA features. I would really like to shout-out documentation team for doing great job in documenting SXA as well as some of the recent document updates have been really great! – Looks like, Sitecore documentation team is going in right direction.
  4. Practice, Practice, Practice : Nothing can beat this step. You must need to do hands-on with SXA concepts. As there are lot of concepts to explore and you can’t remember those, until you practice.
    1. Install SXA : If you are using Sitecore Install Assistant then installing SXA is super easy.
    2. Create one website : Create one simple website, which has header, footer and some pages.
    3. Create new theme using SXA CLI and try to create few rendering variants with or without Scriban
    4. If you have been working with Sitecore Custom Development since long time, and have been aware about some best practices like Standard values, Renderings, Layouts etc. try to understand their Sitecore SXA approaches.
  5. Advanced learnings:
    2. Build complex website using SXA 9.3 and Scriban templates.

Hope you found this post helpful, and will help you to quick start your SXA learning. If you learn something new please blog and share with everyone!

Have a happy site building experience! 🙂

Good reads:

Image credits:

February 15, 2020 / kiranpatils

Sitecore redirect strategy


SEO is critical for any website and it becomes critical to have redirect strategy for migration projects. We have been involved in lot of migration projects. Where clients either migrate from their legacy platform to Sitecore with new URLs or from old Sitecore platform to new Sitecore platform with new UX and design.

Defining redirect strategy has been key factor in success of these migration projects. Now, with each Sitecore version and variant. There are lot options available. You might get confused which strategy should be implemented.

We learnt something during my recent migration project and thought to share those with you.


Thought to create flow diagram, which can help you understand this easily:

I won’t try explaining each step, as it should be self-explanatory. If not, feel free to comment on this post. And will try to get an answer for you.

In this post, For your ease. Will provide links to few of the modules/approaches listed above:

  1. Good post :
  2. Marketplace modules:
    1. Url Rewrite Module by Andy Cohen : Few good posts already discussed about this topic
    2. Few other options :
  3. IIS Url Rewrite : The Microsoft URL Rewrite module is an ISS extension that allows you to rewrite one URL to another using regular expressions.
  4. SXA Redirect OOTB support :
    1. : Basic redirect
    2. : Advanced redirect

Hope you have smooth migration!

February 15, 2020 / kiranpatils

Broken AzureTools.aspx on Sitecore 9.3


If your Sitecore app is on Azure and you are overwhelmed with Application Insights and need simple tool to check logs. AzureTools.aspx is an answer for that. You can find more about it from here:

I’ve been big fan of this tool and Sitecore has been updating it regularly –

Recently I was trying to use it on my local 9.3 instance, but it was not working. When I deployed same aspx page on 9.0.2 solution it worked.

I spent lot of my time troubleshooting and finally was able to figure out. If you are facing similar issue or going to give a go to this tool soon. Then this post is for you only!


Sitecore 9.3 OOTB comes with strict CSP rules. Read more here :

Which is good and must be there for security reasons. But in local environment it might can block few of your developer tools.

Here’s what I did to fix my error:

  1. Opened Webroot\Web.Config
  2. Did – Find and comment this node – <add name=”Content-Security-Policy”
  3. AzureTools.aspx was up and running!

As I was focusing on analyzing and fixing my other issues and it was my Dev environment. Commenting this node was an okay solution. But I strongly recommend that you should it enabled and try to tweak your policy to fix URL specific issues or revert your changes once your Log analysis is done. Will dot it someday, or if you do it please blog.

Good reads:

February 15, 2020 / kiranpatils

RedisTimeoutException with Sitecore 9.0.2 – 9.3


In recent time, was involved in Sitecore 9 Azure PaaS Implementation for few of our enterprise clients, who had humongous amount of data, traffic and multi-region CD servers to handle load.

We faced RedisTimeout challenges during 9.0.2 launch and recently we faced similar challenges for 9.3 upgrade. It was moderate for later than earlier. But in both case, we spent good amount of time and we have learnt something new. So, thought to share with you. So, hopefully it can reduce your resolution time.

So, If you are also haunted with RedisTimeout exceptions and your launch is due soon and looking for some solutions this post might help you.


I won’t spend much time explaining basic details about it. But I would strongly recommend you to read following great posts:

If you’ve already been through above posts, Great! Please keep reading.

Before we talk about Solution, Let’s talk about Why this happens?

If you want to know more about Session and how it works, I would strongly recommend you to read this great post :

By this time, your basic understanding should be clear. In XP Scaled and Multi-region most applications will prefer to use Out-Proc session for obvious reasons explained in the post earlier.

So, if you are expecting lot of traffic then your CD Servers should have enough power to handle session threads as well as your REDIS server should also be powerful enough to handle those session requests.

When you are troubleshooting REDISTimeout issues, find your bottleneck first. Here are few of our learnings to identify bottleneck:

  1. Check CPU Usage of CD Server – It is high? :Then your CD server needs more power (Just a note : If your CD’s CPU is high, then there might be another reasons for that. Which needs to be checked. But for simplicity of this post, We are assuming all other issues are already taken care). Give a tier upgrade and check again.
  2. If you are not noticing high CPU on CD and REDIS is overloaded then good to add more power to your REDIS app.
  3. If you’ve upgraded them to both of them to higher tier and if you are still noticing REDIS errors then you should apply configurations given in KB Article and mentioned below – Please keep reading this post.

Can you show me some more symptoms?

If you are not sure you are impacted by REDISTimeout exceptions or not following are few symptoms of it:

AI Logs

Sitecore Logs

Azure tools (Latest) query “- traces | where timestamp > now(-1d) | where message contains “Exception” or customDimensions.StackTrace contains “Exception” | where customDimnsions.Role == “CD” | sort by timestamp desc | limit 100″
Dump file analysis

I’ve faced this error on multiple versions and solution for each version had slightly different. So, will divide solution in two parts:

In either of the version, you must need to refer this KB Article : – Please don’t get overwhelmed with information it provides, take few deep breaths and read – It’s good info. I personally feel Solution steps are not as straight forward as it should have been. But we all are learning together 🙂

  • Sitecore 9.0.2 : We noticed lot of performance challenges and during troubleshooting we found that our applications were setup (~2 years ago) as per Sitecore’s old tiers recommendation, And it was not capable to handle load. also, we had to upgrade our Redis Tier to C2 (C1 might work, if your site is not having heavy load)
    • We did some load testing and performance tuning and we learnt that upgrading CD apps to P2V2 (Do some performance test to find out right tier P1V2 might be a good one to go with. Also, good to move away from Standard tiers to Premium tiers as they are available at same price with better hardware! – Please refer this :
    • We also had to upgrade our REDIS Apps to C2 (If you got moderate load than C1 might work for you!)
    • Apart from this we applied steps mentioned in KB Article :
      • Apply Step#1-3
      • But please make sure you read Notes section first. Whatever values you applied as per this KB article is just for reference, and you need to do some load testing before finding optimal value for your needs.
      • I’ve created gist with our configurations :
      • Please play close attention to following values in gist, we updated them for better results:
        • pollingInterval : Specifies the time interval in seconds that the session state provider uses to check if any sessions have expired. The default value is: 2.
        • executionTimeout
        • timeoutBetweenLockAttempts
        • Sitecore.Support.210408.config – Especially values given in this file needs close attention.
  • Sitecore 9.3 : As we had learnings from our last project (9.0.2) project we were not expecting any Redis error. But life is not as easy it seems to be :-). We again got haunted by REDISTimeout exceptions during our Performance testing period. Here’s what we learnt.
    • We were facing one odd error during UAT period. But during load testing. We noticed that REDIS errors count went high. And that’s when we started to investigate further on this before go-live:
    • Tiers : Luckily, we haven’t faced much challenges with tiers. CD servers were good. We only had to upgrade REDIS from C1 to C2 to handle load.
    • Sitecore Patch as per KB Article: As you must have noticed on this article it says – Fixed in 9.2. And if you scroll further it has suggested some steps : and steps are also not super clear. Feeling same? We also felt same, And thought to reach out after couple of back and forth. Sitecore support also accepted that those steps need some work for 9.3 and here are our learnings till Sitecore updates KB article:
      • Good part is – you no need to apply and DLL patch for this.
      • Just some configuration updates as listed in this gist:
      • Biggest learning was maxConcurrencyLevel value should not be changed at all. As per 9.3 logic, if this value is not provided then 9.3 handles it in conjunction with batch size, else size you provided in config. And as per our learning default logic is optimal.
    • Load testing : Above steps reduced REDIS Timeout exceptions drastically. But whenever client used to run JMeter load test, they noticed REDISTimeout exception. After some consultation with Sitecore support and analysis we learnt that load testing script was sending unrealistic traffic and it was also not handling cookies properly.
  • You are still facing error? : If you are facing error even after following steps given above, then it might be good idea to create memory dump using procdump and try to analyze this with help of Sitecore support.
D:\hone\site\wwwroot\App_Data\dumps>D:\devtools\sysinternals\procdump -accepteula -e 1 -f "StackExchange.Redis.RedisTimeoutExceptio 
" -ma 285441
D:\devtools\sysinternals\procdump -accepteula -e 1 -f “StackExchange.Redis.RedisTimeoutException ” -ma <PID>

Both our environments are serving live traffic and we are having stable systems with No REDIS Timeout exceptions!

Hope this post helps you to fix you REDIS timeout exceptions or avoid them before you see them. Special thanks to Sitecore support team and my colleagues Joseph and Khushboo for all their help during troubleshooting!

November 30, 2019 / kiranpatils

200th Sitecore Blog Post

I’ve been sharing my Sitecore basics via this blog since 2011. Today, I’m super happy and surprised that, I’m writing my 200th blog post. (Double century is really special – You can understand that I’m coming from Cricket playing nation 🙂 )

This would have not been possible without following people:

  • All those great souls who inspired me to write!
  • Great souls like you who kept reading my blog and appreciate what I did – Which motivated me to keep going. As starting Sitecore or any blog is easy. But to keep it going needs more efforts. Would have used this time doing something else. But I feel grateful that I invested my time on this blog which helped lot of Sitecore Souls across the globe!

Some Stats:

This post will make posts count to 200
All time views
Annual Site stats
Total followers
This is my favorite – Could contribute on larger part of the earth in some way!


  • Total posts : 200
  • Total views : 519518
  • Total visitors : 254007
  • Total words : 107450

Perfect day [Thanksgiving] to write this blog. I’m Thankful for:

  • Those who taught me Programming
  • Those who taught me Sitecore
  • Those who inspired me to blog
  • Those who read my blog and kept me going

Hope this post inspires you to start your blog or restart your blog which you haven’t updated since quite some time.

Happy blogging! 🙂 – Start your blog, might not for others. But for your self! [At times, I find solution from my old post 😉 ]

November 30, 2019 / kiranpatils

SearchStax with Sitecore Azure PaaS


Sometime back, we were trying to integrate SearchStax with Sitecore 91 PaaS environment.

I got some good documentation to begin with. But it took me sometime to accomplish my goal. With the help of SearchStax team [They are great!] was able to achieve my goal.

Recently came across similar question by someone in Sitecore Slack group. So, thought to blog it here.


This post assumes, that you are already aware about SearchStax – Basics and how to get started, Solr, SolrCloud basics.

As you do, I also did quick search and came across following great posts!

Initial posts clarified lot of my basic fundamentals, Last post : is really good. But If you are trying to do it for your Sitecore Azure PaaS environment. You need to alter some steps and I also faced some errors. Let me outline that for you:

  • You no need to do Step#1.
  • Do Step#2.
  • Step#3 : SearchStax team has created nice plugin, which helps you create all initial required collections — Basically, Plugin abstracts zookeeper config upload steps:
    • Instead of using searchstax-sitecore-plugin-1.0 use 1.1. As we found bug in 1.0. Use 1.1 from here : or direct link
    • Script relies on PowerShell core. To start PowerShell Core – you need to type pwsh.exe in CMD/Powershell – See this video :
    • Extract downloaded plugin and update YML file as per given instruction. [pathToWWWRoot : Is not important in Azure PaaS. But still you have to provide it and sitecorePrefix (Will be used to prefix your Solr collection/cores.) also should be valid site. Plugin will update config files. So, you might need to take backup of local file – ConnectionStrings.Config]
    • Run this from CMD/Powershell. Make sure you are in PowerShell Core. It will also ask your SearchStax credentials. So, please keep them handy!
  • Once above step is done, your Solr collections are ready. You can access Solr Admin screen to confirm that (You should see 11 collections). It also updates Solr Connection string in your local. Please revert those changes to your local Solr instance. [We took backup in earlier step]

Note : It doesn’t create XDB Core.–using-solrcloud-for-xconnect-search.html#UUID-00ee25a3-647f-aa18-6f98-805fa4f305de_section-5c3ef326406c3-idm45266705934112– As of now you have to create manually or update scripts to do that.

  • Till this point of time we have setup our Solr Cloud instance. Now. let’s connect it with our Sitecore Instance.
  • Once all above steps are done, Login to your Sitecore instance and from Control Panel – Do “Populate Schema from the Control Panel in Sitecore” step.

This post depicts steps with Sitecore 9.1. But I believe it should work with 9.2 as well. I’m not sure Search Stax Plugin issue is fixed in 9.2 document or not. Also, I heard Search Stax is coming up with Sitecore LaunchPad Plugin ( to simplify these steps. I’m sure you must be excited to try this. So, as I!

Hope you found this post helpful – Big Shout out to SearchStax team for coming up with such a great solution.

Image Credits : SearchStax

%d bloggers like this: