Optimising Demandware for search
I have carried out various technical audits on sites which use the Demandware platform and have compiled a list of a few key themes and potential pitfalls to SEO it may be worth looking out for if you are considering using it or even currently use it!
1. Canonical product URLs
When accessing product pages on Demandware sites there is often a parameter appended to the end of the product URL.
Using the brand Ecco as an example, the product page for the women’s “trace lite” boot can be found via:
Women > Shoes > View All
Women > Shoes > Warm Boots
However, the difference is that although both of these products are exactly the same, they reside on different URLs.
https://shopeu.ecco.com/uk/en/ecco/ecco-trace-lite_4137191/4139300?navId=316
https://shopeu.ecco.com/uk/en/ecco/ecco-trace-lite_4137191/4139300?navId=182
You will notice that the navid= parameter has been added to each of these URLs. Navid appears to be related to category type, as for example all of the product URLs that sit within the “women’s warm boots” category have the “navid=316” parameter added to the end of the URL.
A similar problem also exists on Clarins whereby a “?start=” parameter is appended to product page URLs. This parameter relates to the grid position of each product on the page i.e:
Given the constantly changing page position of products week to week, you can see why this parameter has the potential to create a large amount of duplicate pages. Although the “daily energizer kit” URL is currently situated at:
https://www.clarins.co.uk/daily-energizer-kit—all-skin-types–age-20–/0191584.html?start=1
Once a new product is added to the “cleansers and toners” page, this product will be moved into position 2, and henceforth the new URL will be:
https://www.clarins.co.uk/daily-energizer-kit—all-skin-types–age-20–/0191584.html?start=2
The solution
The best solution here would be to remove these parameters from being required on each product page. However this could be quite a long term fix. The best immediate recommendation would be to introduce the canonical tag to product pages.
Using the Ecco shoes example the correct canonical reference would be:
<link rel=canonical href="https://shopeu.ecco.com/uk/en/ecco/ecco-trace-lite_4137191/4139300"/>
2. Faceted navigation
The faceted navigation on many Demandware sites is one of the main causes of poor crawl performance. Each search filter adds another parameter to the URL, creating a ‘new’ near-duplicate URL. Given the way that the parameters can be stacked, Googlebot may crawl an extremely high number of duplicate URLs if not supervised.
If undesirable URLs are being indexed it can mean various things:
1. They are being crawled
2. Google is interpreting the current signals as showing the page is important enough to be included in the index.
Pmin and Pmax
These parameters are related to price. Using the example of Sally Beauty, when on the “brow makeup” page, I have the option of being able to filter products according to their price range.
When I do so, the resulting URL looks something like this:
https://www.sallybeauty.com/eyebrow-care/Cosm02-02,default,sc.html?pmin=0&pmax=10
A quick site search shows that there are over 1 million instances of indexed “pmin” URLs alone.
The solution
These parameters are not needed to access content – all products can be viewed via the “view all” option at the top of the page.
Blocking them would, therefore, result in a big improvement to crawl efficiency on sallybeauty.com. I would therefore recommend utilising the “noindex” robots meta tag on URLs which contain these parameters. Once the pages have fallen out of the index disallowing both pmin and pmax in robots.txt is recommended.
Disallow: /*pmin
Disallow: /*pmax
Prefn and Prefv1
“prefn” and “prefv” parameters control the majority of the faceted navigation on Sally Beauty. For example if I am on the “eye makeup” page, and select one of the filters, e.g brand (andrea), then I am presented with a prefn/v related URL:
https://www.sallybeauty.com/eye-cosmetics/Cosm02,default,sc.html?prefn1=brand&prefv1=ANDREA
Currently the robots.txt file on sallybeauty.com excludes prefn2+ parameters, and prefv2+ parameters but contains no reference to prefn1/prefv1.
The solution
These parameters are not needed to access content – again, all products can be viewed via the “view all” option at the top of the page.
It is recommended to use the “noindex” robots metatag on URLs which contain these parameters. Once the pages have fallen out of the index, disallowing both prefn1 and prefv1 in robots.txt is recommended.
Disallow: /*prefn1
Disallow: /*prefv1
The only other drawback here may be the fact that brands can only be accessed via the faceted navigation – i.e there are no static pages for brands. Blocking these two parameters essentially means that you will also be blocking the closest thing to brand pages on the site. As such it would also be recommended to create static brand pages which display all of the products available from each line.
For example:
https://www.sallybeauty.com/brand/bathsecrets
Side note: Faceted Navigation parameters will vary on a case by case basis according to the site. Many sites may use the prefn/v parameters or similar to create impromptu category pages for email marketing and other promotions. So you may want to exercise caution before deciding to block them.
3. Clean homepage URLs
After investigation of a number of different demandware sites it has become clear that the homepage URL can sometimes be an issue. Using the example of Crocs we can see that the homepage can be accessed via two different URLs
https://www.crocs.com/on/demandware.store/Sites-crocs_us-Site/default/Home-Show
https://www.crocs.com/
As you can see, the first of these URLs is directly related to the Demandware store. With so many inbound and outbound links pointing to and from the homepage it is necessary to keep the URL clean.
Not to mention the issue of duplicate content that is created when the homepage can be accessed through two URLs. This issue distributes the page’s link equity (it is shared between the two URLs), thus diluting the SEO effects on the homepage.
Barneys.com is another retailer that encounters this problem, however currently the URL https://www.barneys.com 302 redirects to the demandware store URL:
https://www.barneys.com/on/demandware.store/Sites-BNY-Site/default/Home-Show
The issue is further amplified when you realise that this URL structure carries across to all of the category/product pages on the website, for example:
Women’s Clothing:
https://www.barneys.com/on/demandware.store/Sites-BNY-Site/default/Search-Show?cgid=womens-clothing
Penguin Neck Tie Product:
https://www.barneys.com/on/demandware.store/Sites-BNY-Site/default/Product-Show?pid=00505033709147&cgid=mens-ties&index=0
These dynamic URLs are not ideal, from an SEO standpoint URLs should be meaningful. Static URLs are recommended as they are generally more user friendly and will contain sets of relevant keywords.
The solution
In the case of Crocs the default homepage URL should be:
https://www.crocs.com/
A 301 redirect that points to this clean URL should be placed on the duplicate https://www.crocs.com/on/demandware.store/Sites-crocs_us-Site/default/Home-Show Demandware URL.
With regard to the Barneys issue, removing the 302 redirect from barneys.com is recommended, followed by making this URL the default homepage URL, whilst 301 redirecting the demandware.store URL to it.
Clean static URLs for each category and product page should then be written, for example:
Women’s Clothing Category:
https://www.barneys.com/women/clothing
Penguin Neck Tie Product Category:
https://www.barneys.com/penguin-neck-tie.html
All subsequent demandware.store URLs should then be 301 redirected to their newly rewritten counterparts.