We get a lot of questions about SEO with different types of platforms and which ones offer the most flexibility and more importantly, which ones help to deliver top rankings (see also our guide to SEO for Episerver). The response is always the same, it’s not the platform that delivers the great SEO but how you use it.
This is true of Sitecore in that it offers some great features out-of-the-box, but if SEO best practices aren’t in your specification or on your developer’s mind, then they can be easily missed and leave you with some issues that have a negative impact on your SEO. In this post, I list some best practices we have found whilst working with CMS platforms such as Sitecore over the past couple of years.
Sitecore does a great job in producing user friendly URLs, however there can be some traps you could fall into if you haven’t enabled the features in the relevant config files:
- Enable spaces to be replaced with hyphens
- Lower case your URLs
- Remove file extensions such as .ASPX
A simple item but one worth remembering is naming structures within a platform, this goes for your pages, folders and media items. They should all be sensible and contain human readable content along with identifiers. For example, uploading an image as 123.jpg means that someone has to preview the item before they can use it, however if you name the image “Branded3-office-internal.jpg” then CMS users can see at a glance that the image is a picture of the internal office and more importantly, so can search engines which means if you are using a lot of media assets you can become a good resource for other search engine services.
Internal linking of your content is a really important part of providing a great user journey and using some good template management within Sitecore, you can help deliver this without needing to manually add links throughout the site when you add something new. If you are producing content that sits within a nice hierarchy, the following items are something that supports your SEO, search bots crawling through your site will like it but also the end-user will find it easier to navigate.
A common feature of most sites is the breadcrumb feature and this is also something that supports SEO. Sitecore provides all of the details in the location of a page to allow a breadcrumb module to output the relevant location and links back to parent pages. Unfortunately, a breadcrumb module isn’t out-of-the-box so it’s something that needs to be developed as part of the templates.
Using a sub-navigation is standard method of supporting the journey and left-navs is something that usually gets implemented. As such, it’s worth creating a content template that includes a dynamically generated sub-nav, you should also consider options of how the page builds that sub nav either from its root section node or from its children down, either way, Sitecore gives you the properties to work with but they need placing in a relevant template.
XML sitemaps are primarily used by bots and search engines to guide them around the structure of your site. XML sitemaps are straightforward to generate from Sitecore however if you are working in a multi-site environment then you will need multiple XML Sitemaps therefore ensure that you specify a unique sitemap across each of you sites to maximise the effectiveness of submissions to search engines. This is usually done using a combination of a custom Sitecore template and a scheduled job to ensure its up to date.
HTML sitemaps are the output of your content tree for site visitors, in this instance the standard is a visual tree format showing the hierarchy of pages in relation to each other. A good Sitecore template will auto build this content for you on a schedule, one of the items noted below is the option to exclude a page from this process (such as campaign landing pages), definitely worth adding to your build.
Another good signal to search engines are video sitemaps, if you are producing a lot of quality media it’s certainly worth making a specific video xml sitemap. I would recommend placing your video and media files in a Sitecore object so that you can add supporting meta data to your video, this data will be included in the XML so that search engines can get an idea of what the content is.
By default there isn’t a robots.txt file in the system, therefore its always useful to create your own template that will render a response as text. By setting this up as a template it means that you or your SEO agency can manage its contents without needing developer intervention.
Multi-lingual installations (HREFLANG)
A key feature of Sitecore is its multi-lingual features, the approach to this can give you some great time savings and platform scalability depending on which route you take with it. The first route is to have a single site node for each language version site you are developing. The benefits of this approach are that you can have a completely unique configuration and content tree for each language, this means URLs, settings and permissions etc.
The second, and more common approach however, is to have a single site node with different language versions of your content, the benefit to this approach is that you have a consistent template structure, look and feel and a single focused user-journey. Management is as simple as translating all of your content in-line per page. There is a serious pitfall to this approach however that should be tackled before going to live, and that is that by default, your site will simply exist in multiple versions in different languages and search engines will see this as duplicate content, therefore it’s essential that hreflang tags are used to identify the alternative language versions of a site. There’s a guide to implementing the hreflang tag here.
Sitecore uses the Lucene Search Engine to index its content and provide good relevant results to your visitors when they search your content on-site. In order to get your site using the Lucene engine, there is certainly setup and configuration involved which is a bit out of scope for this post.
You have to create your results template, this should be content manageable so that if there are no results found you can change the message, it’s also worth considering some personalisation on this area so that if you know what they were searching for or what pages they visited, you could provide some logic around those and keep the user engaged.
If you have the potential to return a large number of results in search then pagination should be used to give a user-friendly method of getting through the lists and finding the right page. Again, this doesn’t come by default so you have to make sure the pagination is a template/module that your developers will include. An SEO-focused requirement from pagination is to include a canonical on paged results to a single page containing all results. This ensures you don’t get paged results entering the SERPs.
301 redirection module
If your site is a new site and replacing an existing one, then 301 redirection management is an essential part of the migration, we have a lot of experience in working on migration where this strategy maintains the domain authority, user journey and rankings.
The Sitecore marketplace features an easy-to-use 301 redirection module that you can update via the Sitecore interface. If you are dealing with a larger number of URL redirections then you may want to consider having a migration list of redirect powered via IIS7+ which means you wont have to manually enter them one by one.
One of the things when using a CMS system like Sitecore is that you can create reusable objects or pieces of content. This object-orientated approach means you can do a lot of clever things such as a create-once use many approach. When creating these objects there is a real benefit to using schemas which help to define what the object is e.g. people, places and products. To put this into context, something that appears on many websites is a store locator, in these instances we are using data regarding a physical location we can add mark-up around the HTML of the store details which search engines can recognise and use to categorise your content. This is the main site with definitions of HTML schemas in use by search engines. So with any object template, if possible, add schema mark-up to give your site a better definition on what it contains.
Schema – Authorship
One of the most interesting schemas of recent years is the authorship schema. This allows you to determine the actual person who wrote the content you are hosting to search engines. The mark-up is relatively simple (you can see an example of it in work by using a HTML inspector around my profile area on this post) and it involves linking to a verified Google+ account.
From a Sitecore perspective there are a couple of approaches to this, the first of which is to simple add a field to each of your content templates for “Author” that can be populated with the G+ account, then display this on the page when published either before or after the article. the second route is to give the author a bit more context and background by create a specific Author template object. The object can include a thumbnail, a small bio and links to other details of the author. Then when creating a new article or content piece simple insert the author object using the content editor into your page giving it all the details needed.
Media meta data
Sitecore has some nice features in the media gallery for storing meta data along with your media which is increasingly being used by search engines and social media platforms. These are great for using photos or images where you can include fields like Artist, Date the media file was created and description.
Template fields for Social Networks
We know social noise, shares and activity support SEO rankings so they should be included on your site. Social networks are increasingly using their own HTML meta fields to gather summary information for when a page appears in one of their feeds, as such if you are planning to engage with social networks and include sharing functionality on your pages its worth having the control to what the social networks will show. Twitter is using its Twitter cards, and Facebook uses Open graph tags.
Template fields items for SEO
This is not Sitecore specific but is always great to remember when implementing any CMS platform that will require management by non-technical template editing platform users.
- Header Includes
Output any raw text in this area in in the HTML <head> tag.
- Analytics Includes
Using this on the root node of the site means it can act like a tag manager, just enter all your script to include throughout the site.
- Body Includes
A place holder for content to output just after the opening <body> tag.
- Footer Includes
A place holder for content to be output just before the closing </body> tag.
- Meta Title – Self explanatory
- Meta Description – Self explanatory
- Meta Keywords (For older and non-Google based search engines)
- Meta Canonical
Essential if your site may have instances of duplicate content or if you include content that is used elsewhere on the web.
- Meta No-Index
this outputs the meta tag of no-index ideal if you have specific pages you don’t want crawled.
- Meta No-follow
- Exclude from XML Sitemap
You might not want to include pages in the submission to Search engines therefore having a mechanic to exclude them sitemaps is essential. E-commerce sites would find this useful this around the checkout process.
The majority of these items are common sense from the outside looking in, but when it comes to implementation of any CMS and something as advanced of Sitecore it’s key to get these things right form the go. Our SEO team has helped identify these best practices to give the best performing platform foundation and we include them on other CMS and ecommerce build projects wherever possible.