The Ultimate Guide to Shopify SEO in 2022

AuthorDaniel Cartland
LinkedIn

Key SEO Considerations for Shopify

At NOVOS we work with many clients that use Shopify as their CMS; many eCommerce websites choose Shopify due to its easy out-of-the-box setup and maintenance. However, there are also common issues and opportunities that we see consistently across websites that use Shopify.

In this article we’ll run through some key SEO considerations of Shopify, their benefits, limitations and how to work around them and unleash the potential of your Shopify website.

Information Architecture

Subfolder limitations

All URLs on Shopify follow the same three general structures: Products – /products/example-product Collections – /collections/collection-name Pages – /pages/example-page

This makes Shopify very easy to set up and preserves the structure of URLs throughout the domains use, however, can become very limiting. For example, you cannot introduce subfolders for collections to indicate a subset of products such as product types or brands – these have to be added as their own separate collection.

As a result, it’s harder to define a hierarchy of which products live in which collections. This causes particular challenges when linking products back to their relevant collections and subcollections. Proving a challenge for Google as it can not use the internal links or URL structure to understand the architecture of the website.

Product variants

Shopify allows you to specify product variants under a particular product; when selected the variant product creates a parameterised URL: Product – /products/example-product Variant – /products/example-product?variant=16361451585582

This is a great solution in most cases unless you want particular product variants to be indexed. The solution is to create each variant as its own product; perfect if starting from scratch, however, a significant undertaking if your site already has hundreds or thousands of products.

Product URLs

By default, Shopify will use a long product URL with the parent collection included. E.g.

/collections/collection-name/products/example-product

The canonical tag is natively set to the clean URL which would be /products/example-product. This does help SEO in a way as it avoids duplicate product urls for products that live in multiple collections.

Basic Optimisation

Page title and meta description limits

Shopify has a character limit on page titles and meta descriptions, however, these are not the same as the optimal character limits for SEO, which can cause some confusion.

For example, the meta description limit in Shopify is 320, whereas ideally, meta description limits are ~160 characters (pixel limit actual).

shopify meta and page title limit

There’s nothing particularly wrong with a long meta description however it’s highly unlikely Google will show the full description and will therefore take a snippet from the site. This defeats the purpose of writing and implementing meta descriptions. Therefore we’d always recommend keeping within the limits.

Internal Linking

Page Duplication

Page Types

By default two types of product pages are created on Shopify:

  1. /product/example-product-1
  2. /collections/collection-name/product/example-product-1

Shopify also creates view-all collection pages by faults, which creates a third example of a page, which are shown on the front-end by default.:

  1. /collections/all-products/products/example-product-1

These pages by default contain a canonical to the flat product URL (number 1), however, can have a serious impact on the internal linking signals on your site.

Ideally, you want all your internal links pointing to your canonical URL we want to be ranking. You wouldn’t want to be relying on Google to read the canonical, index that URL, and apply the authority of all internal links. (/product/example-product-1). However, Shopify links to the product inside it’s collection from the collection pages (/collections/collection-name/product/example-product-1 and /collections/all-products/products/example-product-1). 

To change this internal linking structure, you need to edit the theme.liquid file. If this is a particular concern or challenge for you, read Paul Rogers’ guide on how to change this in Shopify

Filters, Facets, and Indexing

Shopify natively only supports basic filtering using tags; whilst useful for UX this is often not enough for many eCommerce sites.

shopify filter example

Apps are available to create more complex filtering systems that allow for multiple filters to be selected, filters to be bespoke and the order of filters to be changed, for example:

https://boostcommerce.net/ (this applies nofollow tags to the clickable filters to ensure that the crawl budget is not negatively impacted).

Breadcrumbs

Shopify doesn’t by default support breadcrumbs, however, they can quite easily be added to the Shopify CMS.  They are however limited to a 3 level depth.

Home > Level 1 > Level 2 > Level 3

Breadcrumbs can be added to Shopify and edited using the following instructions to edit the theme.liquid https://help.shopify.com/en/themes/customization/navigation/add-breadcrumbs

However, there are also several apps that allow you to control the breadcrumbs in a more user-friendly manner. Some of those that we have used with our clients include:

