Shopify SEO in 2026: What the Theme Won't Fix
A store goes live on Shopify in a weekend. The theme looks clean. Checkout works. Product photos are sharp, and paid social sends traffic on day one. Three months later the founder opens Search Console and finds a mess. Thousands of URLs indexed. Almost none of them are the ones anyone wanted to rank. Collection pages sit on page four. Product pages compete with near-identical copies of themselves. Nothing is broken, exactly. And that is the problem.
Shopify handles a lot of the boring work for you. It generates XML sitemaps automatically and it enforces HTTPS. It sets canonical tags in places where plenty of custom builds forget to. That competence is real, and it creates a false sense of completion. Shopify SEO rarely fails because something crashed. It fails because the defaults look finished, so nobody goes looking for the parts the platform will never fix on its own.
What this guide covers, and what it deliberately skips
This is a platform guide. It is about the Shopify SEO work the platform, your theme, and your apps leave undone, plus the structural limits you cannot remove no matter how much budget you throw at them. It does not re-teach canonical tags, hreflang, or category copywriting from first principles. Those are platform-agnostic jobs and they have their own guides. Here is what you get:
- The exact URL patterns Shopify creates behind your back, and which ones actually cost you rankings.
- A theme edit that takes one afternoon and fixes the single most common problem on the platform.
- An honest read on robots.txt customization, including when you should leave it alone.
- What you can and cannot do about sitemaps, and why that matters for international stores.
- A priority order, because half the advice online tells you to fix things that do not move revenue.
My bias, stated up front: most store owners over-invest in on-page tweaks and under-invest in the way their theme links internally. The second one compounds. The first one usually does not. If you want the broader technical framework that sits underneath all of this, our step-by-step technical SEO audit process covers the platform-agnostic half.
Which parts of Shopify SEO are already handled?
Shopify generates XML sitemaps automatically and enforces HTTPS across the store. It also sets a canonical tag on collection-scoped product URLs pointing back to the main product URL. Those three things cover a real slice of technical hygiene that other platforms leave to you.
Give the platform credit. On a self-hosted build you would spend a week on sitemap generation, certificate handling, and canonical logic. Shopify SEO starts from a cleaner baseline than anything you would assemble yourself, and the gap is widest for teams with no developer on staff.
But automation is a trade. Everything Shopify does for you is also something you cannot control. You do not choose what goes in the sitemap. You do not choose the URL prefixes. You inherit a set of decisions that were made for the average store, and your store is not average. The skill here is knowing which inherited defaults are fine and which ones need a workaround.
Why does every product on your store have two URLs?
Every Shopify product is reachable at two addresses. The canonical one lives at /products/ plus the product handle. The second one is collection-scoped, at /collections/ plus the collection handle, then /products/ plus the product handle. This duplication is the most common SEO issue on the platform.
Multiply it out. A product sitting in four collections has five live URLs, all serving the same content. A catalog of 500 products across a dozen collections can generate several thousand crawlable addresses for what is really 500 pages.
Shopify does put a canonical tag on the collection-scoped version pointing back to the /products/ URL. That is the right call, and it solves the problem on paper. In practice, not all crawlers and indexing systems respect that canonical consistently. A canonical is a hint, not an instruction, and hints get ignored when the rest of your signals disagree. Google's documentation on consolidating duplicate URLs is clear that it treats the tag as one signal among several.
Here is the part people miss. The bigger cost is not indexation. It is dilution. Internal links generated by collection templates often point at the collection-scoped URL rather than the canonical one. So your own navigation spends its authority on a URL you do not want to rank. Our explainer on what domain authority really measures is a useful primer if you want the vocabulary. The problem here is page-level, not domain-level.
How do you stop your theme from leaking link equity?
Edit the collection template so product links point directly at the /products/ URL instead of the collection-scoped one. It is a small Liquid change, it is reversible, and it is the highest-leverage fix available on the platform.
If you only do one thing on this page, do this one. Shopify SEO offers few fixes this cheap, and this one is easy to leave undone because nothing on the storefront looks broken.
Many themes build product grid links by combining the current collection with the product handle. That is convenient for the theme developer and bad for you. The fix routes every product card straight to the canonical address.
What to do, in order:
- Duplicate your live theme first. Always. You want a rollback that takes ten seconds.
- Find the product card or product grid snippet used by your collection templates.
- Change the link target so it uses the plain product URL, not the collection-scoped variant.
- Check search, related products, upsell blocks, and any recently-viewed widget. They often build links separately.
- Crawl the staged theme and confirm that zero internal links now contain /collections/ followed by /products/.
Budget two to four hours if your theme is stock. Budget a day if it has been heavily customized or if apps inject their own product grids. Apps are the usual culprit, and app-generated markup is frequently outside your theme files entirely. Once the links are clean, sanity-check the rest of your template with the on-page SEO checklist so you only touch the theme once.
What do variant and filter URLs do to your crawl budget?
Product variants generate extra URLs through a variant query parameter. Collection filtering and sorting generate more, using a sort parameter and tag-based paths. None of these are pages you want competing in search results.
A store with color and size options on every product, plus a filter bar on every collection, can produce an enormous number of crawlable combinations from a modest catalog. On a small store this is harmless. On a store with thousands of SKUs it becomes a real cost, because crawler attention is finite and it gets spent on the cheapest available links.
My view is that the parameter question is over-dramatized in general SEO advice and under-managed on Shopify specifically. You are not going to eliminate these URLs. You can decide how much of your own linking points at them, and that is where the leverage is. Keep filters out of your primary navigation. Keep sorted views out of anything a crawler follows by default. Watch which of these addresses actually pick up impressions before you act, and let the data decide instead of a blanket rule. If you are auditing indexation more broadly, the guide to sitemaps and indexing explains how to read what Google has actually stored.
Can you edit robots.txt on Shopify, and should you?
Yes, since 2021, through a theme file called robots.txt.liquid. Every store also ships with a default robots.txt that Shopify describes as optimal for SEO. Shopify's own guidance is that these edits belong to a Shopify Partner or someone with code and SEO expertise, and that Shopify Support cannot help with them.
Read that last sentence twice. The platform is telling you, politely, that you are on your own if you break it. That is unusual, and it should set your risk appetite.
There is a right way and a wrong way to make the change. The recommended approach adds or removes individual directives through the template file rather than replacing the file wholesale. That preserves Shopify's ability to keep the file updated automatically. Replace the whole thing and you freeze your store at today's assumptions, which will quietly rot as the platform changes. Shopify documents the template and what it can do in its developer reference for the robots template.
When is an edit worth it? Honestly, less often than agencies suggest. Two cases stand out. First, a store with a very large parameterized surface where the default is genuinely letting crawlers waste time. Second, a decision about AI crawlers, where you have a real policy question about who gets to train on your product copy. We covered the second case in depth in our practical guide to AI crawlers and robots.txt, and the reasoning there applies cleanly to a Shopify store.
Why can't you upload your own XML sitemap?
Shopify generates several sitemaps automatically. There is a sitemap index plus separate files for products, collections, pages, and blogs. You cannot edit them and you cannot upload your own. That limit has consequences well beyond the sitemap itself.
For most stores this is fine, even helpful. The structure mirrors the way Shopify organizes content, and it stays current without anyone remembering to regenerate it. It is also one of the hard ceilings in Shopify SEO. Knowing exactly where that ceiling sits stops you hunting for workarounds that do not exist.
The consequence bites international stores. Because sitemaps are auto-generated and custom XML sitemaps are not permitted, you cannot implement hreflang through sitemaps on Shopify. That closes off the route many technical SEOs default to, and it pushes the entire job into your theme's head markup instead.
It also means sitemap hygiene is not a lever you own. You cannot exclude a thin collection by pulling it from the file. Your only real control is what exists on the store, which turns pruning into an inventory decision rather than a technical one. Our work on refreshing and pruning decayed content is directly applicable here, because on Shopify the decision to remove something is the decision.
What breaks when you switch on Shopify Markets?
Shopify Markets serves multiple locales, which means every page on your store gains multiple URL versions. Correct hreflang tags matter so Google does not treat every locale as a separate page competing with the others.
This is where a lot of European stores get hurt. A brand selling into Germany, France, and the United Kingdom from one store can triple or quadruple its URL count overnight, with content that is often only partly translated. Add a United States market and the near-duplicate English problem arrives too.
Because the sitemap route is closed, your hreflang implementation lives in the theme. That makes it fragile in a specific way. A theme update, a new market, or an app that rewrites the page head can silently drop the tags, and nothing on the storefront looks wrong. I would put a recurring calendar reminder on this. Check the locale tags after every theme change, every time. Google's reference on telling Google about localized versions of a page sets out what a correct set of tags has to include.
For a multi-market store, Shopify SEO is mostly a maintenance discipline rather than a setup task. The launch is the easy part.
Three habits that keep it stable:
- Treat every new market as a technical launch, not a settings toggle.
- Spot-check three page types per locale, a product, a collection, and a static page.
- Track performance per market rather than as one global number, so a broken locale shows up as a drop instead of hiding inside the average.
Why do your collection pages refuse to rank?
Because they are usually empty. Collection pages need roughly 150 to 300 words of unique content above the product grid. An empty collection page cannot rank for a category keyword, and category keywords are where the volume lives.
The theme is not going to prompt you for this. It renders a title, then a grid, and the page looks complete. To a search engine it reads as a list of links with no argument for why it exists. This is the point where Shopify SEO stops being a technical job and becomes an editorial one.
Keep it short and useful. Say what belongs in the category, who it suits, and what separates the options. Resist the urge to pad. Two hundred honest words beat six hundred filler ones, and you can check the length quickly with our free word counter before you paste it in.
Which collections deserve the effort is a keyword question, not a taste question. Work from real demand using our keyword research walkthrough, and match the copy to what the searcher is actually trying to do with help from the breakdown of search intent and micro-intents. A collection targeting a comparison query needs different copy than one targeting a straight product query.
What does the /blogs/ URL prefix cost you?
Shopify enforces a rigid URL structure. Products sit under /products/, collections under /collections/, static pages under /pages/, and blog articles under /blogs/ followed by the blog name and the article handle. None of these prefixes can be removed or changed.
So your content sits one level deeper than it would on almost any other platform, and the blog name becomes part of every article URL. Choose that blog name carefully, because changing it later means changing every article URL underneath it.
Is the depth itself a ranking problem? I do not think so, and the claim gets repeated far more confidently than the evidence supports. The real cost is navigational. Deeper paths tend to get fewer internal links, and fewer internal links means slower discovery and weaker authority flow. That is a linking problem wearing a URL costume.
Fix it by linking deliberately. Build proper topic groupings using the approach in our guide to content clusters and pillar pages, and link articles to the collections they support in both directions. If you do need to move URLs later, do it properly with the redirects and site migration playbook rather than hoping the platform sorts it out.
Why is your theme slower than the demo you bought?
Because the demo was not carrying your app stack. Theme performance on Shopify degrades through accumulation, not through any single bad decision, and the apps you install are usually the largest share of the damage.
Every review widget, popup, upsell block, and analytics snippet adds work to the page. Each one seemed reasonable on the day it was installed. Together they push Largest Contentful Paint out and make Cumulative Layout Shift unpredictable, especially on mid-range phones over ordinary mobile networks.
Two things help more than any plugin promising a speed boost. Remove apps you no longer use, including the leftover markup they left behind. And compress your imagery properly, which on an image-heavy store is often the single biggest performance win available. Our guide to optimizing images for web and SEO covers the formats and sizing rules that matter.
Then measure rather than guess. The current thresholds and what they actually mean for ecommerce are laid out in our Core Web Vitals and page experience guide.
What should you fix first in a Shopify SEO audit?
Fix the internal linking first, then collection content, then everything else. That order reflects effort against payoff, and it holds for most stores between 100 and 5,000 products.
The table below is my working priority list. Effort estimates assume a stock theme and someone comfortable editing template files.
| Priority | Constraint | What Shopify does | What you do | Effort |
|---|---|---|---|---|
| 1 | Collection-scoped product URLs | Sets a canonical back to the /products/ URL | Rewrite theme product links to target /products/ directly | Low, two to four hours |
| 2 | Empty collection pages | Nothing | Add 150 to 300 words of unique copy above the grid | Medium, repeats per collection |
| 3 | Variant and filter parameters | Nothing | Keep your own internal links off them, then measure | Medium |
| 4 | Markets locales | Serves multiple locale URLs | Verify hreflang in the theme after every change | Medium, recurring |
| 5 | Theme and app bloat | Nothing | Remove unused apps, compress images, measure again | Medium |
| 6 | robots.txt | Ships a default it calls optimal | Edit robots.txt.liquid only with real expertise, additively | Low effort, high risk |
| 7 | Sitemaps | Auto-generates an index plus product, collection, page and blog files | Control what exists on the store instead | No lever available |
Two supporting jobs sit alongside that list. Write real meta descriptions for your top collections rather than letting the theme generate them, which our meta tag generator makes quick. And keep your product markup honest, using the rules in our schema markup guide so your rich results match what is actually on the page. For a running health check across the store, the free SEO report tool gives you a fast starting inventory.
Does any of this change now that AI answers the question?
The mechanics change less than people claim. Assistants still need to find, parse, and trust your pages, and a store that links to duplicate URLs is harder to parse than one that does not.
What does change is the value of a clear, self-contained answer on the page. A collection page that explains the category in plain language is easier for a model to quote than a bare product grid. So the 150 to 300 words you add for search engines earns a second return in assistant answers.
If you sell into markets where buyers research through chat interfaces before they ever open a search results page, treat that as a real channel. Our answer engine optimization guide covers how to get product and category content cited, and the same structural discipline applies. Clean URLs, clear copy, no contradictions between what your markup says and what your page shows.
Frequently asked questions
Is Shopify good for SEO?
Yes, with caveats. Shopify SEO starts from a strong technical baseline, since the platform generates sitemaps automatically, enforces HTTPS, and sets canonicals on duplicate product URLs. What it does not do is write your collection content, fix your theme's internal linking, or manage your locale tags. Those are the jobs that decide whether you rank, and the platform hands every one of them back to you.
Can you remove /collections/ or /products/ from Shopify URLs?
No. Shopify enforces a rigid URL structure. Products sit under /products/, collections under /collections/, static pages under /pages/, and blog articles under /blogs/ plus the blog name and the article handle. These prefixes cannot be removed or changed. Plan your handles and your blog name with that permanence in mind, because the prefix is the one thing you will never get back.
Do the duplicate collection product URLs hurt rankings?
They can. Shopify automatically sets a canonical tag on the collection-scoped URL pointing back to the /products/ version, but not all crawlers and indexing systems respect that canonical consistently. The larger practical problem is that collection templates often link to the collection-scoped URL, which dilutes link equity. Edit the template so product links point straight at the /products/ URL and most of the risk disappears.
Should you edit robots.txt.liquid on your store?
Only with good reason and the right person. Shopify ships a default robots.txt it describes as optimal for SEO, and its guidance is that edits should be handled by a Shopify Partner or someone with code and SEO expertise, because Support cannot help you fix them. If you proceed, add or remove individual directives through the template rather than replacing the file wholesale, so Shopify can keep updating it automatically.
Can you submit a custom XML sitemap on Shopify?
No. Sitemaps cannot be edited or uploaded manually. Shopify generates several automatically, including a sitemap index plus separate files for products, collections, pages, and blogs. The knock-on effect matters for international stores, because custom XML sitemaps are not permitted, so hreflang cannot be implemented through sitemaps at all. That work has to live in your theme's page head instead.
How long does Shopify SEO take to show results?
Expect the internal linking fix to show crawl-level changes within weeks and ranking changes over a quarter. Collection content is slower, because you are building relevance for competitive category terms rather than repairing a technical flaw. My honest guidance is to judge structural fixes on crawl and indexation data first, and to give content changes at least three months before you decide whether the angle worked.
The short version
Shopify hands you a competent starting point and a set of walls. The walls are real. You cannot change the URL prefixes, you cannot upload a sitemap, and you cannot route hreflang through one. Accept those and stop spending energy on them.
Then go fix what is actually yours. Point your theme's product links at the canonical /products/ URL, because that single change stops your own navigation from working against you. Write 150 to 300 words on the collections that carry real search demand. Check your locale tags after every theme update. Remove the apps you stopped using two seasons ago.
Here is my prediction for the next couple of years. The platform will keep automating the technical layer, and the gap between stores will move further toward content quality and internal structure, which no theme update will ever do for you. Shopify SEO is going to look less like a checklist and more like editorial judgment.
So which one is your store failing right now, the linking or the content? Look at a single collection page and answer honestly. That one page usually tells you everything.