The Big Guide to Shopify SEO

Shopify is an affordable ecommerce platform favoured by many small businesses who want to get started with selling niche products online. It’s believed that Shopify currently powers in excess of 30,000 websites and helped to ship over 20 million items to date. The eCommerce platform allows users to easily and quickly create their own online store without all the technical work involved in developing their own website, or the huge expense of having someone else build one.

This guide is designed for SEO’s and competent webmasters who have some understanding of implementing code to websites. I don’t plan to cover off all of the basics of Search Engine Optimisation (SEO) but if you are at all interested in learning more about SEO before tackling the tasks on your Shopify site then please feel free to check out the resources that I recommend below:

Periodic Table Of SEO Ranking Factors

SEOmoz – Beginners Guide to SEO


Remember to back up your theme files and any code before making any amendments!!

Redirect non-www to www

Google and the major search engines consider http://google.com and http://www.google.com as different websites. This can mean that the search engines will have difficulty determining which version of your site to index. It can also mean that if your website has been linked to from different websites and blogs using a combination of the two URLs you are diminishing the value of the links pointing to your site.

To resolve this you need to create a 301 redirect.

On your Preferences go to the DNS & Domains page, check the option for “always redirect customers here” beside your primary domain – this will then make sure your customers and also the search engines visit the correct site.

Redirect Old Pages

If you no longer stock an item then you may want to redirect your customers and the search engines to an alternative product or category page. It’s very important that you redirect rather than return a 404 Not Found especially for pages that may have links from other websites pointing to them.

Luckily Shopify have given us a very easy to use tool for this. You can find the Redirect feature in your Navigation tab in the admin, at the bottom of the page.

You can also use this feature if you are moving your eCommerce store to Shopify from a different CMS.

Shopify URL’s, Title Tags and Alt Tags

Write title tags for humans; format them for search engines.

The title tag is possibly the most important tag on your web page as it tells Google what your page is about. It is vitally important to your SEO strategy that you have unique titles for each page. Title tags should be a maximum of 70 characters long, including spaces & your most important keywords should first in your title.

Shopify provide us with a very easy way to modify title tags and URL structure for products, categories and pages.

Why does Google care about meta descriptions?
Google want snippets to accurately represent the web result. They prefer to display meta descriptions of pages (when available) because it gives users a clear idea of the URL’s content.

It is very easy to add a unique meta description to your store click Preferences → General Settings.

  • Show facts about the content on the page that are not represented in the title
  • Make sure your meta descriptions are easy to read and less than 156 characters

As part of a good web user experience it is important that you add alt tags to your images to describe them. The idea of alternative text is to provide a textual replacement for pictures (images), a replacement that conveys the same thing as is communicated to a sighted user seeing the image. By not adding them you will not be compliant with either the Section 508 Web Standards or with the Web Content Accessibility Guidelines, Version 1.0 or 2.0.

Tips for Good Product Descriptions

  • Don’t use the Manufacturer Product Descriptions
  • Focus on Singular Keywords on Product Page
  • Add Keywords and Keyword Rich Links
  • Tell me something I don’t know
  • What problem does the product solve?
  • Use testimonials
  • Answer your customer questions e.g. size, dimensions, batteries not included

Avoid Duplicate Content

Duplicate content is probably up there as one of the biggest nightmares for SEO’s. It is quite common with Content Management Systems and eCommerce websites that you generate duplicate content issues due to the way in which you can navigate to a web page in various different ways.

Thankfully we have some ways in which we can get around these problems with rel attributes.

rel=”canonical”

In your admin, go to Themes → Template Editor. Open up the theme.liquid file and insert the below before the closing head </head> tag.

 

<link rel="canonical" href="{{ canonical_url }}" />

rel=”next” & rel=”prev”

 

As you may have noticed with your Shopify category pages they are split into different pages if you have a fairly big number of products in them. With rel=”next” and rel=”prev” markup, you can tell Google that you would like them to treat your web pages as a logical sequence; this means that they will return your first page as your primary search result.

To implement rel=”prev” and rel=”next” on your Shopify site you can add the below code in the <head> section of your site.

