SmartEcomSEO
Technical SEO

Shopify technical SEO for the problems Shopify creates itself

Shopify handles the basics well, then quietly adds duplicate paths, thin tag pages and filter URLs as your store grows. We find them in your theme and fix them at the source.

What we find

The technical issues we see on almost every Shopify store

Duplicates

/collections/*/products/* paths

Many themes link products through the collection they sit in, so every product gets an extra URL per collection. Shopify canonicalizes them to /products/, but Googlebot still crawls them and your internal links point at the wrong address.

Thin pages

Indexable tag pages

Shopify's default robots.txt blocks combined tags (the + URLs) but not single tags. /collections/sofas/grey is a crawlable page with no unique title, no copy and a near-copy of the parent.

Crawl waste

Filter and sort parameters

Search & Discovery filters create URLs like ?filter.v.option.color=Grey. The default rules only block multi-filter combinations, so single-filter URLs can pile up in the crawl.

Variants

?variant= URLs

Each variant has its own URL that canonicalizes to the product. Fine for sizes, a lost opportunity when a color or material is what people actually search for.

Speed

App bloat

Uninstalled apps often leave snippets and script tags in the theme. Reviews, upsells and chat widgets each load their own JavaScript on every page.

International

Markets hreflang conflicts

Shopify adds hreflang automatically for each market. Problems start when themes hardcode their own tags, or when en-US, en-GB and en-CA storefronts serve identical pages.

How we fix it

Fixes go into the theme, not into a report

Most Shopify technical SEO problems live in a handful of Liquid files: product card snippets, collection templates, the head of theme.liquid. We edit those directly, test on a duplicate theme, then publish.

Duplicate paths, thin tag pages, missing schema and orphaned collections, resolved one at a time.
Process

How a technical sprint runs

  1. Week 1

    Crawl and compare

    We crawl the store, then compare what we find with the Page indexing and Crawl stats reports in Search Console. The gap between the two tells us where Googlebot wastes time.

  2. Week 1

    Prioritize by revenue

    Issues on collections and products that sell come first. A broken canonical on a best seller beats 400 missing alt tags on blog images.

  3. Weeks 2 to 3

    Fix on a duplicate theme

    All theme edits are made on a copy, tested on desktop and mobile, then published. Nothing is changed live without a rollback.

  4. Ongoing

    Validate and monitor

    We request validation in Search Console, watch indexing and crawl stats, and keep going with 15+ hours of technical work each month.

Deliverables

What technical SEO covers on our plans

  • Internal links pointed at canonical /products/ URLs

  • Tag, vendor and type pages set to noindex or turned into real collections

  • Custom robots.txt.liquid rules where the defaults fall short

  • Pagination that crawlers can follow, with or without infinite scroll

  • Product, Offer, BreadcrumbList and Organization schema, deduplicated across apps

  • Leftover app code removed and script loading reviewed

  • Markets hreflang and translated content checked per storefront

  • Redirects for changed handles, deleted products and old platforms

Deeper

What you can and cannot change on Shopify

Knowing the platform's limits saves months of wasted recommendations. These are the ones that matter most.

Fixed by Shopify#

The /products/, /collections/, /pages/ and /blogs/ prefixes cannot be removed. The sitemap is generated automatically and cannot be edited directly. Canonical tags are written by the platform through canonical_url, and hreflang for Markets is injected through content_for_header. Any audit that tells you to "flatten your URL structure" was not written by a Shopify specialist.

Controlled in the theme#

Most of the real wins sit here. Product cards that use the within: collection filter create the duplicate collection-product paths, and changing them to plain product.url fixes it store-wide. Tag pages can get a conditional noindex. Pagination links can be rendered as real anchor tags so crawlers reach page 2 and beyond, even when shoppers see infinite scroll. Structured data is usually in the theme too, and it often clashes with the JSON-LD a review app injects.

Controlled in settings and data#

Since 2021, robots.txt.liquid lets you add rules on top of Shopify's defaults, which already block cart, checkout, sort parameters and multi-filter URLs. Products, pages and blog posts can be hidden from the sitemap and search engines with the seo.hidden metafield, or products can be set to Unlisted. Redirects live in the admin, and Shopify offers to create one automatically when you change a handle. Many stores untick that box by accident.

Where it overlaps#

Technical fixes pay off most when the pages behind them are worth crawling. That is why we pair this work with collection page SEO, and why stores with thousands of SKUs need a large catalog plan for filters and variants. If speed is the main complaint, see speed optimization.

Organic revenue in 7 months
$758,772
Chinese automotive accessories brand, 30 products
Organic clicks a day
1,000
Chinese tech brand, from DR 12
Keywords ranking for one client
21,877
Up against a VC-backed leader
Single order from one keyword
$130,000
Moved from page 3 to page 1
FAQ

Shopify technical SEO questions

Does Shopify handle duplicate content automatically?

Partly. Shopify adds canonical tags that point collection-product URLs and variant URLs back to the main product URL. But canonicals are hints, not commands. If your theme links to /collections/sofas/products/grey-sectional from every collection page, Google still crawls those URLs and your internal link signals go to the non-canonical version. Fixing the theme links is the real solution.

Should I edit robots.txt.liquid on my Shopify store?

Only with a specific reason. Shopify's default rules already block checkout, cart, sort parameters, combined tag URLs and multi-filter URLs, and Shopify updates them over time. Useful additions include blocking single-filter parameters you never want indexed or internal search variants. Never block a URL you also want to noindex, because Google cannot see a noindex tag on a page it is not allowed to crawl.

Are Shopify tag pages bad for SEO?

Usually, as they are built by default. A URL like /collections/sofas/leather reuses the parent collection's title and description and shows a filtered subset of products, so it looks like thin duplicate content. The fix is either a conditional noindex in the theme, or turning the high-demand ones, like leather sofas, into real collections with their own copy, title and internal links.

Can I change the /products/ and /collections/ URL structure?

No. Shopify fixes those prefixes on every store, including Shopify Plus. It is not a ranking problem. Google ranks Shopify stores with this structure every day. Effort is better spent on handles, internal links and page content. Be careful with apps or proxy setups that promise to remove the prefixes, as they add complexity without a clear SEO benefit.

How do apps affect Shopify technical SEO?

Three ways. They add JavaScript that slows pages and hurts Core Web Vitals. They leave code behind in the theme after you uninstall them. And some inject their own structured data, so a product page ends up with two conflicting Product schemas. We audit installed and removed apps as part of every technical review.

Find out what Googlebot is wasting time on

Send us your store and we will point out the biggest crawl and indexing issues for free.

Talk to Zack directlyUsually replies within 24 hours
WeChatSearch this ID in WeChat
WhatsApp +86 186 8214 2136