Updated on August 22nd, 2019, to include new examples and insights.

I’ve been seeing a lot of e-commerce brands moving to Salesforce Commerce Cloud (SFCC) these days. When I first heard about SFCC, it seemed like the brand came out of nowhere. It didn’t though, it’s just good old Demandware but rebranded after Salesforce acquired it in 2016.

It’s not hard to see why large retailers are moving to Salesforce Commerce Cloud and away from their old self-hosted Magento carts. It’s fast, flexible, and hosted in the cloud. It’s a pretty good system as far as enterprise CMSs go, and it’s backed by the cloud CRM juggernaut.

There are problems with the CMS though. For SEO, it’s still Demandware running under the hood. The funky SEO problems that have always pestered digital marketers working on Demandware are still present, and Salesforce hasn’t done everything they can to fix them. That’s why this article, as a rewrite of Ian’s original from 2012, covers much of the same ground but with some new tips thrown in.

Easy SEO Wins for Salesforce Commerce Cloud

If you or your web management team maintains Salesforce Commerce Cloud, you will likely find at least one of these optimizations helpful to you:

Use Default Values for Titles and Let Users Overwrite Them in the CMS.

There’s an enigmatic problem that occurs for pages that don’t have tags defined in SFCC, and it happens for quite a few brands. SFCC uses strings like “Sites-SiteId-Site” as placeholder text for things that aren’t defined. Without using a safe default, your pages could end up like this in the SERPs:

Screenshot showing SFCC placeholder title in SERP

Check Error HTTP Status Codes.

It looks like SFCC is defaulting to 410 status codes instead of 404 for pages that don’t exist. Which is fine, Google uses them the same way. However, I’m also seeing brands returning incorrect status codes or directing to their homepage. Here are some examples of “soft 404s.” Search engines don’t like it, so don’t make the same mistakes:

Make sure your site is returning a 410 or 404 HTTP status code for your error page, and while you’re at it, make it a good-looking and helpful custom 404 page.

Use Canonical Tags and Make Sure They Have URLs.

Demandware did a weird thing where it would add junk query parameters to product page URLs on its product listing pages (PLPs). The legacy lives on with SFCC, and we will need our canonical tags set to keep incorrect URLs out of search engines.In this screenshot, you can see that Hibbett Sports has PLPs that link to products with junk parameters in the URL. Luckily, their canonical tags are correct, and Google’s index is correct, but they shouldn’t have links like these.

Screenshot showing PLPs with junk parameters in the URL

Use Automatically Generated XML Sitemaps.

Run the sitemap job in the middle of the night, or when your conversion rate is the lowest. Salesforce Commerce Cloud has a feature for automatically generating XML sitemaps on a schedule, and it’s a feature I like very much.Unfortunately, there are websites out there not using this feature and they are doing themselves a great disservice. You can check your site by checking the sitemap index at /sitemap_index.xml and looking at the “Lastmod” date. If the date is far too long ago to be relevant, you probably aren’t running the sitemap job on a schedule.

Screenshot showing SFCC sitemap schedule

Depending on the size of your site, this job can take hours to complete and consume significant server resources. That’s why you should schedule this to run when your customers aren’t shopping.

Screenshot showing SFCC consumer activity graph

Automate image ALT Attributes.

Automate image ALT attributes. If at all possible, use the name of the product as the image ALT text when you’re importing products. If you can’t, at least make sure your product images are getting ALT attributes set when you’re adding new products to the CMS. If you want to get technical, have your developer make product images default to the product name when there is no value in the CMS.

What you want to avoid are blank, or nonsense alt attributes, like this SKU:

Screenshot of a PLP with a nonse SKU alt attribute

Site Speed Optimization

Site speed isn’t just an SEO factor; it’s an everything factor. We repeat that to the point of cliche on this blog, and we’ll probably keep repeating it until we’re dead because it’s important. If you want to get the best rankings, conversion rate, repeat customers, lower bounce rate, and so on, your website must be blazing fast.

Minify Your HTML, CSS, and JavaScript.

Somehow HTML generated by SFCC uses far too much whitespace. Why inflate your total page size with nothing of any value?

Screenshot showing HTML whitespace in SFCC

Luckily for you and everyone visiting your site, there is a built-in feature to auto-minify HTML, CSS and JS. It says optional, but in a better world this would be default.

Compress Your Images to Make Them as Small as Necessary.

Compress your images to make them as small as necessary. I don’t mean as small as possible, that would look terrible. There needs to be a balance. We all want brilliant, high-quality images of the products we’re selling, but no one wants to wait around for a 2 MB image to download on a 3G mobile connection.

Screenshot showing a list of uncompressed image sizes

What we’re aiming for is a smart application of image compression that makes images as small as they can go before sacrificing quality. We have an in-depth post about this in our Ultimate Guide to Page Speed. Ideally, you would be optimally compressing your images before uploading them.

If it’s not feasible to reupload optimized images immediately, SFCC has a built-in feature for image compression you can use. It’s not great because it’s not targetable and there’s no control over the type of compression used. Use it as a stop-gap measure but never a long-term solution, no matter what anyone tries to tell you.

Use Inline CSS and JavaScript for Rendering Above the Fold.

Put everything else in an external file. You want to inline the code that’s critical for rendering the content users will see first. It helps users, and it yields better scores in Google’s site page speed tools.

What you don’t want is blocks of code, hundreds of lines long, buried deep in page source:

Screenshot showing blocks of code buried deep in page source

Use Lazy-loading for Your Images