{% if paginate.previous %}
<link rel="prev" href="{{ shop.url }}{{ paginate.previous.url }}/" />
{% endif %}
{% if paginate.next %}
<link rel="next" href="{{ shop.url }}{{ paginate.next.url }}/" />
{% endif %}
{% if paginate.current_page == 1 %}
<link rel="canonical" href="http://www.myshopifystore.com{{ collection.url }}/" />
{% else %}
<link rel="canonical" href="http://www.myshopifystore.com
{{ collection.url }}?page={{ paginate.current_page }}/" />
{% endif %}

Meta Robots

Unfortunately you do not have access to robots.txt with Shopify so if there are web pages that you do not want the search engines to add to their index then you can add the following code to your theme.liquid file:

<meta name="robots" content="noindex,follow" />

So for example if I did not want to show /collections/types?q=PRODUCT TYPEthen I would add:

{% if template == 'collection' %}{% if collection.handle %}{% else %}
<meta name="robots" content="noindex,follow" />
{% endif %}{% endif %}

 

Add Schema.org markup

schema.org is a collaboration by Google, Microsoft, and Yahoo! to improve the web by creating a structured data markup schema supported by major search engines. On-page markup helps search engines understand the information on webpages and provide richer results. A shared markup vocabulary makes it easier for webmasters to decide on a markup schema and get maximum benefit for their efforts. If you’ve marked up your content for rich snippets using microformats, microdata, or RDFa, then you’re already familiar with the process. schema.org works the same way, using the microdata markup format and a vocabulary that is shared by all the search engines and that supports a wide variety of item types and properties

Go to Theme > Template Editor and open up product.liquid paste the following code into the file:

<div id="richsnippet">
<div itemscope itemtype="http://data-vocabulary.org/Product">
<span itemprop="brand">YOUR STORE NAME</span>
<span itemprop="name">{{ product.title | escape }}</span>
<img itemprop="image" src="{{ product.images[0] | product_img_url: "large" }}" />
<span itemprop="description">{{ product.description }}</span>
Category: <span itemprop="category" content="CATEGORY_NAME">CATEGORY_NAME</span>
Product #: <span itemprop="identifier" 
content="sku:{{ product.variants[0].sku }}">{{ product.variants[0].sku }}</span>
<span itemprop="offerDetails" 
itemscope itemtype="http://data-vocabulary.org/Offer">
Regular price: {{ product.price | money }}
<meta itemprop="currency" content="USD" />
$<span itemprop="price">{{ product.price | money }}</span>
Available from: <span itemprop="seller">YOUR_URL</span>
Condition: <span itemprop="condition" content="new">New</span>
<span itemprop="availability" content="in_stock">In stock! Order now!</span>
</span>
</div></div><!-- end richsnippet -->

 

Setup Google & Bing Webmaster Tools

Google & Bing let you access data about the indexing of your website within their search engines. To do this you need to setup your site with their Webmaster Tools accounts.

  1. Copy the full meta tag XHTML to your clipboard — select it on the Google web page and press Ctrl-C or Command-C on the Mac.


  2. In your shop admin, go to Theme → Template Editor. On the Template Editor page, scroll down a bit and click on the ‘theme’ file under . This will open the Layout file theme.liquid in your theme editor.

  3. Paste your code snippet in the head element of the page, between <head> and </head>.
  4. Save your template.
  5. Go back to the Google website and click Verify.

Google will verify that the meta tag they gave you exists in the correct location. If Google can’t find the tag, it will give you some information about the error encountered. Make sure that your store front is not password-protected when you click on the Verify button.

Shopify automatically generates an XML sitemap of your products, static pages and blog posts, you can find it at the address yourdomain.com/sitemap.xml. Log into your Google Webmaster Tools account, navigate to your shop’s site and submit the sitemap.xml file you just saved.

How to Add Bing Webmaster Tools

Google Analytics

Shopify will automatically pass ecommerce data to Google Analytics once you connect them together. All you have to do is give Shopify your Google Analytics property ID, turn ecommerce tracking on in Google Analytics, and you’re done.

Google Analytics for Shopify

 

Link Building

Since the late 1990′s search engines have used links as votes – representing the democracy of the web’s opinion about what pages are important and popular. The engines themselves have refined the use of link data to a fine art, and complex algorithms create nuance evaluations of sites and pages based on this information – SEOmoz

