0

As I know, by default, an item is accessible both via name and display name. This creates SEO issue because there is duplicate content. Is there a simple way to disable access via name or I need to hook the ItemResolver?

2

Usually this is just handled by adding canonical urls so Search engines know that the page is the same page even if referenced with upper/lowercase/displayname/trailing slash etc.

This is not a Sitecore specific thing though. This article describes this further and how to implement this for Sitecore depending on your scenario:

https://blog.mastykarz.nl/optimizing-sitecore-internet-search-engines-canonical-urls/

Simple MVC Helper method from above link:

public static System.Web.HtmlString CanonicalUrl(this Sitecore.Mvc.Helpers.SitecoreHelper sitecoreHelper) {
    Sitecore.Links.UrlOptions urlOptions = Sitecore.Links.LinkManager.GetDefaultUrlOptions();
    urlOptions.AlwaysIncludeServerUrl = true;

    string canonicalUrl = Sitecore.Links.LinkManager.GetItemUrl(Sitecore.Context.Item, urlOptions);

    return new System.Web.HtmlString(canonicalUrl);
}

Then to Render the link:

<link rel="canonical" href="@Html.Sitecore().CanonicalUrl()">

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.