Technical SEO

Shopify SEO Checklist: What Actually Moves Rankings

A Shopify SEO checklist ordered by impact, not by app settings. What Shopify already fixes for you, and the five platform limits that cost you rankings.

SB
Senior SEO Consultant
Published August 21, 2026 · 12 min read
X in
Abstract geometric diagram of duplicate product paths converging through an arc into a single crimson canonical node

A Shopify SEO checklist is an ordered list of the technical, structural and content changes that determine whether a Shopify store can be crawled, indexed and ranked. Unlike a generic ecommerce checklist, it has to account for what the platform decides for you — because on Shopify, a large share of the standard SEO advice is either already handled or impossible.

Google Search Central documents that rel="canonical" is a hint, not a directive, and that Google selects its own canonical URL for every duplicate cluster. Shopify’s platform documentation confirms that on Online Store 2.0 themes the robots.txt file is editable through a robots.txt.liquid template — the single most useful crawl control the platform exposes. Google’s Core Web Vitals thresholds classify Largest Contentful Paint as “good” at 2.5 seconds or less, measured at the 75th percentile of real user visits.

Here’s the short version. Almost every Shopify SEO checklist on the first page of Google is written by a company that sells a Shopify app, so it’s organised around things an app can change. That produces stores where every product has a hand-written meta description and the category pages get no traffic at all.

This checklist is organised around what actually breaks on Shopify, in the order it breaks.

What Shopify already does for you

Start here, because roughly half the “problems” merchants pay to have fixed don’t exist.

Duplicate product URLs are already canonicalised. When a product sits in three collections, Shopify generates /collections/shoes/products/red-runner, /collections/sale/products/red-runner and /products/red-runner. It then points a canonical tag at the clean /products/ version and includes only that version in sitemap.xml. This is genuinely good default behaviour and better than most platforms manage.

The XML sitemap maintains itself. Shopify regenerates sitemap.xml as you add and remove products, splits it into child sitemaps by resource type, and keeps unpublished and redirected URLs out. You do not need an app for this and you cannot improve on it.

Redirects are native. The URL Redirects section under Navigation handles 301s without a plugin, including bulk CSV import. If you’re migrating a catalogue, that’s the tool — and the same redirect mapping discipline that applies to any site migration applies here.

HTTPS, CDN and mobile rendering are handled. Every Shopify store is served over TLS from a global CDN with a responsive theme. None of this is a competitive advantage — every competitor has it too — but none of it is a problem you need to solve.

The practical consequence: if a proposal quotes you for “fixing duplicate content from collection URLs” or “implementing an XML sitemap,” you’re being sold work the platform already did. That’s the first thing I check when a store owner asks me to review an SEO proposal.

The Shopify SEO checklist, in order of impact

