Shopify SEO: What Apps Can’t Fix
Most Shopify SEO problems are not app-shaped. Shopify fixes parts of your URL structure so firmly that its own documentation lists them as un-redirectable, it generates your sitemap without asking, and it refuses to create a redirect until the old URL is already returning a 404. No app changes any of that. What an app can do is write meta tags, add structured data and scan for broken links — useful work, but a different job.
So the useful question is not “which SEO app” — it is “where is the line”. Below: what the platform decides for you, the settings you genuinely control and where they stop, the redirect rule that catches almost everyone, and the one file where a careless edit can cost you every visit you have.
What Shopify decides, and what you decide
Start here, because most wasted Shopify SEO effort is someone trying to change something on the left-hand column.
| Element | Who controls it | Practical limit |
|---|---|---|
URL prefixes (/products/, /collections/, /pages/, /blogs/) |
Shopify | Fixed. You choose only the handle that follows. |
sitemap.xml |
Shopify, automatically | Generated and updated for you; you curate it by controlling what exists and is published. |
| Canonical tag on collection-scoped product URLs | Your theme | Present in Shopify’s own themes; worth verifying on a third-party or heavily edited one. |
robots.txt |
Shopify default, overridable | Editable via robots.txt.liquid — unsupported, and easy to get badly wrong. |
| Page title and meta description | You | Title up to 70 characters, description around 160, or search engines shorten them. |
| H1 | You, indirectly | Generated from the title field — one control drives both on most templates. |
| Image alt text | You | Product images, collection featured images, blog post featured images. |
| URL redirects | You | Only from URLs that already return 404; several prefixes are off limits entirely. |
The URL structure you cannot change
Every product on every Shopify store lives under /products/. Every collection lives under /collections/. This is not a theme setting or a plan feature — Shopify’s redirect documentation states plainly that /products, /collections and /collections/all cannot be redirected, alongside a reserved list that also blocks /apps, /application, /cart, /carts, /orders, /services and /shop.
So when an agency promises “SEO-friendly URLs” on Shopify, the only thing actually on the table is the handle. Treat it accordingly: set it before launch, keep it short and descriptive, and stop changing it. Every later edit is a redirect you now have to maintain, and redirect chains are the quietest way to leak the authority you spent a year earning.
The other half of the URL story is that products are reachable at two addresses: the bare /products/<handle>, and /collections/<collection>/products/<handle> when a shopper arrives through a collection. Shopify themes ship with a canonical tag that points the second at the first. That is fine until someone installs a third-party theme or spends two years editing Liquid in theme.liquid. Open a product page reached through a collection, view source, and confirm rel="canonical" points at the bare product URL. It takes two minutes and it is the highest-yield check on the list.

The redirect rule that catches everyone
Shopify’s rule is one sentence: you can redirect only from broken URLs — ones already returning a 404. That inverts the order most people work in. You cannot stage the redirect first and then make the change. You change the handle or delete the page, let the old URL break, and then create the redirect. Do it the other way round and the redirect silently does nothing, which is exactly what a migration checklist that was written for another platform will tell you to do.
The same rule produces a failure nobody warns you about. Hide a collection, redirect its URL somewhere sensible, then later unhide the collection: the URL stops returning a 404, so Shopify deletes the redirect automatically. No notification. If you run seasonal collections on and off, audit your redirect list after every unhide.
The ceilings are generous — 100,000 redirects on standard plans, up to 20,000,000 on Plus — and redirects import from a CSV, so a migration map of several thousand rows is an upload rather than an afternoon of clicking. That capacity is only worth having if the map is right in the first place, which is a planning problem: see how to build a redirect map that survives a replatform.

The settings you control, and where they stop
Shopify gives you a page title, a meta description, a URL handle, alt text and the body copy. That is the whole surface, and it is enough for the large majority of stores.
The limits are worth knowing precisely. Shopify accepts a page title of up to 70 characters but recommends staying at or under 60, because anything longer is shortened in results. Meta descriptions run to about 160 characters before the same thing happens. And the H1 is generated from the title field, which means on most templates you are writing the on-page heading and the title tag with a single control. If you need them to differ — a punchy H1 and a keyword-led title tag — that is a theme change, not an app install.
Before you write fifty of them, run a couple through our free SERP snippet preview tool and see where the truncation actually lands. Character counts are a proxy; pixel width is what Google measures.