Properly implemented breadcrumbs can help to define the architecture of a site and the relationship between pages beyond the limitations imposed by Shopify’s subfolder limitations. Once implemented breadcrumbs should be marked up using JSON structured data. This makes it crystal clear to Google how the site is structured, with the additional benefit of having neat URLs in the SERPs.

Please see an example below of breadcrumbs with structured data, followed by one without.

breadcrumb schema in SERPs example

Crawling & Indexing

Robots.txt control

Shopify still comes with the default robots.txt file but as of 2021, you can now edit it. This can be done through the robots.txt.liquid and the following changes can be made to it:

  • Allow or disallow certain URLs from being crawled.
  • Add crawl-delay rules for certain crawlers.
  • Add extra sitemap URLs.
  • Block certain crawlers.

The robots.txt file is located at the root directory of your Shopify store’s domain name. For example, domain-name.com/robots.txt. Here’s how to edit it:

  • From your Shopify admin, go to Online Store > Themes.
  • Actions > Edit Code.
  • Add a new template > robots.
  • Click Create template.
  • Make the changes.
  • Save changes to the robots.txt.liquid file in your published theme.

For more information on liquid variables and common use cases, refer to Shopify’s Developer page.

Noindex, nofollow controls

To control which pages appear in Google’s index, Shopify does allow you to apply both noindex and nofollow tags.

Noindex can be added to the theme.liquid file to help control which pages are crawled and indexed at a page, or template level using the following method – https://help.shopify.com/en/manual/promoting-marketing/seo/hide-a-page-from-search-engines

Nofollow can be included using the same method, however, by including “nofollow” instead or, or as well as nofollow (for example noindex, nofollow).

However, there are also apps that can help with a less manual method of implementation. We recommend using the Sitemap & NoIndex Manager app.

Redirection

Shopify does allow you to redirect URLs (Online Store > Navigation > URL Redirect > Create URL Redirect). This is an easy and intuitive system to easily control redirects which is great.

url rewriting and redirects shopify

However, there is a limit of 100,000 redirects with Shopify straight out of the box.

100,000 redirects sounds like a lot, however, if you’re running a medium-large ecommerce site that has a large product turnaround these numbers can quickly add up.

If you’re migrating to a new domain, or away from the Shopify CMS this can also pose an issue, since you may not be able to redirect all the pages on your site. 

Global redirection

Global redirection (for example non-www to www versions of a site) can be implemented via Online Store > Domains.

Here you can set a primary domain (the version you want to be accessible), in addition to any third-party domains you have registered. These third-party domains will automatically redirect to your primary domain if accessed. 

global redirection in shopify

Sitemap Control

Shopify creates its own sitemaps for websites, broken down by the page type in a sitemap index. This makes it incredibly easy to upload to Google Search Console and monitor their performance. These can be found from the following locations:

  • Sitemap index – example.com/sitemap.xml
  • Products – example.com/sitemap_products_1.xml
  • Pages – example.com/sitemap_pages_1.xml
  • Collections – example.com/sitemap_collections_1.xml
  • Blogs – example.com/sitemap_blogs_1.xml

However, sitemaps cannot be edited or uploaded manually. This does not generally pose an issue, however, there may be circumstances in which you want to more closely control what is shown in a sitemap (for example included old URLs in a sitemap to help to remove from Google’s index for the period following a migration, or including hreflang sitemaps for an international store).

There is a hack to overcome this, however, which you can find in our step by step guide on how to create a custom XML sitemap in Shopify article.

Structured Data

Most Shopify themes include basic product structured data, Google recommends that JSON-LD format is used when specifying structured markup.

There are many apps available that allow Shopify websites to add schema to their products, some of those our clients use include:

JSON-LD for Shopify

Schema Plus for SEO

Schema and Breadcrumbs

Page Speed

Remove any irrelevant apps

Shopify apps (although very useful in many regards), can have a negative impact on your site speed as they have to load resources when the page is requested.

Therefore, any apps not in use should be removed. It’s also crucial to remove any associated files from your theme code, as some apps inject code automatically when installed!

Lazy load images

Lazy loading prevents images that are out of view (offscreen) from being loaded until they are required. This reduces the number of files that are required to load before a site can be interacted with (time-to-interactive), making the site load faster.

Dynamic serving images

Themes can be set to “srcset” to pull appropriate image sizes based on screen resolution.

Compress images

Ecommerce sites are often very image-heavy due to the benefits of clearly showing products to visitors. However, this can have a significant impact on loading times.

