Anindita Bhattacharya - Sitecore Solutions Architect
3 Apr 2021
Sitecore has a very robust language fallback feature built-in out-of-the-box. The ‘How’ - on how to turn on and effectively configure this feature is very well documented in Sitecore documentation here - https://doc.sitecore.com/developers/90/sitecore-experience-manager/en/enable-and-set-up-language-fallback.html.
In this blog post we will quickly cover the Why & When of using Fallback in Sitecore. To begin with, Sitecore allows us to configure a ‘Fallback Language’ for each language we add to our site.
If a particular piece of content or page does not exist in one of the languages your site is configured in, would you want the content or page to be displayed from a language-wise configured default language instead? If the answer here is no – you would not want to turn on fallback at all.
- If a page (say about-us) exists in the default language (say English), but doesn’t exist in the other languages (consider French in this case), while accessing the page in French, user will see a Page not found / 404 error.
- If the user searches for ‘About Us’ on the French site, they will see no results, even though the page exists in English.
- If a certain piece / section of content – say a datasource item of a component – is present in English but not in French, that component simply will not appear on the French page.
So, at this point, the client has decided that they DO want default language content to show up when the other language (in this case French) content is missing / not translated. The question now is – when should this default language content be shown?
Item level fallback kicks in, when there is no version of the item in the current site language.
- So, in our example, if a page (say about-us again) does not exist in French, having item level fallback enabled, will result in the English page being served up while accessing the French url.
- If a component datasource – does not have a French version, but it exists in the presentation of a French page, that component will show English data – provided item level fallback is enabled on this datasource item / template. A word of caution here – having multi-lingual text on a given page is rarely a good idea, and might have detrimental SEO implications as well.
- As for search, you WILL see English results on your French search results page if you searched for a suitable search term from an English page – for which there is no corresponding French version. You do have an option to change this behavior though – refer to my note below on Enforce Version Presence.
An important note here first – Sitecore suggests that you should not use both item and field level fallback on the same item because it makes it difficult to maintain an overview of the versions that different items and fields fall back to. This being said, enabling field level fallback will only default unset fields to the corresponding fallback language version field.
I have found this to be most useful in media field types – in situations where the clients are very sure they don’t want default language text showing up on a specific language website, but they would like images & videos, etc to utilize fallback. Field level fallback can be applied to all the languages of an item, or it could also be enabled on specific languages – using the ‘Enable versioned field level fallback’ toggle. The last note here, is about the Enforce Version Presence. This toggle makes sure that the relevant translated language version of the item must be available for it to be displayed on the site.
Anindita is a 7-time Sitecore MVP and has been working on Sitecore since 2013. She has worked in various roles on Sitecore projects, from being an individual contributor to a Solution architect, and enjoys being close to the code! She is the founder/co-organizer of Sitecore User Groups in Bangalore & Mumbai and is actively involved in the Sitecore community. She has over 14 years of experience in .NET technologies and is passionate about learning and keeping up with technology.