Partner at FTF. I have an unhealthy obsession with being considered the world's BEST internet marketer. I'm highly active on social media and love a good debate.
Demandware (aka Commerce Cloud) is an enterprise eCommerce management solution.
There’s a number of unique SEO challenges associated with Demandware, all of which our agency is familiar with from servicing dozens of clients who run on the platform.
This article will cover the most common Demandware SEO challenges we’ve come across and how to address them.
Our team of expert SEO consultants are standing by, ready to assist you if necessary. Drop us a line, let’s chat.
Category pages are incredibly important in eCommerce SEO because they satisfy a different search intent than a product page.
For example, say you’re searching Google to “buy protein powder”.
Even though you’re looking to buy, the intent behind that search is NOT to view a specific protein powder (i.e. a product page), but instead to browse various proteins (i.e. a category page).
When searching for “buy whey protein”, the SERP supports this – all results are category pages.
Now imagine you own a Demandware store that sells various types of protein supplements:
Your keyword research should identify that each of these has enough search demand to warrant it’s own product category page. For example:
Let’s say you carry 100 SKUs of whey protein powders – it’s a general best practice for user experience to “hide” more than 12 products on initial load.
Demandware gives you the option to “hide” some products in order to save on page load times, and then a visitor can “unhide” all products by clicking a “view all” button.
Upon clicking “view all”, Demandware will append ?viewAll=true to the end of the category page URL.
Since this is a crawl-able URL, this creates duplicate content issues on key category pages that need to be addressed.
On ?viewAll=true pages, you can add canonical tags pointing back to the root category page, or alternately you can block this URL parameter from being crawled outright via the robots.txt file (more on that later).
|<link rel=”canonical” href=”https://www.site.com/protein/whey-protein/” />|
These changes (along with targeted link outreach) provided a massive boost to our client’s category pages.
“Faceted navigation” refers to how your store filters and sorts products using a secondary navigation; usually housed within a sidebar.
Demandware’s faceted navigation appends parameters to URLs each time a new search filter is added.
Using our whey protein category page as an example, let’s say you want to filter by brand:
As you can see, &prefv1 was appended to the category page’s URL. This page alone has 40 options to refine the whey protein category, including sorting by:
Each of these serves up a different URL parameter, creating thousands of new URL variations, all indexable by Google.
If you don’t address this you will deplete valuable Googlebot crawl budgets on useless pages. On an enterprise eCommerce website with tens of thousands of products that need to be crawled, this will cause harmful indexation issues.
There’s 2 options:
Here at FTF, we use GSC’s URL parameter settings whenever possible because it allows us to implement the changes without burning programmer hours.
Below is a Demandware example we put together on behalf of a client:
You can then take these, add them into the URL Parameters report in GSC manually, and then set them to not be crawled:
NOTE: If these URLs have already been indexed by Google, we suggest using the “noindex” tag on all URLs that contain these parameters. Check the indexation in Google Search Console to verify once these pages have been removed from the index, then proceed with URL Parameters.
Let’s go back to the whey protein category page one more time .
When a visitor clicks on a product in your grid, the platform will append URL parameters based on the position of the product in the grid.
For example, if you click on the product in the first position, the URL will read:
Again, this will create Googlebot crawl traps – wasting your crawl budget on low quality URLs.
Use canonical URLs to point to the root product page. So for this instance, the canonical would read:
|<link rel=”canonical” href=”https://www.predatornutrition.com/whey-protein/predator-nutrition/predator-whey.html” />|
Whenever we crawl a new client’s website we always discover directories that are not useful for crawlers and search engines.
These directories can include:
These pages are carbon copies of the root page, creating [you guessed it] issues with duplicate content and wasted crawl budgets.
We recommend disallowing and “noindexing” /demandware.store/ and /demandware.static/ in your robots.txt file.
Below is a sample from our client’s file:
Internal links help distribute equity across your pages. Since Demandware has so many issues with URLs, it’s easy for the system to default to linking to the wrong version of a page.
A visualization done for an FTF client to show internal links across the site.
When we go back to the whey protein category page and click on the first result, you can see the page is linking to an appended product page URL.
While this URL is canonicalized, we’re losing some of that internal link equity being passed through.
You can see how Adidas fixed this issue on their site (they also run on Demandware):
Double check your page templates to ensure that all internal links are pointing to the absolute URLs. Once the template is updated, we suggest blocking the “?cgid=” parameter in your robots.txt file.
It’s SEO best practice for your site should deliver a 404 error for a page that’s not found. For some reason, almost every Demandware install we’ve seen defaults to a 302 redirect or a 301 redirect when a page is not found.
Default redirects to:
Which is a duplicate version of the home page.
Make sure to setup a custom 404 page on your site. A great example of a custom 404 page on Demandware is 1 800 Contacts. Their 404 page notifies users (and search engines) and distributes equity to key pages on the site.
Title tags are not only a ranking factor, but they influence a searcher’s click behavior.
It’s critical to create page title’s that capture keywords but also drive user action.
Demandware let’s you set default page titles and meta descriptions – take advantage of this. If you have thousands of products, it will save you a ton of time.
You’ll still want customize your titles, as sometimes the defaults can backfire if not periodically reviewed (see below).
Set default titles and metas.
We always suggest split testing page titles and metas to increase CTR in SERP, but for Demandware clients we insist on reviewing page titles for accuracy quarterly.
I didn’t want to give each of these their own section, but I did want to mention them as well.
We’ve discussed a lot of issues with Demandware URLs. This increases the importance of analyzing your site’s crawl budget using server log files.
This is not possible on Demandware. Commerce Cloud is a self hosted solution – they manage your data, code and hosting. Shared hosting means no access to server log files, making crawl optimization ….challenging.
You’ll need to be extra diligent using other tools (mainly GSC) to monitor your crawl.
Using uppercase letters in a URL can confuse search engines by causing duplication issues. While this isn’t a huge issue, we suggest getting out front of the issue to manage it.
Editing image ALT tags on Demandware is a ridiculously tedious process.
Work with your developers to see if they can automate image ALT tag creation.
Sometimes Demandware will generate long, ugly alternate homepage URLs. This will probably look familiar to you:
Identify these URLs and make sure you use 301 redirects pointing back to the root home page.
Commerce Cloud is a great solution for enterprise eCommerce management. However, it comes with a built in set of technical SEO challenges.
We strongly suggest evaluating the technical elements of your website quarterly with a fresh crawl.
If your website is too large for enterprise SEO crawlers, contact us, we’ve built a number of custom crawlers in Hadoop for clients.
Our data driven approach to keyword research.