International SEO & Hreflang

If you’re on the Shopify, Advanced Shopify, or Shopify Plus plan, you can use the international domains feature to create region-specific or country-specific domains. When you use international domains, sitemap files are generated for all domains. All of your domains are discoverable by search engines unless they redirect to your primary domain.

Shopify ccTLDs, country subdomains, and country subfolders

Shopify does support international expansion, however, is not optimised perfectly for SEO. This is because it doesn’t allow country subfolders, therefore, if you want to expand internationally you have two options:

  1. Create a country subdomain
  2. Use a new domain or country TLD

Whilst Google reiterates that there should be no difference between the SEO benefits of subdomain vs subfolder, this is still a topic that divides opinion.

Your products can be duplicated to ensure that alternate language/location sites contain the same products.

Hreflang

Shopify by default does not contain hreflang, however, the code can be added to the theme.liquid.

The code can automatically generate the URLs required for the different location subdomains/domains and a run-through is described here.

Since most international stores are generated by copying the original Shopify store, this means that URLs will be in the original language.

Similarly, this can cause errors if some products are only available in certain locations, as the hreflang will generate for all alternatives. For example, even if a product (example-product) only exists in en/gb it will generate for all locations:

example.com/en/gb/example-product/ – exists as product

example.com/fr/fr/example-product/ – does not exist, still referenced in hreflang

example.com/de/de/example-product/ – does not exist, still referenced in hreflang

There are apps available that can translate your website content, in addition to helping to create hreflang:

Langshop

Weglot

Shopify Hreflang Sitemaps

Due to Shopify’s automatically generated sitemaps and restrictions on creating your own bespoke XML sitemaps, hreflang cannot be implemented via sitemaps.

Security

All Shopify websites by default come with an SSL certificate so you can transfer information over a secure HTTPS protocol. Simple and easy!

Content Marketing

Shopify allows you to create a blog to support your products with useful, informational content and to generate visitors through targeting keywords relevant to your product.

You can also link to a blog hosted on a different platform such as WordPress, Tumblr or Blogger if you prefer the functionality of these platforms.

The Shopify blog allows you to edit content, including metadata (page titles, meta descriptions etc), change formatting such as headings, lists as standard. You can also assign an author and publish date. Articles can also be assigned bespoke categories (ie news, reviews etc.) and tags.

Blog categories are linked to from the blog post and can be crawled/indexed so it’s best not to go too mad with the categories. New pages are not created for the authors assigned.

Shopify SEO FAQs

Does Shopify have good SEO?

As with any CMS, there are benefits and limitations to Shopify’s SEO. However, as we have discussed in this article, there are very often workarounds to the SEO limitations set up Shopify’s default SEO set up.

Perhaps the main SEO consideration with choosing Shopify is the size and location of your eCommerce site, as very large or international stores may benefit from an enterprise solution, such as Magento 2.

How to upload meta data?

Shopify doesn’t provide the option to bulk upload meta descriptions or title tags to Shopify. However, we recommend using an app, FavSEO, that allows you to do this.

Do Shopify tags help SEO?

Shopify product tags are generally just to organise products in the backend of the site. Tags can also be used to help to filter down products using Shopify’s default filtering options.

What is the best SEO app for Shopify?

There isn’t one app for Shopify that can be considered the “best” for SEO, however, many different apps have specific uses for which they may be suited. We have made a list of the most commonly used Shopify apps.

The best way to choose the right app is to define your need (what problem do you need solving?) and then research and test the apps that can fulfil that problem or service.

Conclusion

To conclude, from a pure SEO perspective, Shopify is the best CMS out there at the moment in terms of an almost guaranteed 6/10 score for your onsite SEO with a very limited developer or SEO consultancy input. With an SEO consultant supporting we can take it to a 9/10 but there are platform limitations that don’t allow the site to get to a 10/10. Mainly the lack of flexibility mentioned throughout this post. 

When compared to out of the box Magento, which often has a 1/10 SEO score for a large site, then it’s easy to see why so many sites are migrating away from Magento to Shopify. 

If additional flexibility is key for your company then you can explore a headless Shopify CMS set up where you’d allow additional front end flexibility. This will require considerably more resource from an experienced SEO and a few developers. 

Find out more about our Shopify SEO services

Related Articles