There are literally dozens of ways to obtain links to your website below are a few easy link building tactics:

  1. Add regular content to your blog with internal links back to your products and shopping categories.
  2. Contact bloggers about the possibility of reviewing your products or perhaps to offer them an exclusive discount offer or contest for their readers.
  3. Increase the chances that people will share your products on Social Media sites such as Pinterest by adding social sharing buttons to your product listings.
  4. Create link worthy content on your blog and promote it to other webmasters
  5. Contact your suppliers and see if they will consider linking to you

Related Posts:

  • No Related Posts
Tagged . Bookmark the permalink.
  • http://www.theorientalteapot.com Cody

    Thanks for this great article. I have one question about the rich snippets tags. Where you’ve entered “CATEGORY_NAME”, should I change that, or will it auto populate with whatever the current category is?

    • Chris Dyson

      Cody,

      If you wanted to auto populate the field and your “Collection Titles” were specific to a product category e.g. T-Shirt, Book then I guess you could use collection.title i.e. {{ collection.title | category }}

  • http://cazare.info Romanic

    Great article ! You have some information from google Panda update?

  • Craig

    Why are you putting canonical code for the prev/next case? The {{ canonical_url }} case you use above it should cover it.

    Example:

    Both http://breadandbadger.com/collections/all?page=1 and
    http://breadandbadger.com/collections/all both show the same canonical.

    • Chris Dyson

      Hi Craig,

      The use of rel=prev & rel=next is the correct way to let Google know of pagination. Canonical tags are used mainly for handling session id’s etc.

      According to Google:

      “Now, if you choose to include rel=”next” and rel=”prev” markup on the component pages within a series, you’re giving Google a strong hint that you’d like us to:
      Consolidate indexing properties, such as links, from the component pages/URLs to the series as a whole (i.e., links should not remain dispersed between page-1.html, page-2.html, etc., but be grouped with the sequence).
      Send users to the most relevant page/URL—typically the first page of the series.”

      • Craig

        Hi Chris,

        I understand that, but your code is redundant. {{ canonical_url }} does what you want it to do already. That’s why I am confused.

        • Chris Dyson

          I understand Craig but that’s not the proper use of the canonical tag as stated by Maile Ohye

          “While it’s fine to set rel=”canonical” from a component URL to a single view-all page, setting the canonical to the first page of a parameter-less sequence is considered improper usage. We make no promises to honor this implementation of rel=”canonical.””

  • http://www.alittlebranding.com Bob Strassel Jr.

    Hi Chris, Great tips, thanks so much! Curious on “To implement rel=”prev” and rel=”next” on your Shopify site you can add the below code in the section of your site.” Is this placed in theme.liquid head? Also, to implement, do I make any changes at all to the code listed? Thanks – Bob

    • RootsWebSol

      Yes it’s placed in the of your site.

      • http://www.alittlebranding.com Bob Strassel Jr.

        Thanks Chris, so exact code is placed in the theme.liquid head? – Bob

  • hannah ingham

    Hi Chris,

    I have been researching shopify and have come across your post, at the moment I am drawing a blank. Maybe you could tell me if in your experience can add copy to the individual categories or is it only product level that you can add copy to? Also I have noticed the home page title is carried across all pages is there any way this can be removed?

    • Chris Dyson

      Hi Hannah,

      The title being carried across all the pages looks like it might be an issue with the liquid files and my post references how you can change that.

      And you can create unique content on categories as well as products, it’s a very good ecommerce platform for novices.

  • http://twitter.com/KatiHuu Kati Huurtela

    Hey Chris,
    Thank you for this article.
    Someone was asking about Google Panda in an earlier comment. Would you have any insight on that?
    Especially after the changes that took place this March?

  • Rachel Owen

    Hi Chris

    I’ve been looking to sort out duplicate content on my Shopify store for ages, so was hoping the coding for rel=”prev” and rel=”next” would work for me, but it also impacted my non-paginated pages and change their rel=”canonical”. I included in the just below the head in my theme.liquid, am I doing something wrong?

  • http://www.liveautoworld.com/ Live Auto World.Com

    Thanks for this update. but my question is quite simple that i need help in sitemap. Can i edit sitemap in shopify??

    I know shopify creates sitemap itself but it is not good. So i want to edit or put new one can i do that??

    Thanks In Advance

  • Sunilelango Danabalan

    Thanks Chris. Am having doubt in rich snippets. i place this code product.liquid and save it. While i refresh the product page in the site, the schema tags are also visible in the front end.