robots.txt.liquid: the one file that can cost you everything
Shopify lets you override the default crawl rules by creating robots.txt.liquid in your theme’s templates folder. The default already blocks the paths you want blocked: /admin, /cart, /checkout, /search, /policies/, and /collections/*+* — the filtered collection URLs that faceted navigation generates.
Shopify’s own documentation is unusually direct about this one. It is an unsupported customisation, Shopify Support will not help you with it, and incorrect use “can result in loss of all traffic”. That is not boilerplate; a stray disallow in a Liquid template is a sitewide deindex waiting for the next crawl.
Good reasons to touch it exist: adding an extra sitemap URL when part of your content lives elsewhere, adding a crawl-delay for a badly behaved bot, blocking a specific scraper. A bad reason is an audit tool telling you the blocked filtered URLs are “missed indexing opportunities”. They are blocked deliberately, because a colour-plus-size filter on a 400-product catalogue generates tens of thousands of near-identical pages and burns the crawl budget your real product pages need.
Where a Shopify SEO app actually earns its place
None of the above is an argument against apps — it is an argument for buying one to do the job it can do:
- Structured data at scale. Product, breadcrumb and FAQ markup across a catalogue is exactly the repetitive work software should own. The mechanics are in our guide to winning Shopify rich results, and the tools we actually deploy are in our roundup of the best Shopify SEO apps.
- Bulk metadata. Rewriting alt text and meta descriptions across a few thousand SKUs by hand is not a good use of anyone’s month.
- Monitoring. Broken-link scans and redirect management catch the slow decay that nobody notices until traffic has already gone.
What no app fixes: the URL prefixes, the contents of the sitemap, or the weight every additional app adds to your storefront. That last one is a genuine ranking input — Core Web Vitals are measured on the page your shopper loads, scripts included, which is why Shopify speed optimization is usually a bigger SEO lever than the metadata everyone starts with. Installing three SEO apps to fix an SEO problem you created by installing apps is a real pattern.
Frequently asked questions
Can I remove /collections/ or /products/ from my Shopify URLs?
No. They are fixed platform paths, and Shopify’s redirect documentation explicitly excludes /products, /collections and /collections/all from being redirected. Any tool or agency offering to strip them is describing something the platform does not allow.
Do I need an SEO app for Shopify?
Not for the fundamentals. Titles, descriptions, handles, alt text, redirects and the sitemap are all native. An app is worth paying for when volume makes the manual version impractical, or when you want structured data broader than your theme emits.
What is in the Shopify sitemap, and can I edit it?
It is generated automatically and updates itself, and it links to your products and their primary product image, your pages, your collections and your blog posts. You do not edit it directly — you change what it contains by changing what exists and is published. Two caveats: a password-protected store cannot be crawled at all, and if you run several international domains you submit each domain’s sitemap separately in Search Console.
Which Shopify SEO fix should I do first?
Verify the canonical tag on a collection-scoped product URL, then audit your redirect list for entries that silently vanished. Both take minutes, both are invisible in every dashboard, and both quietly cap everything you do afterwards.
Do this today
- Open a product page through a collection, view source, and confirm the canonical points at the bare
/products/URL. - Export your redirect list and check for gaps left by collections you hid and later unhid.
- Sort your titles by length and rewrite anything past 60 characters, shortest important words first.
- Confirm nobody has ever created a
robots.txt.liquidin your theme — and if one exists, read every line of it. - Count your installed apps, then count the ones doing work you can name. The difference is a speed problem wearing an SEO costume.
If you would rather have someone else run that list against your store, our free Shopify store audit covers the technical checks above plus speed and conversion, and comes back as a written set of fixes rather than a score out of a hundred.