Shopify SEO
Shopify serves most products at two working URLs by default, and knowing which one wins is the whole job. Ivan Sp implements SEO on Shopify within the platform’s hosted structure. Core URL patterns and checkout behavior are fixed by design, rather than left open to a developer. The constraints are real, and most of what matters for SEO is still achievable inside them.
Fixed Structure by Design
Shopify enforces a consistent URL pattern for products and collections, and does not expose full server or database access the way a self-hosted platform does. Merchants trade some technical control for a reliable, fully maintained hosted platform.
Within that structure, title tags, meta descriptions, headings, and image alt text remain fully editable per product and per collection, covering most of the actual on-page work described under on-page SEO.
Catalogue Content at Scale
Product content at volume is where Shopify stores most often fall behind. Manufacturer descriptions ship identically to every store carrying the same item. Generating original, catalogue-wide product content works the same way on Shopify as on any platform, publishing through the storefront’s own product data fields.
The method is covered in full under e-commerce product content at scale, and it applies directly to a Shopify catalogue.
App-Based Extensibility
Functionality needing custom code on an open platform often ships as an app on Shopify. Schema markup apps, redirect managers, and image compression tools all exist as installable extensions rather than hand-written code. App quality varies widely, and an audit checks what an installed app actually outputs rather than trusting its marketing claims.
Duplicate or conflicting apps handling the same function, such as two schema apps both injecting markup, is a common Shopify-specific fault. A generic technical audit checklist would miss it.
What Stays Genuinely Constrained
Some fixes that would be trivial on an open platform are not available on Shopify at all. Those get named honestly in a findings report, rather than papered over with a workaround that does not actually solve the problem. Full URL structure control and certain checkout-page customizations fall in this category.
What This Looks Like in a Theme File
Consider a store owner who installed a canonical tag app after reading about Shopify duplicate content. Six months later Search Console still reports the wrong canonical.
He wants the products he stocks to be the pages that rank. Paying monthly for an app that fixed something already working is the part he would like back.
I hover over a product link in the store navigation and read the URL. Every internal link points at the collection path, and the canonicals had been correct all along.
Where the Standard Shopify Advice Breaks Down
- The usual advice
- Shopify creates duplicate content through collection URLs, so add canonical tags to fix it.
- What holds up in practice
- Shopify already canonicalises collection paths to the direct product URL by default. The genuine duplication risk comes from apps, tags, filters, and internal links pointing at the collection path.
Consider a store owner who installs an app to add canonical tags, on advice about Shopify duplicate content. The canonicals were already correct.
The store’s own navigation and every internal link still point at collection paths. The canonical was never the disagreeing signal, and the internal links always were.
I check what the theme is actually linking to before changing any tag. The default behaviour is usually right, and the theme is usually the thing arguing with it.
An app added to fix a non-problem is another script on every page and another source of injected markup to reconcile later.
Four Things Commonly Assumed About Shopify SEO
Which URL do your own collection pages link to for each product?
Ivan Sp meets these four assumptions whenever Shopify duplicate content is raised.
| Commonly assumed | What actually holds |
|---|---|
| Shopify creates duplicate content that needs fixing. | Shopify canonicalises collection paths to the direct product URL by default. The disagreement usually comes from the theme. |
| URL prefixes can be removed with the right app. | The reserved segments are fixed by the platform. Every recommendation has to be written inside that constraint. |
| Apps are the answer to SEO limitations. | Each app is another script and another source of injected markup. Two apps writing structured data conflict silently. |
| robots.txt cannot be edited on Shopify. | The file is editable through a Liquid template, which allows rules a static file would. |
| Manufacturer descriptions are acceptable if the photos differ. | Identical supplier copy across every retailer leaves price as the only differentiator a search engine can see. |
Your navigation is probably arguing with your own canonical tags on every product page. The fix is in the theme, and it takes one template edit.
Shopify Structural Reference
- Fixed URL prefixes
- Products, collections, pages, and blogs all sit under reserved path segments.
- The duplicate path
- A product is reachable under a collection path and directly under the product path.
- Default resolution
- Shopify canonicalises the collection path to the direct product URL.
- Template language
- Liquid, which controls markup, canonicals, and structured data output.
- robots.txt
- Editable through a Liquid template rather than as a static file.
- Sitemap
- Generated automatically and not directly editable.
- Extensibility
- The app ecosystem, which can inject markup and sometimes duplicates it.
- What stays constrained
- The reserved URL segments, which cannot be removed or renamed.
A Worked Example: One Product, Two Paths
Consider a single product reachable through a collection and directly. The comparison below is illustrative, written to show what actually needs changing. No client engagement is described here.
| Signal | Default state | After the fix |
|---|---|---|
| Direct product URL | /products/walnut-table | /products/walnut-table |
| Collection path URL | /collections/tables/products/walnut-table | Same, still reachable |
| Canonical on the collection path | Points at the direct product URL | Unchanged, already correct |
| Internal links from navigation | Collection path | Direct product URL |
| Sitemap entry | Direct product URL | Direct product URL |
| Signals in agreement | No | Yes |
I change the theme links rather than the canonical tag. Four signals agreed and one disagreed, and the disagreeing one was the theme.
Two paths to one product is two doors into one room. The problem is never the second door. The problem is a sign in the lobby pointing everyone at the door marked staff only.
The collection path stays reachable, which is correct. Customers browse by collection, and the canonical resolves it.
How a Shopify Audit Runs
I audit the theme output before touching any app or setting.
- Crawl the store and record which path the internal navigation actually links to for each product.
- Check the rendered canonical on both the direct and collection paths for a sample of products.
- Compare the generated sitemap against the crawled URL set, noting anything present in one only.
- Review the Liquid templates for structured data output, and check for a second source injecting it.
- List every installed app that writes to the page head, since two can conflict silently.
- Open the robots.txt Liquid template and confirm no rule blocks a path that should be crawled.
- Audit collection and tag URLs, which can multiply into thousands of thin pages.
- Check product descriptions against manufacturer copy, since duplicated supplier text is common.
- Set internal links and the navigation to use direct product URLs.
- Re-crawl after deployment, and confirm the signals now agree.
How This Engagement Is Scoped
I scope Shopify work by catalogue size and by the number of apps injecting markup.
- What arrives
- A crawl-backed audit, the theme link corrections, and a reconciled structured data plan.
- Typical duration
- Two to four weeks, depending on catalogue size and app count.
- What the client supplies
- Store admin access, theme edit permission, and a list of installed apps.
- Included
- Crawl audit, canonical verification, theme link corrections, app conflict review, and verification.
- Not included
- App development, paid app licences, and theme redesign.
- What changes the estimate
- Catalogues above roughly five thousand products, or many markup-injecting apps.
- How it is quoted
- After a short scoping call, once catalogue size and app list are known.
Tools and Primary Sources
The references below are Shopify’s own documentation. Each opens in a new tab.
- Shopify SEO documentation covers URL structure, metadata editing, and the automatically generated sitemap.
- Editing robots.txt on Shopify documents the Liquid template that controls crawler directives.
- Shopify Liquid reference documents the template objects that render canonicals and structured data.
- Google guidance on duplicate URLs explains how canonical selection resolves two paths to one item.
Check Your Own Product Paths
I suggest a two-minute check that reveals what your theme is actually doing.
- Open a collection page on your store and hover over a product link.
- Read the URL in the status bar, and note whether it contains a collection segment.
- Open the product page, view source, and find the canonical tag.
- Compare the canonical URL against the URL you arrived on.
A collection segment in the link and a direct URL in the canonical means your theme disagrees with your own canonical. Correcting the theme links is the fix, not adding another tag.
Common Questions
Can Shopify product URLs be fully customized?
Partially. The /products/ and /collections/ path segments are fixed by the platform, while the final slug for each product and collection remains editable.
Does Shopify support schema markup?
Yes, both through built-in theme support and through apps. Both need checking for accuracy against what the page actually displays, the same rule that applies to schema on any platform.
Is Shopify’s built-in blog good enough for content strategy work?
It supports the core needs: categories, authors, and standard publishing. It lacks some of the template flexibility a dedicated content platform offers, though most content strategy work translates directly regardless.
Can Shopify URL prefixes be removed?
No. Products, collections, pages, and blogs sit under reserved segments that the platform does not allow you to rename or remove. Every recommendation for a Shopify store has to be written inside that constraint.
Discuss This Work
The first call is a free 30-minute consultation with no pitch attached. You receive an honest assessment of where the site stands and what can realistically be built.