Use lazy-loading for your images. Does a browser need to download an image before users can see it? For most images, the answer is no. You can seize even faster page load times when you let your pages tactically postpone image requests. It’s a neat trick, and we go into the technique more in our Ultimate Guide to Page Speed (yet again.)

Tougher Stuff

These optimizations are harder. They’re technical, they require a developer to implement, but they have huge payoffs if you invest. Be advised; I’m also going full technical SEO nerd in this section.

Use Friendly URLs in Faceted Navigation.

Back in the Demandware days, there was a decision made to inflate the number of product listing page filter URLs to the point of absurdity. Such a thing looks like this, and it’s only for three PLP filters:

https://www.billabong.com/new-mens//?prefn1=product_category&prefn2=refinementColor&prefv3=L%2FXL&srule=high-to-low&sz=48&start=0&prefv1=Hats%20%26%20Beanies&prefv2=bleu&prefn3=size

Each product filter a user applied to a PLP adds 1-2 query parameters with names like “prefn1,” “prefv2,” “pmax,” and “srule.” Combine those parameters with the number of filters and options you have, and you have a major crawl budget problem.

The solution to this is to form nice looking URLs for sets of filter combinations. This accomplishes a few goals for tackling faceted navigation problems:

  • The URLs become human-readable and descriptive
  • We can separate the URLs we want to index from those we don’t
  • The URLs we keep in the index are now landing pages for long-tail queries

Here’s an illustration: which of these URLs is best equipped to compete for the term “men’s grey running shoes?” Each is using Salesforce Commerce Cloud, and they’re using basically the same filters:

My bet’s on adidas to win this race. It’s concise, readable, keyword-relevant, and fully displayable in a search snippet. The New Balance URL is a mess, but it contains “men,” “running,” and “grey.” Puma looks pretty good, but the URL fragment trick they’re using to manage their crawl budget cuts off the filter for the color grey.