This is the diagnostic order. Do not skip ahead — every stage below depends on the one before it being true.

  1. Compare indexed URLs against real pages. Open the Page Indexing report in Search Console. Count your products, collections, blog posts and static pages, then compare. A store with 300 products and 4,000 indexed URLs has a crawl problem, and no amount of metadata work will fix it.
  2. Find collections orphaned from the navigation. Crawl the store and list every collection URL receiving zero internal links. Shopify does not automatically link to collections that aren’t in a menu. Those pages sit in the sitemap and nowhere else.
  3. Control filter and tag URLs in robots.txt.liquid. Disallow the combinatorial tag-filter patterns under /collections/*/tag/. Leave canonical collection and product paths fully crawlable.
  4. Write unique copy on the collections that carry commercial intent. A collection page with an H1 and a product grid gives Google nothing to rank. This is where category keywords are won or lost.
  5. Verify product schema, then move budget to links. Check rendered product markup for name, price, availability and reviews, fix what the theme omits, and stop. Past this point, authority is the constraint, not technical work.

In my experience auditing ecommerce stores, steps 1 and 2 account for most of the gap between “we did all the SEO” and “nothing happened.” Merchants optimise the 300 pages they know about while Google spends its crawl allowance on 3,700 they’ve never seen.

Collection pages are the item everyone skips

Collection pages are the highest-value real estate on a Shopify store and the most neglected. They map directly to category-level commercial keywords — the terms with volume and buying intent — while product pages compete for long-tail queries with far less traffic.

Three things go wrong, consistently.

Collections aren’t in the navigation, so they have no internal links. Shopify builds menus manually. A collection created for a marketing campaign and never added to a menu is discoverable only through the sitemap. It has no internal PageRank flowing to it and Google treats it accordingly. This is an orphan page problem with a Shopify-specific cause.

Collections have no copy. The default theme renders a title and a grid. Two hundred words of genuine category context — what’s in the range, how to choose, what differentiates it — is the difference between a page that ranks for “waterproof hiking boots” and one that doesn’t.

Pagination inherits page one’s metadata. Shopify applies the same SEO title and meta description to /collections/boots, ?page=2, ?page=3 and so on. Search Console flags these as duplicate meta descriptions, and while duplicate meta isn’t a penalty, it is a signal that nobody looked at those pages. The fix is theme-level: make the title template append the page number, and follow standard pagination handling for SEO.

Shopify’s five real technical limits

These are the constraints that actually exist. Two are worth working around; three are worth accepting.

1. Forced URL prefixes — accept it. You cannot remove /collections/ or /products/. Every guide that treats this as a crisis is wrong. Google has never demonstrated a ranking preference for shorter paths, and URL structure sits far below content and links in any realistic weighting. Spend the engineering budget elsewhere and read the actual thinking on URL structure for SEO before you touch it.

2. Tag-filter URL sprawl — fix it. This is the real duplicate content problem. Every tag applied to a collection generates a crawlable URL, and combinations multiply. A collection with 12 tags can produce hundreds of near-identical filtered views, each thin, each competing with the parent. This is classic faceted navigation damage and it’s the reason Shopify stores end up with indexed URL counts an order of magnitude above their real page count. Disallow the patterns in robots.txt.liquid.

3. Limited blog functionality — accept it, mostly. Shopify’s blog engine is basic: one level of categorisation via tags, no custom taxonomies, limited templating. It’s enough to publish and rank content. It is not enough to build an elaborate hub-and-spoke architecture without theme development, so plan your topical authority structure around what the platform can express.

4. Server response time is not yours to tune — accept it. You don’t control Shopify’s infrastructure. TTFB is largely fixed. What you do control is everything the theme loads on top of it, which is where all the real damage happens anyway.

5. Checkout and account pages are locked — accept it, and confirm they’re excluded. These are on Shopify’s domain infrastructure and shouldn’t be indexed. They’re excluded by default. Verify once and move on.

Product schema is the one piece of markup on a Shopify store with a direct, visible payoff. Correct Product markup with name, offers, price, priceCurrency, availability and aggregateRating is what produces price and review annotations in search results — and increasingly what determines whether a product gets cited in an AI-generated shopping summary.

Most modern themes ship reasonable JSON-LD. Most also ship it incompletely. The common omissions are availability (so the listing can’t show in-stock status), aggregateRating where reviews live inside a third-party app that renders client-side, and sku/gtin identifiers.

Check the rendered output, not the theme source — the schema.org Product vocabulary is the reference, and Google’s structured data documentation defines which properties are required for rich results. This overlaps directly with schema markup work on any site, but on Shopify the theme is doing the writing, so the audit is about what it left out.

One AI-search-specific note: if your reviews render through a JavaScript app after page load, they may not be in the HTML that AI crawlers parse. That’s a different problem from Googlebot rendering, and it’s covered in more depth in the guide to controlling AI crawler access.

Speed on Shopify: what you control

You don’t control the server. You control everything stacked on top of it, and on most stores that stack is the problem.

The measurable causes, in the order I find them:

  • Apps. Every installed app injects script into the storefront. Ten apps is normal; ten apps is also 500KB of JavaScript executing before anything is interactive. Uninstalling an app doesn’t always remove its code — check the theme for leftover snippets.
  • Hero images and banners. Uncompressed hero images are the most common LCP element on a Shopify homepage. Serve them appropriately sized, in a modern format, and don’t lazy-load the one above the fold.
  • Third-party fonts and review widgets. Both block render. Both are usually deferrable.
  • Theme sliders and carousels. They shift layout as they initialise, which is a direct CLS cost.

Measure with field data in Search Console rather than lab scores. A PageSpeed Insights score of 40 on a store that passes Core Web Vitals for real users is not an emergency. The detail is in the guides to LCP optimisation and cumulative layout shift.

Do you need a Shopify SEO app?

Usually not. Occasionally one, for a specific reason.

An app earns its place if you need bulk metadata editing across hundreds of SKUs, or if your theme’s product schema is genuinely incomplete and you don’t have a developer. That’s the list.

An app does not earn its place for canonical tags, sitemaps, redirects or “SEO scores.” Shopify does the first three natively and the fourth is a made-up number. If an app’s dashboard shows you a green circle, that circle has no access to Search Console and no knowledge of how you rank.

The cost is real: every app adds storefront JavaScript. An SEO app that costs 400ms of render time is a net negative, and I’ve removed more of them from stores than I’ve installed. If you’re weighing app spend against consultant spend, the pricing page has the honest comparison, and a proper technical SEO audit will tell you within a week which of the two you actually need.

Where the Shopify SEO checklist ends

Every item above is a floor, not a strategy. Once indexing is clean, collections have copy, and product markup is correct, a Shopify store is technically competitive with anything else in its SERP. What separates it from the competitor above it at that point is content depth and links — and that’s true of every platform, which is exactly the point.

Run the checklist in order. Stop when you hit the point where the next fix is worth less than a link would be. On most stores I audit, that point arrives faster than the owner expects — usually around week three, and almost always before anyone has touched a meta description.

If you want that assessment done properly rather than guessed at, that’s what an ecommerce SEO audit is for.

Frequently Asked Questions

Is Shopify good for SEO?

Shopify is good enough for SEO that the platform is almost never the reason a store doesn’t rank. It handles canonicalisation of duplicate product URLs, generates and maintains an XML sitemap automatically, and serves everything over a fast global CDN. What it gives you in return for that convenience is less control — you can’t remove the /collections/ and /products/ path segments, and you can’t restructure URLs freely. Neither of those is a ranking factor. Thin collection pages and no links are.

Does Shopify do SEO automatically or do I have to do my own SEO?

Shopify automates the plumbing and none of the strategy. Out of the box you get canonical tags, an auto-updating sitemap, mobile-responsive themes and basic product schema from most themes. Shopify doesn’t do keyword research, doesn’t write collection copy, doesn’t build internal links between collections, and doesn’t earn you a single backlink. The automated part is roughly the first ten percent of the work — and the least valuable ten percent.

How long does Shopify SEO take?

Expect three to four months for long-tail product and collection terms, and six to twelve months for competitive category keywords. The timeline is driven by domain authority and crawl history, not by the platform. A Shopify store that launched last month won’t outrank an established competitor in a quarter regardless of how clean the technical setup is. Technical fixes show up faster than content and links, because indexing changes can land within days of a recrawl.

Do I need a Shopify SEO app?

Most stores don’t, and the ones that do need exactly one. Shopify already handles canonicals, sitemaps and redirects natively through the Navigation and URL Redirects settings. An app is worth it for bulk metadata editing across hundreds of products, or for JSON-LD if your theme ships incomplete product schema. Every app adds JavaScript to the storefront, so an SEO app that costs you 400ms of render time is a net loss.

How do I fix duplicate content on Shopify collection pages?

Start by confirming there’s a real problem, because the most-reported one is already solved. Shopify canonicalises collection-scoped product URLs to the clean /products/ path and excludes the duplicates from sitemap.xml. The genuine duplication lives elsewhere: tag-filter URLs under /collections/name/tag/, and paginated collection pages that inherit an identical title and meta description from page one. Block the tag-filter patterns in robots.txt.liquid and give each paginated page a distinct title.

Ben — Senior SEO Consultant
Written by
Ben

Senior freelance SEO consultant with 15 years and 200+ projects across 12 countries. I work directly with companies that want measurable organic growth — no agencies, no juniors, no fluff.

Leave a comment

Your email won't be published. No spam, ever.

Run this checklist
on your site. Free.

A real technical audit. No commitment, response within 24 hours.