{{ebook-chapter}}
Did you know there's searches every month for "shopify seo sucks"?
And many people searching for variations of "is shopify bad for SEO".
Worse still, is half the results that actually agree with this statement.
Look, Shopify is a great platform for SEO. Anyone saying otherwise has spent little time on Shopify recently.
That's not to say there's no downsides or limitations, but they're all manageable with a little understanding of the platform.
So let me explain why I love Shopify SEO, the features, the limitations, and how to overcome them.
{{potential-cta}}
Shopify SEO Features
Let's start with SEO features built-in to Shopify without needing any apps, plugins, or extra development.
Easy title tag and meta description customisation
On any page, collection, product, or blog post you'll find an "Edit Website SEO" section:
Click this and you'll be able to customise the Title Tag, Meta Description, and URL / Handle.
This makes it extremely simple to customise these fundamental On Page SEO factors, unlike platforms like WordPress where you'd need to install a third-party plugin.
Default Robots.txt setup
Robots.txt is a file that informs robots like search engines how to interact with your website.
By default, Shopify does a fantastic job of this by disallowing access to pages such as cart/shopping pages, account pages, and search query pages. Most stores won't need to customise this.
But if you'd like to modify it, it's now possible too.
Our Shopify Robots.txt guide explains how.
Easy 301 redirects
Many platforms require plugins and apps for 301 (permanent) redirects, but Shopify does this with a few quick clicks.
Start by going to Online Store > Navigation:
Click View URL Redirects:
Then you can choose to Import or Create URL Redirect:
Import is amazing for importing hundreds or even thousands of 301 redirects at once, we used this in the past for a client that removed their AMP feature.
For most cases though, you'll just do one at a time:
That's all there is to it, set the From and To relative URL, then click Save redirect.
The only extra step you may need to do is delete/rename the old page, if it still exists, the redirect won't work.
Automated sitemap
If you've ever had to generate, optimise, and update a sitemap before - you're in luck.
With Shopify it's already done. That's it.
As you create pages, products, collections, and blog posts they'll all automatically be added to your sitemap and organised in a simple way.
Take a look for your store here:
YOURWEBSITE.com/sitemap.xml
And if you'd like to learn more about this, read our Shopify XML Sitemap guide.
Default server setup
Shopify have a fast server built in, solid uptime and reliability, CDN already set up, etc.
This is significantly easier than doing it yourself, where you're likely to need a full time person dedicated to this.
Most themes are SEO friendly
This may not always be the case, but for most clients I've worked with, they've had pretty well optimised themes.
This includes a proper heading structure, structured data, breadcrumbs, etc.
That's not to say there aren't issues, there are often many including internal linking issues, but these are relatively simple to fix.
Great app selection
If the above isn't enough, there's thousands of Shopify Apps you can use to extend functionality even further.
This is great for things like image optimisation, image sitemaps, geo-location pages, translation, and more.
{{potential-cta}}
Shopify SEO Limitations
It's not all good though, there are a few limitations that you should consider.
I've also written about this in detail for Shopify Plus SEO, though the same limitations apply to both.
Directory URL Structure
One frustrating limitation is the lack of control over the directory URL structure.
Product Category pages are accessible under example.com/collections/name-of-category
Product pages are accessible under example.com/products/name-of-product
(Well, presuming product internal links are fixed)
That's it, no subcategory directories and no option to rename or remove /collections/. It's very limiting.
Normally, you would want a URL structure like:
/sofas/leather/
With Shopify, this needs to become:
/collections/leather-sofas
It'll still function the same, it's just not as customisable.
For more details on this, read my Shopify URL structure article.
Filter Pages
As mentioned above, the lack of subcategories can be a real pain with Shopify. Some stores attempt to bypass this by using Product Tags, which acts as filters.
For example:
From a URL standpoint, it even looks like a subcategory:
The problem is, these pages cannot be customised without manually tweaking the theme each time which is ineffective, and as a result they create a huge number of thin content pages:
In short, the best solution is to make sure Product Tags are properly canonicalised to the main collection and manually create new collections for subcategories.
My Shopify Product Tags SEO guide explains how to do this.
Multi-Store Setup
One major thing to consider is whether you'll need a multi-store/international setup. If so, this can potentially be difficult to manage with Shopify.
By default, there's no true multi-store functionality within Shopify.
You can have as many stores as you like, however they’re not connected in any way. Not only is this difficult for stock levels and other management, it also complicates SEO.
The standard approach to international stores is to use a Hreflang tag to explain the different pages for different locations and/or languages.
A hreflang tag for your French version may look like this as an example:
Where this gets complicated is when each store has different product ranges, preventing you from automating this.
There’s workarounds with a little development, but it's something to consider.
My Shopify International SEO guide explains more.
No Server Log File
Servers by default will keep a "log file" to keep track of every request by robots or users to your website.
For SEOs, this can be useful when combined with a log analysis tool for measuring how often your website is crawled, which pages/resources are crawled most or lead often, etc.
Unfortunately this isn’t an option with Shopify as we’re not given access to the log file.
Is this a big deal? Not particularly.
The additional data is helpful to measure the impact of technical SEO changes, but between Google Search Console data and following best practices, you can cover things anyway.
Product Variants
If you have a store with a significant number of product variants or options, you may have difficulties with Shopify’s 100 variants and 3 options limit.
This is relatively easy to fix by creating separate products for different options such as colours or materials, but can also lead to several product variants all being indexed by search engines i.e. thin content.
This isn’t a problem as it’s easy to fix with canonical tags as explained in my product variants limit workaround post, but is something you’ll need to do.
Other downsides that can be fixed
Difficult to remove pages from sitemap, product internal links, breadcrumbs, etc
Beyond that, there's a bunch of other soft limitations which can be overcome with a little development and customisation.
These include removing pages from the sitemap, canonicalised internal links, breadcrumb issues, and a bunch of automated pages that are by default indexable.
My Technical SEO for Shopify guide covers all these and how to fix them.
Does Shopify have good SEO?
To sum it up then, does Shopify's SEO suck?
I'd honestly say it's a pretty great platform, especially when compared to other simple website building platforms like Square and Wix.
With the ability to customise themes, there's very little you can't achieve with Shopify SEO.
Some missing features are annoying, some defaults like directory structures are frustrating, but nothing that truly matters is missing.
You can optimise pages, clean up technical issues, and create a lot of content on Shopify without the need for any other platform. I'd call that a success.
Tips to improve your Shopify store's SEO
For more advice on SEO for Shopify, check out these guides:
{{potential-cta}}