Since Google ignores everything after the hash sign (#) in a URL, Puma is missing out on copious long-tail traffic. If they just formatted their URLs more like adidas, they could have landing pages targeting queries for men’s grey running shoes, women’s grey running shoes, black, white, red, etc.

Keep API URLs Out of the Index.

It’s surprisingly easy for Salesforce Commerce Cloud developers to link to URLs like /on/demandware.store/Sites-SiteId-Sites/default/SomeAPICall, and they shouldn’t.

These URLs aren’t pages. They’re hooks for executing scripts on the backend for doing things like logging in or showing the contents of a shopping cart. Because they’re not real pages, letting Google find them wastes crawl budget and could create a thin content issue.

Screenshot showing API URLs in SERPs

The go-to solution I see happening the most often is adding lines to robots.txt that look like Disallow: /on/demandware.store, and it’s incorrect. You cannot use robots.txt to remove things from the index.

Control the search index the right way with either of these approaches:

  • Don’t link to API endpoint URLs
  • Configure SFCC to add X-Robots-Tag: noindex, nofollow to the HTTP response headers for these URLs

Find Instances of “Sites-SiteId-Site” in Content and Fix Them.

In an earlier recommendation, I said you need to set default page titles to prevent this from showing up inside . This string can show up in all sorts of places users can see: H1s, meta descriptions, content, navigation, and so on.</p> <p>Each instance of this <a href="https://www.portent.com/blog/internet-marketing/searchlove-london-2015-the-links.htm" rel="noopener noreferrer nofollow" target="_blank">takes you further away from perfect</a>. It’s a bad code smell that indicates there are other issues you need to address to <a href="https://www.portent.com/blog/internet-marketing/stack-infrastructure.htm" rel="noopener noreferrer nofollow" target="_blank">get your infrastructure in line</a>. To quickly hunt down “Sites-SiteId-Site” problems get your SiteId from a developer or CTRL-F for “siteid” in your page source code. Then do this search in Google: </p> <p><img alt="Screenshot showing how to search for your Site Id in Google" data-src="https://www.portent.com/images/2src19/src9/GoogleSiteID.png" data- height="114" width="456"></img></p> <p>Since the string is like a default error value, it can show up in weird places. Be aware, however “Site-SiteId-Site” is in each API call URL and is not a problem. Doing a search over page source to find this will result in a lot of false positives.</p> <h2>Salesforce Commerce Cloud is Pretty Good</h2> <p>Flexibility is a double-edged sword. The possibilities that cause so many SEO problems in SFCC also make it capable of incredible customization. Overall, I like it significantly more than other enterprise CMSs out there. I would use SFCC if I were a big retailer.</p> <p>Part of why I like SFCC so much is familiarity. We’ve been working on Demandware/SFCC websites for a long time and its quirks are well-understood. <a href="https://www.clearlink.com" rel="noopener noreferrer nofollow" target="_blank">Our Mothership</a> even has a dedicated e-commerce team that works on SFCC frequently.</p> <p>The other part is that we like solving gnarly problems. If you have a vexing SEO issue with Salesforce Commerce Cloud, hit us with it. We’ll help you untangle.</p> </div> <p><a href="https://www.portent.com/blog/seo/demandware-seo-gotchas-and-best-practices.htm" class="button purchase" rel="nofollow noopener" target="_blank">Read More</a></p> <!--themify_builder_content--> <div id="themify_builder_content-6430" data-postid="6430" class="themify_builder_content themify_builder_content-6430 themify_builder tf_clear"> </div> <!--/themify_builder_content--> </div><!-- /.entry-content --> </div> <!-- /.post-content-inner --> </div> <!-- /.post-content --> </article> <!-- /.post --> <div class="post-nav tf_box tf_clearfix"> <span class="prev tf_box"><a href="https://themercen.com/seo/tools/4-obstacles-to-automation-get-over-them-now/" rel="prev"><span class="arrow"></span> 4 Obstacles to Automation – Get Over Them Now</a></span><span class="next tf_box"><a href="https://themercen.com/seo/today-in-security-knob-old-scams-are-brand-new-again-0-days-backdoors-and-more/" rel="next"><span class="arrow"></span> Today in Security: KNOB, Old Scams Are Brand-new Again, 0-days, Backdoors, and More</a></span> </div> <!-- /.post-nav --> <div class="related-posts tf_clearfix"> <h4 class="related-title">Related Posts</h4> <article class="post type-post tf_clearfix"> <figure class="post-image tf_clearfix"> <a href="https://themercen.com/seo/ebay-now-uses-computer-system-vision-to-remove-product-image-backgrounds/"> <img src="data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22394%22%20height%3D%22330%22%3E%3Cg%20fill%3D%22%23b0a386%22%3E%3Crect%20width%3D%22131%22%20height%3D%22110%22%2F%3E%3Crect%20width%3D%22131%22%20height%3D%22110%22%20fill%3D%22%23b0a185%22%20x%3D%22131%22%2F%3E%3Crect%20width%3D%22131%22%20height%3D%22110%22%20fill%3D%22%23ac9c82%22%20x%3D%22262%22%2F%3E%3Crect%20width%3D%22131%22%20height%3D%22110%22%20fill%3D%22%23ad9c7f%22%20y%3D%22110%22%2F%3E%3Crect%20width%3D%22131%22%20height%3D%22110%22%20fill%3D%22%23b1a587%22%20x%3D%22131%22%20y%3D%22110%22%2F%3E%3Crect%20width%3D%22131%22%20height%3D%22110%22%20fill%3D%22%23b2a488%22%20x%3D%22262%22%20y%3D%22110%22%2F%3E%3Crect%20width%3D%22131%22%20height%3D%22110%22%20fill%3D%22%23ab9b80%22%20y%3D%22220%22%2F%3E%3Crect%20width%3D%22131%22%20height%3D%22110%22%20fill%3D%22%23ab9b81%22%20x%3D%22131%22%20y%3D%22220%22%2F%3E%3Crect%20width%3D%22131%22%20height%3D%22110%22%20fill%3D%22%23b4d4e9%22%20x%3D%22262%22%20y%3D%22220%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E" loading="lazy" data-lazy="1" decoding="async" data-tf-src="https://themercen.com/wp-content/uploads/2020/03/7386/ebay-now-uses-computer-system-vision-to-remove-product-image-backgrounds-1024x507-394x330.png" width="394" height="330" class="tf_svg_lazy wp-post-image wp-image-7387" title="ebay-now-uses-computer-system-vision-to-remove-product-image-backgrounds.png" alt="eBay now uses computer system vision to remove product image backgrounds"><noscript><img data-tf-not-load src="https://themercen.com/wp-content/uploads/2020/03/7386/ebay-now-uses-computer-system-vision-to-remove-product-image-backgrounds-1024x507-394x330.png" width="394" height="330" class="wp-post-image wp-image-7387" title="ebay-now-uses-computer-system-vision-to-remove-product-image-backgrounds.png" alt="eBay now uses computer system vision to remove product image backgrounds"></noscript> </a> </figure> <div class="post-content"> <p class="post-meta"> <span class="post-category"><a href="https://themercen.com/category/seo/" rel="tag" class="term-seo">SEO</a></span> </p> <h4 class="post-title entry-title"><a href="https://themercen.com/seo/ebay-now-uses-computer-system-vision-to-remove-product-image-backgrounds/">eBay now uses computer system vision to remove product image backgrounds</a></h4> <div class="entry-content"> </div><!-- /.entry-content --> </div> <!-- /.post-content --> </article> <article class="post type-post tf_clearfix"> <figure class="post-image tf_clearfix"> <a href="https://themercen.com/seo/chiropractor-seo-google-my-business/"> <img src="data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22394%22%20height%3D%22330%22%3E%3Cg%20fill%3D%22%23e2dedf%22%3E%3Crect%20width%3D%22131%22%20height%3D%22110%22%2F%3E%3Crect%20width%3D%22131%22%20height%3D%22110%22%20fill%3D%22%23d8d7d5%22%20x%3D%22131%22%2F%3E%3Crect%20width%3D%22131%22%20height%3D%22110%22%20fill%3D%22%23d9d9d9%22%20x%3D%22262%22%2F%3E%3Crect%20width%3D%22131%22%20height%3D%22110%22%20fill%3D%22%23009caa%22%20y%3D%22110%22%2F%3E%3Crect%20width%3D%22131%22%20height%3D%22110%22%20fill%3D%22%230094a8%22%20x%3D%22131%22%20y%3D%22110%22%2F%3E%3Crect%20width%3D%22131%22%20height%3D%22110%22%20fill%3D%22%23056854%22%20x%3D%22262%22%20y%3D%22110%22%2F%3E%3Crect%20width%3D%22131%22%20height%3D%22110%22%20fill%3D%22%23eaeaea%22%20y%3D%22220%22%2F%3E%3Crect%20width%3D%22131%22%20height%3D%22110%22%20fill%3D%22%23e1e0de%22%20x%3D%22131%22%20y%3D%22220%22%2F%3E%3Crect%20width%3D%22131%22%20height%3D%22110%22%20fill%3D%22%23e6e6e6%22%20x%3D%22262%22%20y%3D%22220%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E" loading="lazy" data-lazy="1" decoding="async" data-tf-src="https://themercen.com/wp-content/uploads/2020/03/7382/chiropractor-seo-google-my-business-1024x625-394x330.jpg" width="394" height="330" class="tf_svg_lazy wp-post-image wp-image-7383" title="chiropractor-seo-google-my-business.jpg" alt="Chiropractor SEO: Google My Business"><noscript><img data-tf-not-load src="https://themercen.com/wp-content/uploads/2020/03/7382/chiropractor-seo-google-my-business-1024x625-394x330.jpg" width="394" height="330" class="wp-post-image wp-image-7383" title="chiropractor-seo-google-my-business.jpg" alt="Chiropractor SEO: Google My Business"></noscript> </a> </figure> <div class="post-content"> <p class="post-meta"> <span class="post-category"><a href="https://themercen.com/category/seo/" rel="tag" class="term-seo">SEO</a></span> </p> <h4 class="post-title entry-title"><a href="https://themercen.com/seo/chiropractor-seo-google-my-business/">Chiropractor SEO: Google My Business</a></h4> <div class="entry-content"> </div><!-- /.entry-content --> </div> <!-- /.post-content --> </article> <article class="post type-post tf_clearfix"> <div class="post-content"> <p class="post-meta"> <span class="post-category"><a href="https://themercen.com/category/seo/" rel="tag" class="term-seo">SEO</a></span> </p> <h4 class="post-title entry-title"><a href="https://themercen.com/seo/news-post-a-new-metric-2/">News Post: A New Metric</a></h4> <div class="entry-content"> </div><!-- /.entry-content --> </div> <!-- /.post-content --> </article> </div> <!-- /.related-posts --> <div id="comments" class="commentwrap tf_clearfix"> <div id="respond" class="comment-respond"> <h3 id="reply-title" class="comment-reply-title">Leave a Reply <small><a rel="nofollow" id="cancel-comment-reply-link" href="/seo/salesforce-commerce-cloud-seo-gotchas-and-optimizations/#respond" style="display:none;">Cancel reply</a></small></h3><form action="https://themercen.com/wp-comments-post.php" method="post" id="commentform" class="comment-form" novalidate><p class="comment-notes"><span id="email-notes">Your email address will not be published.</span> <span class="required-field-message">Required fields are marked <span class="required">*</span></span></p><p class="comment-form-comment"><label for="comment">Comment <span class="required">*</span></label> <textarea id="comment" name="comment" cols="45" rows="8" maxlength="65525" required></textarea></p><p class="comment-form-author"><label for="author">Name <span class="required">*</span></label> <input id="author" name="author" type="text" value="" size="30" maxlength="245" autocomplete="name" required /></p> <p class="comment-form-email"><label for="email">Email <span class="required">*</span></label> <input id="email" name="email" type="email" value="" size="30" maxlength="100" aria-describedby="email-notes" autocomplete="email" required /></p> <p class="comment-form-url"><label for="url">Website</label> <input id="url" name="url" type="url" value="" size="30" maxlength="200" autocomplete="url" /></p> <p class="comment-form-cookies-consent"><input id="wp-comment-cookies-consent" name="wp-comment-cookies-consent" type="checkbox" value="yes" /> <label for="wp-comment-cookies-consent">Save my name, email, and website in this browser for the next time I comment.</label></p> <p class="form-submit"><input name="submit" type="submit" id="submit" class="submit" value="Post Comment" /> <input type='hidden' name='comment_post_ID' value='6430' id='comment_post_ID' /> <input type='hidden' name='comment_parent' id='comment_parent' value='0' /> </p><p style="display: none;"><input type="hidden" id="akismet_comment_nonce" name="akismet_comment_nonce" value="85216d2870" /></p><p style="display: none !important;"><label>Δ<textarea name="ak_hp_textarea" cols="45" rows="8" maxlength="100"></textarea></label><input type="hidden" id="ak_js_1" name="ak_js" value="85"/><script>document.getElementById( "ak_js_1" ).setAttribute( "value", ( new Date() ).getTime() );</script></p></form> </div><!-- #respond --> </div> <!-- /.commentwrap --> </main> <!-- /content --> <aside id="sidebar" class="tf_box" itemscope="itemscope" itemtype="https://schema.org/WPSidebar"> <div id="custom_html-2" class="widget_text widget widget_custom_html"><h4 class="widgettitle">​Your Online Business Made Easy Finally, everything you need, all in one place!</h4><div class="textwidget custom-html-widget"><a href="https://shareasale.com/r.cfm?b=714568&u=1299554&m=41388&urllink=&afftrack="><img src="data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%27254%27%20height%3D%27133%27%20fill%3D%27rgba%28255%2C255%2C255%2C.2%29%27%3E%3Crect%20width%3D%27100%25%27%20height%3D%27100%25%27%2F%3E%3C%2Fsvg%3E" loading="lazy" data-lazy="1" class="tf_svg_lazy" decoding="async" width="254" height="133" data-tf-src="http://themercen.com/wp-content/uploads/2019/08/254-x-133.jpg"><noscript><img data-tf-not-load src="http://themercen.com/wp-content/uploads/2019/08/254-x-133.jpg"></noscript></a></div></div><div id="dws_advanced_silo-3" class="widget widget_dws_advanced_silo"></div><div id="custom_html-6" class="widget_text widget widget_custom_html"><h4 class="widgettitle">Fastest & The Most Secure Hosting PREMIUM OFFER</h4><div class="textwidget custom-html-widget"><a href="https://shareasale.com/r.cfm?b=714568&u=1299554&m=41388&urllink=&afftrack="><img src="data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%27250%27%20height%3D%27250%27%20fill%3D%27rgba%28255%2C255%2C255%2C.2%29%27%3E%3Crect%20width%3D%27100%25%27%20height%3D%27100%25%27%2F%3E%3C%2Fsvg%3E" loading="lazy" data-lazy="1" class="tf_svg_lazy" decoding="async" data-tf-src="http://themercen.com/wp-content/uploads/2022/08/wpengine.png" width="250" height="250" border="0"><noscript><img data-tf-not-load src="http://themercen.com/wp-content/uploads/2022/08/wpengine.png" width="250" height="250" border="0"></noscript></a></div></div> </aside> <!-- /#sidebar --> </div> </div><!-- /body --> <div id="footerwrap" class="tf_box tf_clear "> <footer id="footer" class="tf_box pagewidth tf_scrollbar tf_rel tf_clearfix" itemscope="itemscope" itemtype="https://schema.org/WPFooter"> <div class="back-top tf_textc tf_clearfix back-top-float back-top-hide"><div class="arrow-up"><a aria-label="Back to top" href="#header"><span class="screen-reader-text">Back To Top</span></a></div></div> <div class="main-col first tf_clearfix"> <div class="footer-left-wrap first"> <div class="footer-logo-wrapper tf_clearfix"> <div id="footer-logo"><a href="https://themercen.com" title="Increase Traffic from The Internet | TheMercen®"><span>Increase Traffic from The Internet | TheMercen®</span></a></div> <!-- /footer-logo --> </div> </div> <div class="footer-right-wrap"> <div class="footer-nav-wrap"> <ul id="footer-nav" class="footer-nav"><li id="menu-item-4339" class="menu-item-page-4337 menu-item menu-item-type-post_type menu-item-object-page menu-item-4339"><a href="https://themercen.com/about/">About</a></li> <li id="menu-item-4340" class="menu-item-page-4333 menu-item menu-item-type-post_type menu-item-object-page menu-item-4340"><a href="https://themercen.com/privacy-policy/">Privacy Policy</a></li> <li id="menu-item-4341" class="menu-item-page-4334 menu-item menu-item-type-post_type menu-item-object-page menu-item-4341"><a href="https://themercen.com/terms-of-use-agreement/">Terms of Use Agreement</a></li> </ul> </div> <!-- /.footer-nav-wrap --> <div class="footer-text tf_clear tf_clearfix"> <div class="footer-text-inner"> <div class="one">© <a href="https://themercen.com">Increase Traffic from The Internet | TheMercen®</a> 2023</div><div class="two">All Rights Reserved. <br> Copyright © 2022 | The Mercen</div> </div> </div> <!-- /.footer-text --> </div> </div> <div class="section-col tf_clearfix"> <div class="footer-widgets-wrap"> <div class="footer-widgets tf_clearfix"> <div class="col3-1 first tf_box tf_float"> <div id="custom_html-3" class="widget_text widget widget_custom_html"><h4 class="widgettitle">Google Partner</h4><div class="textwidget custom-html-widget"><a href="/about/" rel="nofollow noopener" target="_blank"><img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-lazy="1" class="tf_svg_lazy" decoding="async" data-tf-src="https://lh5.googleusercontent.com/O0yK_a2qjfxOM85Ny1Lz7qeY3NErVHvC0uhlsPG0VijJKvpQKoR1y-pN6JzTyLXe9_m0pePEWwGrf5JB4EF-73oH68aaEUpIFA4Dme2d6XcbBdok2Ckp4w-ua95PbjRaY2wSEijS" width="123" height="45" /><noscript><img data-tf-not-load src="https://lh5.googleusercontent.com/O0yK_a2qjfxOM85Ny1Lz7qeY3NErVHvC0uhlsPG0VijJKvpQKoR1y-pN6JzTyLXe9_m0pePEWwGrf5JB4EF-73oH68aaEUpIFA4Dme2d6XcbBdok2Ckp4w-ua95PbjRaY2wSEijS" width="123" height="45" /></noscript></a></div></div> </div> <div class="col3-1 tf_box tf_float"> <div id="custom_html-5" class="widget_text widget widget_custom_html"><h4 class="widgettitle">S.I.A. Member</h4><div class="textwidget custom-html-widget"><a href="/about/"><img src=http://themercen.com/wp-content/uploads/2019/11/seointelligenceagency-member.gif></a></div></div> </div> <div class="col3-1 tf_box tf_float"> <div id="custom_html-4" class="widget_text widget widget_custom_html"><h4 class="widgettitle">Upwork Top Rated Agency</h4><div class="textwidget custom-html-widget"><a href="/about/"><img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" data-lazy="1" class="tf_svg_lazy" decoding="async" data-tf-src="https://lh3.googleusercontent.com/8b9KNzacOekscwoNhaK_apYIReWILvyJ0WeKMSSsvnPNbBSCRjm7CyG8v39_fsCGDmrCNqtcq_3wTPd6MCipZWJzpk9EMwo5izoNJzelz7wNgF_m-fvtAj6yHo3q5yyjCmOV-U6l" width="96" height="41" /><noscript><img data-tf-not-load src="https://lh3.googleusercontent.com/8b9KNzacOekscwoNhaK_apYIReWILvyJ0WeKMSSsvnPNbBSCRjm7CyG8v39_fsCGDmrCNqtcq_3wTPd6MCipZWJzpk9EMwo5izoNJzelz7wNgF_m-fvtAj6yHo3q5yyjCmOV-U6l" width="96" height="41" /></noscript></a></div></div> </div> </div> <!-- /.footer-widgets --> <!-- /footer-widgets --> </div> </div> </footer><!-- /#footer --> </div><!-- /#footerwrap --> </div><!-- /#pagewrap --> <!-- wp_footer --> <!-- Facebook Pixel Code --> <script> !function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod? n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n; n.push=n;n.loaded=!0;n.version='2.0';n.queue=[];t=b.createElement(e);t.async=!0; t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window, document,'script','//connect.facebook.net/en_US/fbevents.js'); fbq('init', '1652848554955045'); fbq('track', "PageView");</script> <noscript><img height="1" width="1" style="display:none" data-no-script src="https://www.facebook.com/tr?id=1652848554955045&ev=PageView&noscript=1" /></noscript> <!-- End Facebook Pixel Code --> <script>(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');ga('create','UA-102210504-1','auto');ga('send','pageview');</script><!--googleoff: all--><div id="cookie-law-info-bar" data-nosnippet="true"><span><div class="cli-bar-container cli-style-v2"><div class="cli-bar-message">We use cookies on our website to give you the most relevant experience by remembering your preferences and repeat visits. By clicking “Accept All”, you consent to the use of ALL the cookies. However, you may visit "Cookie Settings" to provide a controlled consent.</div><div class="cli-bar-btn_container"><a role='button' class="medium cli-plugin-button cli-plugin-main-button cli_settings_button" style="margin:0px 5px 0px 0px">Cookie Settings</a><a id="wt-cli-accept-all-btn" role='button' data-cli_action="accept_all" class="wt-cli-element medium cli-plugin-button wt-cli-accept-all-btn cookie_action_close_header cli_action_button">Accept All</a></div></div></span></div><div id="cookie-law-info-again" data-nosnippet="true"><span id="cookie_hdr_showagain">Manage consent</span></div><div class="cli-modal" data-nosnippet="true" id="cliSettingsPopup" tabindex="-1" role="dialog" aria-labelledby="cliSettingsPopup" aria-hidden="true"> <div class="cli-modal-dialog" role="document"> <div class="cli-modal-content cli-bar-popup"> <button type="button" class="cli-modal-close" id="cliModalClose"> <svg class="" viewBox="0 0 24 24"><path d="M19 6.41l-1.41-1.41-5.59 5.59-5.59-5.59-1.41 1.41 5.59 5.59-5.59 5.59 1.41 1.41 5.59-5.59 5.59 5.59 1.41-1.41-5.59-5.59z"></path><path d="M0 0h24v24h-24z" fill="none"></path></svg> <span class="wt-cli-sr-only">Close</span> </button> <div class="cli-modal-body"> <div class="cli-container-fluid cli-tab-container"> <div class="cli-row"> <div class="cli-col-12 cli-align-items-stretch cli-px-0"> <div class="cli-privacy-overview"> <h4>Privacy Overview</h4> <div class="cli-privacy-content"> <div class="cli-privacy-content-text">This website uses cookies to improve your experience while you navigate through the website. Out of these, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may affect your browsing experience.</div> </div> <a class="cli-privacy-readmore" aria-label="Show more" role="button" data-readmore-text="Show more" data-readless-text="Show less"></a> </div> </div> <div class="cli-col-12 cli-align-items-stretch cli-px-0 cli-tab-section-container"> <div class="cli-tab-section"> <div class="cli-tab-header"> <a role="button" tabindex="0" class="cli-nav-link cli-settings-mobile" data-target="necessary" data-toggle="cli-toggle-tab"> Necessary </a> <div class="wt-cli-necessary-checkbox"> <input type="checkbox" class="cli-user-preference-checkbox" id="wt-cli-checkbox-necessary" data-id="checkbox-necessary" checked="checked" /> <label class="form-check-label" for="wt-cli-checkbox-necessary">Necessary</label> </div> <span class="cli-necessary-caption">Always Enabled</span> </div> <div class="cli-tab-content"> <div class="cli-tab-pane cli-fade" data-id="necessary"> <div class="wt-cli-cookie-description"> Necessary cookies are absolutely essential for the website to function properly. These cookies ensure basic functionalities and security features of the website, anonymously. <table class="cookielawinfo-row-cat-table cookielawinfo-winter"><thead><tr><th class="cookielawinfo-column-1">Cookie</th><th class="cookielawinfo-column-3">Duration</th><th class="cookielawinfo-column-4">Description</th></tr></thead><tbody><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">cookielawinfo-checkbox-analytics</td><td class="cookielawinfo-column-3">11 months</td><td class="cookielawinfo-column-4">This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Analytics".</td></tr><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">cookielawinfo-checkbox-functional</td><td class="cookielawinfo-column-3">11 months</td><td class="cookielawinfo-column-4">The cookie is set by GDPR cookie consent to record the user consent for the cookies in the category "Functional".</td></tr><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">cookielawinfo-checkbox-necessary</td><td class="cookielawinfo-column-3">11 months</td><td class="cookielawinfo-column-4">This cookie is set by GDPR Cookie Consent plugin. The cookies is used to store the user consent for the cookies in the category "Necessary".</td></tr><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">cookielawinfo-checkbox-others</td><td class="cookielawinfo-column-3">11 months</td><td class="cookielawinfo-column-4">This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Other.</td></tr><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">cookielawinfo-checkbox-performance</td><td class="cookielawinfo-column-3">11 months</td><td class="cookielawinfo-column-4">This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Performance".</td></tr><tr class="cookielawinfo-row"><td class="cookielawinfo-column-1">viewed_cookie_policy</td><td class="cookielawinfo-column-3">11 months</td><td class="cookielawinfo-column-4">The cookie is set by the GDPR Cookie Consent plugin and is used to store whether or not user has consented to the use of cookies. It does not store any personal data.</td></tr></tbody></table> </div> </div> </div> </div> <div class="cli-tab-section"> <div class="cli-tab-header"> <a role="button" tabindex="0" class="cli-nav-link cli-settings-mobile" data-target="functional" data-toggle="cli-toggle-tab"> Functional </a> <div class="cli-switch"> <input type="checkbox" id="wt-cli-checkbox-functional" class="cli-user-preference-checkbox" data-id="checkbox-functional" /> <label for="wt-cli-checkbox-functional" class="cli-slider" data-cli-enable="Enabled" data-cli-disable="Disabled"><span class="wt-cli-sr-only">Functional</span></label> </div> </div> <div class="cli-tab-content"> <div class="cli-tab-pane cli-fade" data-id="functional"> <div class="wt-cli-cookie-description"> Functional cookies help to perform certain functionalities like sharing the content of the website on social media platforms, collect feedbacks, and other third-party features. </div> </div> </div> </div> <div class="cli-tab-section"> <div class="cli-tab-header"> <a role="button" tabindex="0" class="cli-nav-link cli-settings-mobile" data-target="performance" data-toggle="cli-toggle-tab"> Performance </a> <div class="cli-switch"> <input type="checkbox" id="wt-cli-checkbox-performance" class="cli-user-preference-checkbox" data-id="checkbox-performance" /> <label for="wt-cli-checkbox-performance" class="cli-slider" data-cli-enable="Enabled" data-cli-disable="Disabled"><span class="wt-cli-sr-only">Performance</span></label> </div> </div> <div class="cli-tab-content"> <div class="cli-tab-pane cli-fade" data-id="performance"> <div class="wt-cli-cookie-description"> Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors. </div> </div> </div> </div> <div class="cli-tab-section"> <div class="cli-tab-header"> <a role="button" tabindex="0" class="cli-nav-link cli-settings-mobile" data-target="analytics" data-toggle="cli-toggle-tab"> Analytics </a> <div class="cli-switch"> <input type="checkbox" id="wt-cli-checkbox-analytics" class="cli-user-preference-checkbox" data-id="checkbox-analytics" /> <label for="wt-cli-checkbox-analytics" class="cli-slider" data-cli-enable="Enabled" data-cli-disable="Disabled"><span class="wt-cli-sr-only">Analytics</span></label> </div> </div> <div class="cli-tab-content"> <div class="cli-tab-pane cli-fade" data-id="analytics"> <div class="wt-cli-cookie-description"> Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics the number of visitors, bounce rate, traffic source, etc. </div> </div> </div> </div> <div class="cli-tab-section"> <div class="cli-tab-header"> <a role="button" tabindex="0" class="cli-nav-link cli-settings-mobile" data-target="advertisement" data-toggle="cli-toggle-tab"> Advertisement </a> <div class="cli-switch"> <input type="checkbox" id="wt-cli-checkbox-advertisement" class="cli-user-preference-checkbox" data-id="checkbox-advertisement" /> <label for="wt-cli-checkbox-advertisement" class="cli-slider" data-cli-enable="Enabled" data-cli-disable="Disabled"><span class="wt-cli-sr-only">Advertisement</span></label> </div> </div> <div class="cli-tab-content"> <div class="cli-tab-pane cli-fade" data-id="advertisement"> <div class="wt-cli-cookie-description"> Advertisement cookies are used to provide visitors with relevant ads and marketing campaigns. These cookies track visitors across websites and collect information to provide customized ads. </div> </div> </div> </div> <div class="cli-tab-section"> <div class="cli-tab-header"> <a role="button" tabindex="0" class="cli-nav-link cli-settings-mobile" data-target="others" data-toggle="cli-toggle-tab"> Others </a> <div class="cli-switch"> <input type="checkbox" id="wt-cli-checkbox-others" class="cli-user-preference-checkbox" data-id="checkbox-others" /> <label for="wt-cli-checkbox-others" class="cli-slider" data-cli-enable="Enabled" data-cli-disable="Disabled"><span class="wt-cli-sr-only">Others</span></label> </div> </div> <div class="cli-tab-content"> <div class="cli-tab-pane cli-fade" data-id="others"> <div class="wt-cli-cookie-description"> Other uncategorized cookies are those that are being analyzed and have not been classified into a category as yet. </div> </div> </div> </div> </div> </div> </div> </div> <div class="cli-modal-footer"> <div class="wt-cli-element cli-container-fluid cli-tab-container"> <div class="cli-row"> <div class="cli-col-12 cli-align-items-stretch cli-px-0"> <div class="cli-tab-footer wt-cli-privacy-overview-actions"> <a id="wt-cli-privacy-save-btn" role="button" tabindex="0" data-cli-action="accept" class="wt-cli-privacy-btn cli_setting_save_button wt-cli-privacy-accept-btn cli-btn">SAVE & ACCEPT</a> </div> </div> </div> </div> </div> </div> </div> </div> <div class="cli-modal-backdrop cli-fade cli-settings-overlay"></div> <div class="cli-modal-backdrop cli-fade cli-popupbar-overlay"></div> <!--googleon: all--> <!--googleoff:all--> <!--noindex--> <!--noptimize--> <script id="tf_vars" data-no-optimize="1" data-noptimize="1" defer="defer" src="data:text/javascript;base64,dmFyIHRoZW1pZnlTY3JpcHQgPSB7ImhlYWRlclR5cGUiOiJoZWFkZXItYmxvY2siLCJzdGlja3lfaGVhZGVyIjoiIiwicGFnZUxvYWRlckVmZmVjdCI6IiIsImluZmluaXRlRW5hYmxlIjoiMCJ9Owp2YXIgdGJMb2NhbFNjcmlwdCA9IHsiYnJlYWtwb2ludHMiOnsidGFibGV0X2xhbmRzY2FwZSI6Wzc2OSwxMjgwXSwidGFibGV0IjpbNjgxLDc2OF0sIm1vYmlsZSI6NjgwfSwic2Nyb2xsSGlnaGxpZ2h0Ijp7InNwZWVkIjo5MDAuMDA5OTk5OTk5OTk5OTkwOTA1MDUyOTgyMjcwNzE3NjIwODQ5NjA5Mzc1fSwiYWRkb25zIjpbXX07CnZhciB0aGVtaWZ5X3ZhcnMgPSB7Im1lbnVfcG9pbnQiOiIxMjAwIiwiY29tbWVudFVybCI6Imh0dHBzOi8vdGhlbWVyY2VuLmNvbS93cC1pbmNsdWRlcy9qcy9jb21tZW50LXJlcGx5Lm1pbi5qcyIsIndwIjoiNi4xLjEiLCJhamF4X3VybCI6Imh0dHBzOi8vdGhlbWVyY2VuLmNvbS93cC1hZG1pbi9hZG1pbi1hamF4LnBocCIsImluY2x1ZGVzVVJMIjoiaHR0cHM6Ly90aGVtZXJjZW4uY29tL3dwLWluY2x1ZGVzLyIsIm1lbnVfdG9vbHRpcHMiOltdLCJwbHVnaW5fdXJsIjoiaHR0cDovL3RoZW1lcmNlbi5jb20vd3AtY29udGVudC9wbHVnaW5zIiwidGhlbWVfdiI6IjcuMS4xIiwiZW1haWxTdWIiOiJDaGVjayB0aGlzIG91dCEiLCJub3AiOiJDaGVjayB0aGlzIG91dCEiLCJsaWdodGJveCI6eyJpMThuIjp7InRDb3VudGVyIjoiJWN1cnIlIG9mICV0b3RhbCUifX0sInNfdiI6IjUuMy45In07"></script> <!--/noptimize--> <!--/noindex--> <!--googleon:all--> <link rel="preload" href="https://themercen.com/wp-content/plugins/cookie-law-info/legacy/public/css/cookie-law-info-table.css?ver=3.0.8" as="style" /><link rel='stylesheet' id='cookie-law-info-table-css' href='https://themercen.com/wp-content/plugins/cookie-law-info/legacy/public/css/cookie-law-info-table.css?ver=3.0.8' media='all' /> <script defer="defer" data-v="7.1.1" data-pl="http://themercen.com/wp-content/plugins/fake.css" data-no-optimize="1" data-noptimize="1" src='https://themercen.com/wp-content/themes/themify-ultra/themify/js/main.js?ver=7.1.1' id='themify-main-script-js'></script> <script id='toc-front-js-extra'> var tocplus = {"visibility_show":"show","visibility_hide":"hide","visibility_hide_by_default":"1","width":"Auto"}; </script> <script src='https://themercen.com/wp-content/plugins/table-of-contents-plus/front.min.js?ver=2212' id='toc-front-js'></script> <script id='ptb_extra-js-extra'> var ptb_extra = {"lng":"en","url":"https:\/\/themercen.com\/wp-content\/plugins\/themify-ptb-extra-fields\/public\/","ver":"1.5.5","map_key":null,"slider":"https:\/\/themercen.com\/wp-content\/plugins\/themify-ptb-extra-fields\/public\/js\/swiper.min.js","sliderAutoplay":"https:\/\/themercen.com\/wp-content\/plugins\/themify-ptb-extra-fields\/public\/js\/swiper-autoplay.min.js"}; </script> <script data-cfasync="false" src='https://themercen.com/wp-content/plugins/themify-ptb-extra-fields/public/js/ptb-extra.js?ver=1.5.5' id='ptb_extra-js'></script> <script defer src='https://themercen.com/wp-content/plugins/akismet/_inc/akismet-frontend.js?ver=1671863921' id='akismet-frontend-js'></script> <!-- SCHEMA BEGIN --><script type="application/ld+json">[{"@context":"https:\/\/schema.org","@type":"BlogPosting","mainEntityOfPage":{"@type":"WebPage","@id":"https:\/\/themercen.com\/seo\/salesforce-commerce-cloud-seo-gotchas-and-optimizations\/"},"headline":"Salesforce Commerce Cloud SEO Gotchas and Optimizations","datePublished":"2019-08-28T00:10:03+00:00","dateModified":"2019-08-28T00:10:03+00:00","author":{"@type":"Person","name":"Thomas Kucharski"},"publisher":{"@type":"Organization","name":"The Mercen","logo":{"@type":"ImageObject","url":"http:\/\/themercen.com\/wp-content\/uploads\/2015\/11\/the-mercen-logo-33-50.png","width":336,"height":50}},"description":"Updated on August 22nd, 2019, to include new examples and insights.I\u2019ve been seeing a lot of e-commerce brands moving to Salesforce Commerce Cloud (SFCC) these days. When I first heard about SFCC, it seemed like the brand came out of nowhere. It didn\u2019t though, it\u2019s just good old Demandware but rebranded after Salesforce acquired it…","image":{"@type":"ImageObject","url":"https:\/\/themercen.com\/wp-content\/uploads\/2019\/08\/6430\/salesforce-commerce-cloud-seo-gotchas-and-optimizations.jpg","width":516,"height":340}}]</script><!-- /SCHEMA END --> </body> </html>