To avoid duplicate content web sites can make use of the canonical link. When pages for different languages/regions come into play there you can use the href
lang link in the HTML <head>
section to indicate similar content for other languages/regions (e.g., on product detail pages, content pages, catalog pages). These links can be enabled/disabled in the channel specific preferences.
The United States product page under http://myshop.com/en/products/yellow_sweater (en-us) may have the same content as the British pendant (en-gb). It is a good practice to use the <link>
element with a hreflang
attribute set for all languages to avoid duplicate content. So search engines provide language/region specific results and content is not regarded as duplicated.
<head> .. <link rel="alternate" hreflang="en-us" href="http://myshop.com/us/product/yellow_sweater" /> <link rel="alternate" hreflang="en-gb" href="http://myshop.com/uk/product/yellow_sweater" /> <link rel="alternate" hreflang="de-de" href="http://myshop.com/de/produkt/gelber_pullover" /> </head>
Link elements with the hreflang
attribute are placed in the <head>
section of HTML storefront pages. They are automatically created in all available languages on the following pages: product pages, catalog pages, content pages and the Store Finder page.
Use the Custom Link Rewriting to create links like:
Page | Custom Link |
---|---|
Product Detail |
|
Category Detail |
|
Content Page |
|
Any page |
pipeline://ViewStorefinder-Start?localeId=en_US&highlight=true
|
The appended parameter localeId
determines the locale of the created link.
There are four pipelets supporting the href lang link generation:
CreateProductHRefLangList
CreateCategoryHRefLangList
CreatePageHRefLangList
CreatePipelineHRefLangList
The created custom links can be rendered using the <islink link="#hreflang:link#>
module. Currently they are used in ViewStandardCatalog-Browse/Refresh
, ViewProduct-Start
, ViewContent-Start
and in ViewStoreFinder-Start/Search/Paging
.
The link element are currently rendered within the app_sf_responsive_cm/staticfiles/cartridge/templates/default/modules/cms/DefaultPageStructure.isml in dependence of the channel preference HRefLangEnabled
is true
or false
.