Shopify SEO Checklist
An ordered Shopify SEO checklist — fixed URL prefixes, the collection/product duplicate-URL fix, structured data, sitemap, robots.txt.liquid, app bloat, and pre-launch.
A working, top-to-bottom checklist for auditing or launching a Shopify store — the companion action list to the Shopify SEO explainer, which owns the concepts. Work it in the order you'd actually do the job: URL structure (the /products/, /collections/, /pages/, /blogs/ prefixes are fixed by the platform and only the handle is yours), then the single highest-priority fix — the collection/product duplicate-URL issue, where Shopify's canonical tag already points at the clean URL but theme internal links generated with | within: collection point at the long one, a competing signal Google's own docs say to eliminate. Then unique titles and meta descriptions (collection descriptions are blank by default), structured data (verify what the theme outputs and watch for ambiguous/duplicate schema from apps), the auto-generated non-editable sitemap.xml, robots.txt.liquid (editable since June 2021 but unsupported and risky), theme speed and app bloat, Bing plus IndexNow, and a folded-in pre-launch checklist most guides split into a separate article.
TL;DR — This is the do-it-in-order checklist for a Shopify store, not an explainer — for the “why” behind each item (especially the collection/product duplicate-URL mechanism), lean on the main Shopify SEOShopify SEO is the practice of optimizing a Shopify store to rank in organic search. Shopify handles a lot for you automatically — canonical tags, an XML sitemap, SSL, a fast CDN — but it also imposes a fixed URL structure (/products/, /collections/, /pages/, /blogs/) and creates a duplicate URL for every product reachable through a collection, which the platform canonicalizes for you. article. Shopify handles a lot for you out of the box: canonical tagsA rel=\"canonical\" annotation — in the HTML <head> or an HTTP Link header — that tells search engines which URL is the preferred version of duplicate or near-duplicate content., an automatic sitemapA sitemap is a file that lists the pages, images, videos, and other files on your site so search engines can discover them. It helps discovery, but submitting a sitemap doesn't guarantee crawling or indexing., HTTPSHTTPS is the encrypted version of HTTP — it uses TLS to authenticate the server and protect data in transit between a browser and a website. Google announced it as a lightweight ranking signal in 2014 and today conditionally prefers HTTPS pages as canonical; Chrome marks plain HTTP pages 'Not Secure.', and a CDN. Themes and apps may add structured dataStructured data is a standardized way of labeling page content (using the schema.org vocabulary in JSON-LD, Microdata, or RDFa) so search engines can understand its meaning. It's not a direct ranking factor — its value is rich results and entity understanding., so verify their actual output. The checklist covers the important choices Shopify still leaves to you. The single most important item: make sure the internal linksAn internal link is a hyperlink from one page on a website to another page on the same website. Internal links help search engines discover your pages and pass ranking signals (PageRank and anchor-text context) between them. to your products match the clean
Evidence for this claim Shopify automatically generates canonical tags and sitemap files and includes SSL for stores. Scope: Current Shopify platform defaults; themes and apps can add conflicting markup. Confidence: high · Verified: Shopify Help Center: Improving SEO Evidence for this claim Shopify supports URL redirects for forwarding visitors from an old store path to a new one. Scope: Shopify admin redirect functionality and platform constraints. Confidence: high · Verified: Shopify Help Center: URL redirects/products/URL, not the long collection version.
What this checklist is (and isn’t)
Shopify is genuinely good for SEO out of the box — it adds canonical tagsA rel=\"canonical\" annotation — in the HTML <head> or an HTTP Link header — that tells search engines which URL is the preferred version of duplicate or near-duplicate content., generates a sitemapA sitemap is a file that lists the pages, images, videos, and other files on your site so search engines can discover them. It helps discovery, but submitting a sitemap doesn't guarantee crawling or indexing., serves everything over HTTPSHTTPS is the encrypted version of HTTP — it uses TLS to authenticate the server and protect data in transit between a browser and a website. Google announced it as a lightweight ranking signal in 2014 and today conditionally prefers HTTPS pages as canonical; Chrome marks plain HTTP pages 'Not Secure.' on a fast CDN, and ships basic product structured data on its own themes. So this isn’t a rescue mission. It’s a list of the handful of things Shopify doesn’t do for you, worked in the order you’d actually do them: structure first, then content, then the technical bits, then speed, then a pre-launch pass.
I’m not going to re-explain concepts here. When an item needs background, I link out — mostly to the main Shopify SEOShopify SEO is the practice of optimizing a Shopify store to rank in organic search. Shopify handles a lot for you automatically — canonical tags, an XML sitemap, SSL, a fast CDN — but it also imposes a fixed URL structure (/products/, /collections/, /pages/, /blogs/) and creates a duplicate URL for every product reachable through a collection, which the platform canonicalizes for you. article, and to the canonical tag, structured data, sitemaps, and robots.txtA plain-text file at the root of a host that tells crawlers which URLs they may and may not request. It controls crawling, not indexing — a blocked URL can still be indexed if it's linked from elsewhere. pages already on the site.
1. Your URL prefixes are fixed — only the handle is yours
On Shopify you cannot change /products/, /collections/, /pages/, or /blogs/.
Those prefixes are baked into the platform on every plan. What is yours is the
handle — the slug after the prefix. So the URL job is small: make handles short and
descriptive, and set up a 301 redirectA 301 redirect is the HTTP status code for a permanent move: it tells browsers and search engines a URL has moved for good, and it's the strongest signal for consolidating a page's ranking signals onto the new URL. Google says permanent redirects don't cause a loss in PageRank. any time you change one.
2. Fix the collection/product duplicate URL (the big one)
Every product that lives in a collection is reachable at two URLs: the clean
/products/handle and a longer /collections/collection-handle/products/handle.
Shopify’s canonical tag already points at the clean one — good. The catch is that many
themes build their internal linksAn internal link is a hyperlink from one page on a website to another page on the same website. Internal links help search engines discover your pages and pass ranking signals (PageRank and anchor-text context) between them. using the long version, so your own site sends
Google a mixed message. Google’s guidance is to keep internal links, sitemap, and
canonical tags all pointing at the same URL. Fixing your theme’s internal links to use
the clean /products/ URL is the highest-value technical item on this whole list. The
full mechanism and the Liquid fix are in the main Shopify SEO article.
3. Write unique titles and meta descriptions
Shopify auto-writes title tagsThe title tag is the HTML title element in a page's head that specifies the document's title. It's the primary source for the SERP title link and a confirmed light ranking factor — but since August 2021 Google doesn't always show it verbatim. (with your store name) on its own themes, but it does not write meta descriptionsThe meta description is an HTML head tag — `<meta name=\"description\" content=\"…\">` — that suggests a short summary of the page for the search snippet. It's not a Google ranking factor, and Google rewrites it the majority of the time, but a good one can still lift click-through. — and collection descriptions are blank by default. Write a unique title and meta description for every product, collection, and page, and don’t leave collection descriptions empty. If the box is blank, Google has nothing to work with.
4. Check your structured data
Free themes like Dawn output basic product schemaProduct schema (schema.org/Product) is structured data that tells search engines a page's product name, price, availability, and reviews so it can appear in Shopping-style rich results. It's separate from a Google Merchant Center feed, though Google reconciles the two. automatically, but often skip fields
like sku, gtin, shipping, and returns. Don’t just assume it’s right — check
Search ConsoleGoogle's free tool for monitoring crawling, indexing, and search performance.’s enhancement reports, and be careful about stacking SEO apps that also
add product schema. Two sources of the same schema can trigger warnings.
5. Verify the sitemap (don’t try to edit it)
Your sitemap lives at yourdomain.com/sitemap.xml, updates itself, and can’t be
hand-edited. Just submit it in Google Search ConsoleA free Google service that reports how a site performs in Google Search and surfaces problems with how Google crawls, indexes, and serves it. It's first-party data straight from Google — but you don't need it to appear in results. and Bing Webmaster ToolsMicrosoft's free portal for monitoring and improving how a site appears in Bing search — the peer to Google Search Console, plus IndexNow instant indexing, richer backlink data, and keyword volumes. Because Bing's index also feeds Microsoft Copilot, it doubles as a window into AI-search visibility. and
confirm it’s clean.
6. Leave robots.txt alone unless you know what you’re doing
Shopify’s default robots.txtA plain-text file at the root of a host that tells crawlers which URLs they may and may not request. It controls crawling, not indexing — a blocked URL can still be indexed if it's linked from elsewhere. is fine for most stores. You can override it with a
robots.txt.liquid file, but Shopify itself calls that unsupported and warns you can
lose all your traffic if you get it wrong. Only touch it with a developer who knows the
risk.
7. Watch app bloat
Every app that adds storefront features usually injects JavaScript, and that slows your pages down. Review your installed apps, remove ones you don’t use, and check that uninstalled apps didn’t leave code behind. Benchmark your Core Web VitalsGoogle's three real-user UX metrics — LCP (loading), INP (responsiveness), and CLS (visual stability) — used by Google's ranking systems, with no official weight attached, measured on field data. before adding anything new.
Before you launch
Before flipping a new or migrated store live: remove the storefront password, make sure there’s no leftover sitewide noindexNoindex is a directive that tells search engines to keep a page out of their index, so it won't appear in search results. It works only on pages a crawler can actually fetch — a page blocked in robots.txt can never be noindexed., map 301 redirectsA 301 redirect is the HTTP status code for a permanent move: it tells browsers and search engines a URL has moved for good, and it's the strongest signal for consolidating a page's ranking signals onto the new URL. Google says permanent redirects don't cause a loss in PageRank. from every old URL, resubmit your sitemap, and watch for 404s in the first weeks.
Want the ordered audit version with Google’s exact wording, the Liquid specifics, the ambiguous-schema trap, and the full pre-launch list? Switch to the Advanced tab.
TL;DR — This is the companion action list to the Shopify SEOShopify SEO is the practice of optimizing a Shopify store to rank in organic search. Shopify handles a lot for you automatically — canonical tags, an XML sitemap, SSL, a fast CDN — but it also imposes a fixed URL structure (/products/, /collections/, /pages/, /blogs/) and creates a duplicate URL for every product reachable through a collection, which the platform canonicalizes for you. explainer, which owns the concepts — I don’t redefine them here, I make them checkable. Work it in order: (1) URL structureURL structure is how the parts of a web address — scheme, domain, path, query string, and fragment — are organized and formatted. It mostly affects crawling, usability, and how engines understand a page, not rankings directly. —
Evidence for this claim Shopify automatically generates canonical tags and sitemap files and includes SSL for stores. Scope: Current Shopify platform defaults; themes and apps can add conflicting markup. Confidence: high · Verified: Shopify Help Center: Improving SEO Evidence for this claim Shopify supports URL redirects for forwarding visitors from an old store path to a new one. Scope: Shopify admin redirect functionality and platform constraints. Confidence: high · Verified: Shopify Help Center: URL redirects/products/,/collections/,/pages/,/blogs/are fixed platform prefixes; only the handle is yours, and a handle change needs a 301. (2) The collection/product duplicate-URL fix — Shopify’scanonical_urlgenerally points to the clean product URL, but older or customized theme internal links built with| within: collectioncan point at the long URL, a competing signal Google explicitly says to eliminate; this is the #1 item. (3) Titles/meta — auto titles yes, meta descriptionsThe meta description is an HTML head tag — `<meta name=\"description\" content=\"…\">` — that suggests a short summary of the page for the search snippet. It's not a Google ranking factor, and Google rewrites it the majority of the time, but a good one can still lift click-through. no; collection descriptions are blank by default. (4) Structured dataStructured data is a standardized way of labeling page content (using the schema.org vocabulary in JSON-LD, Microdata, or RDFa) so search engines can understand its meaning. It's not a direct ranking factor — its value is rich results and entity understanding. — verify what the theme outputs, close thesku/gtin/shipping/returns gap, and watch for ambiguous (theme + app) schema in GSCA free Google service that reports how a site performs in Google Search and surfaces problems with how Google crawls, indexes, and serves it. It's first-party data straight from Google — but you don't need it to appear in results.. (5) SitemapA sitemap is a file that lists the pages, images, videos, and other files on your site so search engines can discover them. It helps discovery, but submitting a sitemap doesn't guarantee crawling or indexing. — auto-generated, non-editable; verify and submit, don’t hand-edit. (6) robots.txtA plain-text file at the root of a host that tells crawlers which URLs they may and may not request. It controls crawling, not indexing — a blocked URL can still be indexed if it's linked from elsewhere..liquid — editable since June 2021 but unsupported and risky. (7) Speed/apps — benchmark CWVGoogle's three real-user UX metrics — LCP (loading), INP (responsiveness), and CLS (visual stability) — used by Google's ranking systems, with no official weight attached, measured on field data., audit apps, remove ghost code. (8) Bing — Webmaster ToolsThe free, first-party consoles search engines give site owners — Google Search Console and Bing Webmaster Tools — to see how their pages are crawled, indexed, and ranked, and to fix problems. The legacy name is 'webmaster tools.' plus IndexNowIndexNow is an open push protocol that lets you instantly tell participating search engines (Bing, Yandex, Naver, Seznam, and Yep) which URLs you've added, changed, or removed via a simple HTTP request — and one submission is shared across all of them. Google does not use it.. (9) Pre-launch — password, noindexNoindex is a directive that tells search engines to keep a page out of their index, so it won't appear in search results. It works only on pages a crawler can actually fetch — a page blocked in robots.txt can never be noindexed., redirectsA redirect sends browsers and crawlers from a requested URL to a different one. An HTTP redirect specifically is a 3xx status code paired with a Location header; meta refresh and JavaScript redirects achieve a similar navigation without being a 3xx response themselves. Permanent redirects (301/308) are Google's signal the target should be canonical; temporary ones (302/303/307) aren't., canonical/hreflangHreflang is an annotation (in HTML, HTTP headers, or XML sitemaps) that tells search engines which language and optional region a page targets, and which alternate versions exist. It only works when every page in the cluster references all the others. carryover, resubmit sitemapA sitemap is a file that lists the pages, images, videos, and other files on your site so search engines can discover them. It helps discovery, but submitting a sitemap doesn't guarantee crawling or indexing., watch 404s.
How to use this
The main Shopify SEOShopify SEO is the practice of optimizing a Shopify store to rank in organic search. Shopify handles a lot for you automatically — canonical tags, an XML sitemap, SSL, a fast CDN — but it also imposes a fixed URL structure (/products/, /collections/, /pages/, /blogs/) and creates a duplicate URL for every product reachable through a collection, which the platform canonicalizes for you. article carries the definitions and the mechanisms — what Shopify automates, how the collection/product duplicate-URL thing works under the hood, why the canonical tagA rel=\"canonical\" annotation — in the HTML <head> or an HTTP Link header — that tells search engines which URL is the preferred version of duplicate or near-duplicate content. behaves the way it does. This page is the ordered, checkable companion: structure → content → technical → speed → pre-launch. Where an item needs the “why,” I link out rather than re-teaching it.
1. URL structure — audit the handles, respect the prefixes
/products/, /collections/, /pages/, and /blogs/ are non-negotiable platform
prefixes. You can’t remove them, flatten them, or restructure them on any plan — a
point most competitor checklists soften into vague “use clean URLs” advice. Only the
handle after the prefix is yours to optimize.
- Handles are short, descriptive, and keyword-relevant.
- Every handle change ships with a 301 redirectA 301 redirect is the HTTP status code for a permanent move: it tells browsers and search engines a URL has moved for good, and it's the strongest signal for consolidating a page's ranking signals onto the new URL. Google says permanent redirects don't cause a loss in PageRank. to the new URL (Shopify’s URL Redirects tool).
- You’re not fighting the prefixes — no attempts to force
/products/items to look like root-level URLs.
2. The collection/product duplicate URL — the highest-priority fix
This is the one item worth being pedantic about. Every product in a collection is reachable at two URLs:
- the clean
/products/handle - the collection-nested
/collections/collection-handle/products/handle
Shopify’s canonical_url object correctly points the canonical tag at the clean
/products/handle URL by default. The problem is internal linksAn internal link is a hyperlink from one page on a website to another page on the same website. Internal links help search engines discover your pages and pass ranking signals (PageRank and anchor-text context) between them.: themes commonly
generate product links inside collection loops with the | within: collection Liquid
filter, which produces the long, nested URL. So your canonical tag says one thing and
your own internal links say another — a competing signal.
Google’s ecommerce URL guidance is explicit on this:
“Use the same URL in internal links, sitemap files, and
<link rel="canonical">tags.”
And:
“Minimize the number of alternative URLs that return the same content to avoid Google making more requests to your site than needed.”
Remember that a canonical tag is a hint, not a directive — Google weighs it alongside your internal links and sitemap when it picks the URL to index. If your internal links consistently disagree with your canonical, you’re handing it a reason to disagree with you. The canonical tag alone doesn’t fully neutralize that; the internal links have to agree too.
- Crawl the site and confirm product canonical tags resolve to the clean
/products/handleURL (they usually already do). - Audit collection/product template internal links; stop generating them with
| within: collectionso they point at the clean URL. - Confirm the sitemap lists the clean URLs (it does by default) — so internal links, sitemap, and canonical all agree.
The full mechanism and the exact Liquid change live in the main Shopify SEO article — this is the “audit and fix,” not the “why.”
3. Titles and meta descriptions — mind the blank collection trap
Shopify auto-generates title tagsThe title tag is the HTML title element in a page's head that specifies the document's title. It's the primary source for the SERP title link and a confirmed light ranking factor — but since August 2021 Google doesn't always show it verbatim. including your store name on its own themes, but it does not author meta descriptionsThe meta description is an HTML head tag — `<meta name=\"description\" content=\"…\">` — that suggests a short summary of the page for the search snippet. It's not a Google ranking factor, and Google rewrites it the majority of the time, but a good one can still lift click-through., and collection descriptions are empty by default. A store can launch with hundreds of collection pages that have no description at all — nothing for Google to summarize, nothing for a searcher to read.
- Unique, hand-written title tag for every product, collection, and page (edit in the theme’s Search engine listing preview, not left to the auto template where it matters).
- Unique meta description on every important product, collection, and page.
- No blank collection descriptions on collections you actually want to rank.
4. Structured data — verify what’s built in, close the gap, avoid duplicates
Google’s ecommerce guidance actively endorses the platform route:
“Consider using an ecommerce platform’s integrated extensions or plugins, as they may automate structured data addition rather than manual coding.”
So you don’t have to hand-code JSON-LDJSON-LD (JavaScript Object Notation for Linked Data) is a script-based structured data format, typically paired with the schema.org vocabulary to describe page content for search engines and AI systems. Google recommends it over Microdata and RDFa because it's the easiest format to implement and maintain at scale — but all three work, and structured data isn't a ranking signal. on Shopify — but you do have to verify it.
Free themes (Dawn) output basic Product schemaProduct schema (schema.org/Product) is structured data that tells search engines a page's product name, price, availability, and reviews so it can appear in Shopping-style rich results. It's separate from a Google Merchant Center feed, though Google reconciles the two. (name, image, price, availability) via
the theme’s structured_data filter, but commonly omit sku, gtin,
shippingDetails, and hasMerchantReturnPolicy. BreadcrumbList and
Organization/Article schemaArticle schema (Article, NewsArticle, or BlogPosting) is structured data marking up a written piece's headline, author, and dates — Google labels it the \"Article rich result,\" but it's a better-displayed existing result, not a distinct new card, and it isn't required for Top Stories or Discover eligibility. usually aren’t built in at all. And Google’s own bar for
product rich resultsRich results (formerly 'rich snippets') are enhanced search listings — stars, images, prices, breadcrumbs, video thumbnails, and more — that Google and Bing build from structured data. They're a display feature, not a ranking factor, and eligibility never guarantees they'll show. is concrete:
“Adding the required product information properties for merchant listings means that your product pages can also be eligible for product snippets.”
- Check the GSC enhancement/Products report for errors and warnings.
- Look specifically for “ambiguous data” warnings — a classic sign that both the theme and an SEO app are outputting competing Product schema. Pick one source.
- Verify required properties (
name,image, and anoffersblock withprice/priceCurrency) are present, and fill the recommended gaps (availability,sku,gtin,shippingDetails,hasMerchantReturnPolicy) where you can — Google’s merchant-listing docs listavailabilityas recommended, not required. - Validate with Google’s Rich Results Test.
Shopify themes and apps may both touch structured data. Test the combined live output rather than assuming installed markup is complete or conflict-free.
Run the product-schema launch check with my free PDP SEO Checker Free
- Test representative product and variant URLs after theme or app changes.
- Confirm Product, Offer price, and availability appear in the delivered markup.
- Fix the theme, app, or catalog source, rerun, and validate the rendered page with Google.
The checker reports no Product schema, no schema price, no schema availability, and says price consistency was not evaluated from raw HTML.
5. Sitemap.xml — verify and submit, never hand-edit
Shopify’s sitemap is always at yourdomain.com/sitemap.xml, regenerates
automatically as products, collections, pages, and blog posts change, and auto-splits
across files (there’s a 50,000-URL-per-file ceiling it handles for you). What you
can’t do: hand-edit it, remove individual URLs from it, or build custom image or
video sitemapsA video sitemap is an XML sitemap (or mRSS feed) that uses the video:video extension to tell Google about videos hosted on your pages — the landing page, a thumbnail, a title, a description, and a link to the video file or player. It helps Google discover and surface video content, but it doesn't guarantee indexing.. Most competitor checklists say “submit your sitemap” without ever
stating that you can’t control it directly.
- Sitemap submitted in Google Search ConsoleA free Google service that reports how a site performs in Google Search and surfaces problems with how Google crawls, indexes, and serves it. It's first-party data straight from Google — but you don't need it to appear in results..
- Sitemap submitted in Bing Webmaster ToolsMicrosoft's free portal for monitoring and improving how a site appears in Bing search — the peer to Google Search Console, plus IndexNow instant indexing, richer backlink data, and keyword volumes. Because Bing's index also feeds Microsoft Copilot, it doubles as a window into AI-search visibility..
- It’s clean and free of errors — and you’re not wasting time trying to hand-edit something that regenerates itself.
Bing has reinforced that clean, current sitemaps still matter even as AI-powered search surfaces evolve, so this stays a real checklist item rather than something to deprioritize.
6. robots.txt.liquid — editable, but unsupported and risky
Shopify auto-generates a robots.txtA plain-text file at the root of a host that tells crawlers which URLs they may and may not request. It controls crawling, not indexing — a blocked URL can still be indexed if it's linked from elsewhere. that’s fine for most stores. Since June 2021
you can override it with a robots.txt.liquid theme template — but Shopify itself
labels this an unsupported customization and warns that incorrect use can result in
loss of all traffic. It’s not “locked” (a common myth) and it’s not “safe to poke
at” either.
- Default robots.txt left in place unless there’s a concrete, specific reason to change it.
- Any
robots.txt.liquidedits made by a developer who understands the risk, and verified before and after. - No accidental disallow of resources Google needs to render the store.
7. Theme speed and app bloat
Shopify handles a lot of performance automatically — CDN, HTTP/2, gzip, minificationMinification is the process of removing unnecessary characters — whitespace, line breaks, comments, and (for CSS/JS) redundant syntax or long identifiers — from CSS, JavaScript, or HTML source, without changing how the browser parses or executes it. It's distinct from compression (Gzip/Brotli): the two are complementary, applied minify-first, then compress., WebP image conversion. The two levers you actually control are theme choice and app count. Every app that adds storefront functionality typically injects JavaScript, and live-chat, upsell, and review apps are frequent speed offenders. Worse, uninstalling an app doesn’t always remove its injected code — “ghost” code left behind is a real and common drag.
- Benchmark Core Web VitalsGoogle's three real-user UX metrics — LCP (loading), INP (responsiveness), and CLS (visual stability) — used by Google's ranking systems, with no official weight attached, measured on field data. before installing any new app, so you can measure its cost.
- Quarterly app audit: remove apps you don’t use, and treat each remaining one as a speed cost, not just a feature.
- Check theme code for ghost snippets left behind by uninstalled apps.
- Tie the app audit to ongoing CWV monitoring — see the web performance cluster for the metrics themselves.
8. Bing — Webmaster Tools plus IndexNow
For a checklist, Bing’s baseline overlaps almost entirely with Google’s: a valid, discoverable sitemap, a robots.txt that doesn’t block essential content, clean redirect handling, and descriptive titles and descriptions. The one Bing-specific add worth a line is IndexNow — Microsoft actively promotes submitting changed URLs via the IndexNow API for faster re-crawlingCrawling is how search engines use automated bots (like Googlebot and Bingbot) to discover URLs and download pages. A page has to be crawlable to be indexed, but crawling on its own isn't a ranking factor..
- Store verified in Bing Webmaster Tools, sitemap submitted.
- Consider an IndexNow app/integration so product and price changes get re-crawled faster.
9. Pre-launch checklist (the part most guides split off)
Most competitor pieces publish the launch checklist as a completely separate article. It belongs here — the searches overlap, and a botched launch undoes every item above. Whether you’re launching new or migrating (see the site migrationsA site migration is any significant change to a website's URL structure, domain, platform, protocol, or hosting that can affect how search engines crawl, index, and rank it. The risk scales with how much you change at once. guidance for the full migration playbook), run this pass:
- Storefront password removed before DNS cutover — a live store behind the password gate can’t be crawled.
- No leftover sitewide noindex — confirm nothing is blocking indexingStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed. globally as a “precaution” from staging.
- Full 301 redirect map from every old URL, including filtered and paginated variants, to the matching new URL.
- Canonical and hreflang logic carried over correctly to the new structure (hreflang matters if you run multiple locales/markets).
- Sitemap resubmitted in GSC and Bing immediately after go-live.
- 404s and Crawl Stats watched closely in the first weeks, so broken redirects surface fast.
What I deliberately left out
Generic SEO 101 — keyword research, analytics setup, alt textAlt text is the value of the `alt` attribute on an HTML `<img>` element — a short text substitute chosen for the image's purpose and context, not a literal description of what it shows. It makes images accessible to screen-reader users and helps search engines understand images, mainly for image search. basics — is covered everywhere and isn’t Shopify-specific. This list foregrounds the platform constraints and the one fix (internal-link/canonical alignment) that most Shopify checklists bury. WordPress and other platforms have their own equivalents; if you’re comparing, the WordPress SEOWordPress SEO is the process of configuring, optimizing, and maintaining a WordPress site so search engines can efficiently crawl, index, and rank it. WordPress gives you a solid foundation, but its defaults — ?p=123 permalinks, attachment pages, thin archives — need cleanup before a site is actually well-optimized. checklist is the sibling piece.
AI summary
A condensed take on the Advanced version:
- This is the action list, not the explainer. The Shopify SEOShopify SEO is the practice of optimizing a Shopify store to rank in organic search. Shopify handles a lot for you automatically — canonical tags, an XML sitemap, SSL, a fast CDN — but it also imposes a fixed URL structure (/products/, /collections/, /pages/, /blogs/) and creates a duplicate URL for every product reachable through a collection, which the platform canonicalizes for you. article owns the concepts; this page makes them checkable, in order: structure → content → technical → speed → pre-launch.
- URL prefixes are fixed.
/products/,/collections/,/pages/,/blogs/can’t be changed on any plan — only the handle is yours. Change a handle, ship a 301. - The #1 item: fix the collection/product duplicate URL. Shopify’s canonical tagA rel=\"canonical\" annotation — in the HTML <head> or an HTTP Link header — that tells search engines which URL is the preferred version of duplicate or near-duplicate content.
already points at the clean
/products/handle, but theme internal linksAn internal link is a hyperlink from one page on a website to another page on the same website. Internal links help search engines discover your pages and pass ranking signals (PageRank and anchor-text context) between them. built with| within: collectionpoint at the long nested URL — a competing signal. Google says keep internal linksAn internal link is a hyperlink from one page on a website to another page on the same website. Internal links help search engines discover your pages and pass ranking signals (PageRank and anchor-text context) between them., sitemapA sitemap is a file that lists the pages, images, videos, and other files on your site so search engines can discover them. It helps discovery, but submitting a sitemap doesn't guarantee crawling or indexing., and canonical all on the same URL; the canonical tagA rel=\"canonical\" annotation — in the HTML <head> or an HTTP Link header — that tells search engines which URL is the preferred version of duplicate or near-duplicate content. alone (a hint, not a directive) doesn’t fix disagreeing internal links. - Titles auto-generate; meta descriptionsThe meta description is an HTML head tag — `<meta name=\"description\" content=\"…\">` — that suggests a short summary of the page for the search snippet. It's not a Google ranking factor, and Google rewrites it the majority of the time, but a good one can still lift click-through. don’t, and collection descriptions are blank by default — write unique ones.
- Structured dataStructured data is a standardized way of labeling page content (using the schema.org vocabulary in JSON-LD, Microdata, or RDFa) so search engines can understand its meaning. It's not a direct ranking factor — its value is rich results and entity understanding.: verify the theme’s Product schemaProduct schema (schema.org/Product) is structured data that tells search engines a page's product name, price, availability, and reviews so it can appear in Shopping-style rich results. It's separate from a Google Merchant Center feed, though Google reconciles the two., close the
sku/gtin/shipping/returns gap, and watch for “ambiguous data” warnings from theme- app both emitting Product schemaProduct schema (schema.org/Product) is structured data that tells search engines a page's product name, price, availability, and reviews so it can appear in Shopping-style rich results. It's separate from a Google Merchant Center feed, though Google reconciles the two.. Google endorses the platform/app route over hand-coding.
- SitemapA sitemap is a file that lists the pages, images, videos, and other files on your site so search engines can discover them. It helps discovery, but submitting a sitemap doesn't guarantee crawling or indexing..xml is auto-generated and non-editable — verify and submit in GSCA free Google service that reports how a site performs in Google Search and surfaces problems with how Google crawls, indexes, and serves it. It's first-party data straight from Google — but you don't need it to appear in results. and Bing; don’t try to hand-edit it.
- robots.txtA plain-text file at the root of a host that tells crawlers which URLs they may and may not request. It controls crawling, not indexing — a blocked URL can still be indexed if it's linked from elsewhere..liquid is editable since June 2021 but unsupported — Shopify warns misuse can lose all traffic; only touch it with a developer.
- Speed: Shopify automates CDN/compressionCompression (HTTP content encoding) shrinks text-based responses — HTML, CSS, JS, JSON, SVG, XML sitemaps — before they're sent over the network, using an algorithm like Gzip, Brotli, or Zstd, so the browser or crawler downloads fewer bytes. It's not a ranking factor, but it speeds up page loads and helps pages stay under crawler fetch limits./WebP; you control theme and app count. Benchmark CWV before adding apps, audit quarterly, and clear ghost code from uninstalled apps.
- Bing: Webmaster Tools + sitemap, and consider IndexNowIndexNow is an open push protocol that lets you instantly tell participating search engines (Bing, Yandex, Naver, Seznam, and Yep) which URLs you've added, changed, or removed via a simple HTTP request — and one submission is shared across all of them. Google does not use it. for faster re-crawls.
- Pre-launch: remove the storefront password, kill any sitewide noindexNoindex is a directive that tells search engines to keep a page out of their index, so it won't appear in search results. It works only on pages a crawler can actually fetch — a page blocked in robots.txt can never be noindexed., map every 301, carry canonical/hreflangHreflang is an annotation (in HTML, HTTP headers, or XML sitemaps) that tells search engines which language and optional region a page targets, and which alternate versions exist. It only works when every page in the cluster references all the others. over, resubmit the sitemap, watch 404s.
- Myth to drop: the unsourced “85% of Shopify SEOShopify SEO is the practice of optimizing a Shopify store to rank in organic search. Shopify handles a lot for you automatically — canonical tags, an XML sitemap, SSL, a fast CDN — but it also imposes a fixed URL structure (/products/, /collections/, /pages/, /blogs/) and creates a duplicate URL for every product reachable through a collection, which the platform canonicalizes for you. problems” canonical stat — it has no verifiable origin.
Official documentation
Primary-source documentation behind the checklist items.
- Designing a URL structure for ecommerce sites — the “same URL in internal linksAn internal link is a hyperlink from one page on a website to another page on the same website. Internal links help search engines discover your pages and pass ranking signals (PageRank and anchor-text context) between them., sitemapA sitemap is a file that lists the pages, images, videos, and other files on your site so search engines can discover them. It helps discovery, but submitting a sitemap doesn't guarantee crawling or indexing., and canonical” rule, and minimizing alternative URLs.
- Include structured data relevant to ecommerce — Google endorsing the platform/plugin route for schema over hand-coding.
- Product structured data — required vs. recommended properties, and the merchant-listing/product-snippet eligibility bar.
Bing / Microsoft
- Keeping Content Discoverable with Sitemaps in AI Powered Search (Bing WebmasterMicrosoft's free portal for monitoring and improving how a site appears in Bing search — the peer to Google Search Console, plus IndexNow instant indexing, richer backlink data, and keyword volumes. Because Bing's index also feeds Microsoft Copilot, it doubles as a window into AI-search visibility. blog, July 2025) — sitemapA sitemap is a file that lists the pages, images, videos, and other files on your site so search engines can discover them. It helps discovery, but submitting a sitemap doesn't guarantee crawling or indexing. hygiene still matters as search surfaces change.
Shopify (platform docs)
- Editing robots.txt.liquid — the customization is possible but unsupported and risky.
- Finding and submitting your sitemap — the sitemap is auto-generated at
/sitemap.xml. - Improving your online store performance — what Shopify automates vs. what you control.
Quotes from the source
On-the-record wording from Google’s ecommerce documentation. Each link deep-links to the quoted passage.
Google — ecommerce URL structureURL structure is how the parts of a web address — scheme, domain, path, query string, and fragment — are organized and formatted. It mostly affects crawling, usability, and how engines understand a page, not rankings directly. (the collection/product item)
- “Use the same URL in internal linksAn internal link is a hyperlink from one page on a website to another page on the same website. Internal links help search engines discover your pages and pass ranking signals (PageRank and anchor-text context) between them., sitemap filesA sitemap is a file that lists the pages, images, videos, and other files on your site so search engines can discover them. It helps discovery, but submitting a sitemap doesn't guarantee crawling or indexing., and
<link rel="canonical">tags.” — Google Search Central, Designing a URL structureURL structure is how the parts of a web address — scheme, domain, path, query string, and fragment — are organized and formatted. It mostly affects crawling, usability, and how engines understand a page, not rankings directly. for ecommerce sites. Jump to quote - “Minimize the number of alternative URLs that return the same content to avoid Google making more requests to your site than needed.” Jump to quote
Google — structured dataStructured data is a standardized way of labeling page content (using the schema.org vocabulary in JSON-LD, Microdata, or RDFa) so search engines can understand its meaning. It's not a direct ranking factor — its value is rich results and entity understanding. on a platform
- “Consider using an ecommerce platform’s integrated extensions or plugins, as they may automate structured data addition rather than manual coding.” — Google Search Central, Include structured data relevant to ecommerce. Jump to quote
Google — product schemaProduct schema (schema.org/Product) is structured data that tells search engines a page's product name, price, availability, and reviews so it can appear in Shopping-style rich results. It's separate from a Google Merchant Center feed, though Google reconciles the two. eligibility
- “Adding the required product information properties for merchant listings means that your product pages can also be eligible for product snippets.” — Google Search Central, Product structured data. Jump to quote
The Shopify SEO checklist
Work top to bottom. Items are ordered the way you’d actually do the job.
URL structureURL structure is how the parts of a web address — scheme, domain, path, query string, and fragment — are organized and formatted. It mostly affects crawling, usability, and how engines understand a page, not rankings directly.
- Handles (the slug after
/products/,/collections/,/pages/,/blogs/) are short, descriptive, and keyword-relevant. - You accept the prefixes are fixed — no fighting the platform to remove them.
- Every handle change ships with a 301 redirectA 301 redirect is the HTTP status code for a permanent move: it tells browsers and search engines a URL has moved for good, and it's the strongest signal for consolidating a page's ranking signals onto the new URL. Google says permanent redirects don't cause a loss in PageRank..
The collection/product duplicate URL (highest priority)
- Product canonical tagsA rel=\"canonical\" annotation — in the HTML <head> or an HTTP Link header — that tells search engines which URL is the preferred version of duplicate or near-duplicate content. resolve to the clean
/products/handleURL. - Theme internal linksAn internal link is a hyperlink from one page on a website to another page on the same website. Internal links help search engines discover your pages and pass ranking signals (PageRank and anchor-text context) between them. to products don’t use
| within: collection(they point at the clean URL, not the nested/collections/.../products/...one). - Internal linksAn internal link is a hyperlink from one page on a website to another page on the same website. Internal links help search engines discover your pages and pass ranking signals (PageRank and anchor-text context) between them., sitemapA sitemap is a file that lists the pages, images, videos, and other files on your site so search engines can discover them. It helps discovery, but submitting a sitemap doesn't guarantee crawling or indexing., and canonical tagsA rel=\"canonical\" annotation — in the HTML <head> or an HTTP Link header — that tells search engines which URL is the preferred version of duplicate or near-duplicate content. all agree on the same URL.
Titles and meta descriptionsThe meta description is an HTML head tag — `<meta name=\"description\" content=\"…\">` — that suggests a short summary of the page for the search snippet. It's not a Google ranking factor, and Google rewrites it the majority of the time, but a good one can still lift click-through.
- Unique title tagThe title tag is the HTML title element in a page's head that specifies the document's title. It's the primary source for the SERP title link and a confirmed light ranking factor — but since August 2021 Google doesn't always show it verbatim. on every product, collection, and page.
- Unique meta descriptionThe meta description is an HTML head tag — `<meta name=\"description\" content=\"…\">` — that suggests a short summary of the page for the search snippet. It's not a Google ranking factor, and Google rewrites it the majority of the time, but a good one can still lift click-through. on every important page.
- No blank collection descriptions on collections you want to rank.
Structured dataStructured data is a standardized way of labeling page content (using the schema.org vocabulary in JSON-LD, Microdata, or RDFa) so search engines can understand its meaning. It's not a direct ranking factor — its value is rich results and entity understanding.
- GSCA free Google service that reports how a site performs in Google Search and surfaces problems with how Google crawls, indexes, and serves it. It's first-party data straight from Google — but you don't need it to appear in results. enhancement/Products report checked for errors and warnings.
- No “ambiguous data” warnings (theme + app aren’t both emitting Product schemaProduct schema (schema.org/Product) is structured data that tells search engines a page's product name, price, availability, and reviews so it can appear in Shopping-style rich results. It's separate from a Google Merchant Center feed, though Google reconciles the two.).
- Required properties present;
sku/gtin/shippingDetails/hasMerchantReturnPolicygaps closed where possible. - Validated in Google’s Rich ResultsRich results (formerly 'rich snippets') are enhanced search listings — stars, images, prices, breadcrumbs, video thumbnails, and more — that Google and Bing build from structured data. They're a display feature, not a ranking factor, and eligibility never guarantees they'll show. Test.
SitemapA sitemap is a file that lists the pages, images, videos, and other files on your site so search engines can discover them. It helps discovery, but submitting a sitemap doesn't guarantee crawling or indexing.
- Sitemap submitted in Google Search ConsoleA free Google service that reports how a site performs in Google Search and surfaces problems with how Google crawls, indexes, and serves it. It's first-party data straight from Google — but you don't need it to appear in results. and Bing Webmaster ToolsMicrosoft's free portal for monitoring and improving how a site appears in Bing search — the peer to Google Search Console, plus IndexNow instant indexing, richer backlink data, and keyword volumes. Because Bing's index also feeds Microsoft Copilot, it doubles as a window into AI-search visibility..
- It’s clean and error-free — and you’re not trying to hand-edit it.
robots.txtA plain-text file at the root of a host that tells crawlers which URLs they may and may not request. It controls crawling, not indexing — a blocked URL can still be indexed if it's linked from elsewhere.
- Default robots.txt left in place unless there’s a specific reason to change it.
- Any
robots.txt.liquidedit is done by a developer and verified before/after.
Speed and apps
- Core Web VitalsGoogle's three real-user UX metrics — LCP (loading), INP (responsiveness), and CLS (visual stability) — used by Google's ranking systems, with no official weight attached, measured on field data. benchmarked before adding any new app.
- Unused apps removed; each remaining app treated as a speed cost.
- Ghost code from uninstalled apps cleared out of the theme.
Bing
- Store verified and sitemap submitted in Bing Webmaster Tools.
- IndexNowIndexNow is an open push protocol that lets you instantly tell participating search engines (Bing, Yandex, Naver, Seznam, and Yep) which URLs you've added, changed, or removed via a simple HTTP request — and one submission is shared across all of them. Google does not use it. considered for faster re-crawlingCrawling is how search engines use automated bots (like Googlebot and Bingbot) to discover URLs and download pages. A page has to be crawlable to be indexed, but crawling on its own isn't a ranking factor. after product/price changes.
Pre-launch (new store or migration)
- Storefront password removed before DNS cutover.
- No leftover sitewide noindexNoindex is a directive that tells search engines to keep a page out of their index, so it won't appear in search results. It works only on pages a crawler can actually fetch — a page blocked in robots.txt can never be noindexed..
- Full 301 redirectA 301 redirect is the HTTP status code for a permanent move: it tells browsers and search engines a URL has moved for good, and it's the strongest signal for consolidating a page's ranking signals onto the new URL. Google says permanent redirects don't cause a loss in PageRank. map from every old URL (including filtered/paginated variants).
- Canonical and hreflangHreflang is an annotation (in HTML, HTTP headers, or XML sitemaps) that tells search engines which language and optional region a page targets, and which alternate versions exist. It only works when every page in the cluster references all the others. logic carried over to the new structure.
- Sitemap resubmitted in GSC and Bing right after go-live.
- 404s and Crawl Stats watched closely in the first weeks.
Shopify SEO myths and traps
The recurring mistakes and bad advice worth naming, so you don’t waste effort on them.
“You can hand-edit Shopify’s sitemapA sitemap is a file that lists the pages, images, videos, and other files on your site so search engines can discover them. It helps discovery, but submitting a sitemap doesn't guarantee crawling or indexing..xml like a static file.” You can’t. It’s fully auto-generated, regenerates on its own, and manual changes don’t persist. You verify it and submit it — you don’t control it directly.
“robots.txtA plain-text file at the root of a host that tells crawlers which URLs they may and may not request. It controls crawling, not indexing — a blocked URL can still be indexed if it's linked from elsewhere. on Shopify is completely locked.”
That was true before June 2021. Now a robots.txt.liquid template can override the
default — but Shopify itself calls it an unsupported customization and warns that
misconfiguration can cost you all your traffic. It’s neither locked nor casual.
“The canonical tagA rel=\"canonical\" annotation — in the HTML <head> or an HTTP Link header — that tells search engines which URL is the preferred version of duplicate or near-duplicate content. alone solves the collection/product duplicate URL.”
Shopify’s canonical tagA rel=\"canonical\" annotation — in the HTML <head> or an HTTP Link header — that tells search engines which URL is the preferred version of duplicate or near-duplicate content. does point at the right URL by default. But Google’s own
documentation says internal linksAn internal link is a hyperlink from one page on a website to another page on the same website. Internal links help search engines discover your pages and pass ranking signals (PageRank and anchor-text context) between them., sitemapsA sitemap is a file that lists the pages, images, videos, and other files on your site so search engines can discover them. It helps discovery, but submitting a sitemap doesn't guarantee crawling or indexing., and canonical tags should all agree, and a
canonical is a hint rather than a directive. Inconsistent internal linksAn internal link is a hyperlink from one page on a website to another page on the same website. Internal links help search engines discover your pages and pass ranking signals (PageRank and anchor-text context) between them. from the
| within: collection filter are a competing signal a tag alone doesn’t fully
neutralize — the internal links have to be fixed too.
“A named Google statement says canonical misuse causes ‘85% of Shopify SEOShopify SEO is the practice of optimizing a Shopify store to rank in organic search. Shopify handles a lot for you automatically — canonical tags, an XML sitemap, SSL, a fast CDN — but it also imposes a fixed URL structure (/products/, /collections/, /pages/, /blogs/) and creates a duplicate URL for every product reachable through a collection, which the platform canonicalizes for you. problems.’” No such sourced statement exists. This figure traces to an unsourced, uncited claim on a third-party blog attributing it to John Mueller with no quote or citation provided. Don’t repeat the statistic or the attribution.
“Adding more SEO/schema apps always helps.” Two sources emitting the same schema (the theme’s Product JSON-LDJSON-LD (JavaScript Object Notation for Linked Data) is a script-based structured data format, typically paired with the schema.org vocabulary to describe page content for search engines and AI systems. Google recommends it over Microdata and RDFa because it's the easiest format to implement and maintain at scale — but all three work, and structured data isn't a ranking signal. plus an app’s) commonly triggers “ambiguous data” warnings in GSCA free Google service that reports how a site performs in Google Search and surfaces problems with how Google crawls, indexes, and serves it. It's first-party data straight from Google — but you don't need it to appear in results., and every extra app is a script-weight cost against Core Web VitalsGoogle's three real-user UX metrics — LCP (loading), INP (responsiveness), and CLS (visual stability) — used by Google's ranking systems, with no official weight attached, measured on field data.. More apps is often a net negative.
“Shopify’s fixed URL prefixes are a bug to work around.”
They’re a platform constraint, not a defect. /products/, /collections/, /pages/,
and /blogs/ are permanent on every plan. Optimize the handle; don’t burn time trying
to remove the prefix.
Quarterly Shopify app audit
Run this every quarter and before renewing a large app contract.
- Record the starting point. Save the current app list and capture the store’s Core Web VitalsGoogle's three real-user UX metrics — LCP (loading), INP (responsiveness), and CLS (visual stability) — used by Google's ranking systems, with no official weight attached, measured on field data. status in Search ConsoleA free Google service that reports how a site performs in Google Search and surfaces problems with how Google crawls, indexes, and serves it. It's first-party data straight from Google — but you don't need it to appear in results. or CrUXChrome User Experience Report — Google's public dataset of real-world (field) performance data from eligible Chrome users. It's the official field-data source behind the Core Web Vitals program.. Done means you have a dated baseline before anything is removed.
- Assign an owner and purpose to every app. Mark the storefront feature each app provides and the person responsible for it. Done means no app remains simply because nobody remembers why it was installed.
- Remove unused apps in a safe environment. Uninstall one candidate at a time and exercise the affected storefront flow. Done means the feature is either intentionally retired or replaced without breaking checkout or product pages.
- Search for ghost code. Review theme layouts, snippets, app embeds, and script includes left by removed apps. Done means no stale reference from the uninstalled app loads on the storefront.
- Check schema ownership. Test a product page and confirm only the intended theme or app emits Product data. Done means there are no competing Product blocks or ambiguous-data warnings caused by duplicate ownership.
- Compare performance with the baseline. Recheck the same page groups and note changes in field dataPerformance metrics captured from real users, not lab tests. as it becomes available. Done means the audit has a recorded before/after result and a named follow-up for any regression.
Shopify launch or migration response playbook
Use this runbook during cutover and the first weeks after a new or migrated store goes live.
- Open the storefront to crawlersA crawler — also called a spider or bot — is an automated program that fetches web pages, extracts their links, and queues new URLs to visit. Search engines use crawlers to discover and download content for their index.. Remove the storefront password and inspect
the live source for a sitewide
noindex. If either gate remains, stop the launch; otherwise continue. - Test the redirectA redirect sends browsers and crawlers from a requested URL to a different one. An HTTP redirect specifically is a 3xx status code paired with a Location header; meta refresh and JavaScript redirects achieve a similar navigation without being a 3xx response themselves. Permanent redirects (301/308) are Google's signal the target should be canonical; temporary ones (302/303/307) aren't. map. Sample high-value old URLs, product URLs, filtered paths, and paginated URLs. If a URL 404s or lands on an unrelated destination, correct the mapping before sending more traffic; if it resolves correctly, continue.
- Check canonical alignment. Crawl product links and compare their targets with
the sitemapA sitemap is a file that lists the pages, images, videos, and other files on your site so search engines can discover them. It helps discovery, but submitting a sitemap doesn't guarantee crawling or indexing. and canonical tagsA rel=\"canonical\" annotation — in the HTML <head> or an HTTP Link header — that tells search engines which URL is the preferred version of duplicate or near-duplicate content.. If collection links use the long nested product
path, remove
| within: collection; if all three signals use/products/handle, continue. - Verify international signals where used. Check that canonical and hreflangHreflang is an annotation (in HTML, HTTP headers, or XML sitemaps) that tells search engines which language and optional region a page targets, and which alternate versions exist. It only works when every page in the cluster references all the others. survived the new URL structureURL structure is how the parts of a web address — scheme, domain, path, query string, and fragment — are organized and formatted. It mostly affects crawling, usability, and how engines understand a page, not rankings directly.. If a locale points at a retired URL, fix the template or mapping before resubmitting sitemapsA sitemap is a file that lists the pages, images, videos, and other files on your site so search engines can discover them. It helps discovery, but submitting a sitemap doesn't guarantee crawling or indexing..
- Submit the live sitemap. Submit
/sitemap.xmlin Google Search ConsoleA free Google service that reports how a site performs in Google Search and surfaces problems with how Google crawls, indexes, and serves it. It's first-party data straight from Google — but you don't need it to appear in results. and Bing Webmaster ToolsMicrosoft's free portal for monitoring and improving how a site appears in Bing search — the peer to Google Search Console, plus IndexNow instant indexing, richer backlink data, and keyword volumes. Because Bing's index also feeds Microsoft Copilot, it doubles as a window into AI-search visibility. only after the preceding checks pass. If either service reports a fetch error, resolve that before treating discovery as complete. - Watch the first-weeks failure signals. Review 404s, Crawl StatsA Google Search Console report (under Settings) that shows how Google has crawled your site over the last 90 days — total requests, download size, and average response time, broken down by response code, file type, Googlebot type, and purpose. It's only available for root-level properties (a Domain property or a URL-prefix property verified at the site's root)., and indexingStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed. reports frequently. A rising cluster of old-path 404s goes back to step 2; a clean result becomes the post-launch baseline.
Prove the collection-product URL fix worked
Crawl internal product links
Test to run: Crawl collection pages and export every product-link destination.
Expected result: Internal product links resolve directly to
/products/{handle}, with no | within: collection paths.
Failure interpretation: A theme template or app is still generating the nested collection/product form.
Monitoring window: Immediate after the theme deployment.
Rollback trigger: Roll back if the theme change breaks collection navigation, variant selection, or product-card links.
Inspect canonical output
Test to run: View source on a sample of the old collection-scoped product URLs and the corresponding clean product URLs.
Expected result: The nested URL canonicalizes to the clean /products/ URL, and
the clean URL is self-canonical.
Failure interpretation: Theme canonical logic was overridden or duplicated.
Monitoring window: Immediate; canonical tagsA rel=\"canonical\" annotation — in the HTML <head> or an HTTP Link header — that tells search engines which URL is the preferred version of duplicate or near-duplicate content. are present in the HTML response.
Rollback trigger: Roll back if the clean product page starts canonicalizing to a nested, missing, or unrelated URL.
Compare the sitemap target
Test to run: Find the same products in Shopify’s product sitemapAn ecommerce XML sitemap is a machine-readable file (or set of files referenced by a sitemap index) listing the canonical URLs an online store wants crawled — usually split by content type (products, categories, brands, static pages) so a large, fast-changing catalog can be discovered and monitored more efficiently than through internal links alone..
Expected result: The sitemapA sitemap is a file that lists the pages, images, videos, and other files on your site so search engines can discover them. It helps discovery, but submitting a sitemap doesn't guarantee crawling or indexing. lists the clean /products/{handle} URLs and agrees
with both internal linksAn internal link is a hyperlink from one page on a website to another page on the same website. Internal links help search engines discover your pages and pass ranking signals (PageRank and anchor-text context) between them. and canonical tagsA rel=\"canonical\" annotation — in the HTML <head> or an HTTP Link header — that tells search engines which URL is the preferred version of duplicate or near-duplicate content..
Failure interpretation: The store is emitting competing preferred-URL signals or the wrong URL sample was tested.
Monitoring window: Check after Shopify regenerates the sitemapA sitemap is a file that lists the pages, images, videos, and other files on your site so search engines can discover them. It helps discovery, but submitting a sitemap doesn't guarantee crawling or indexing. following the change.
Rollback trigger: Roll back the theme change if it altered canonical product routes or created broken links; sitemap output itself is generated by Shopify and is not edited by the theme.
Measure Shopify theme and app health over time
Core Web Vitals status by page group
Metric: The field-data status for product, collection, and other important page groups across LCPLargest Contentful Paint — render time of the largest visible image or text block, relative to when the page started loading. ≤2.5 s (at the 75th percentile) is good., INPInteraction to Next Paint — the input-to-paint latency at the 75th percentile of a page's interactions. ≤200 ms is good., and CLSCumulative Layout Shift — a unitless score for unexpected visual movement, taken from the largest burst (session window) of layout shifts, not the lifetime sum. ≤0.1 is good..
What it tells you: Whether real visitors receive a stable, responsive, and fast-enough experience after theme and app changes.
How to pull it: Use the Core Web Vitals reportThe Google Search Console report (under Experience) that shows how your indexed URLs perform on the Core Web Vitals — LCP, INP, and CLS — using real-user field data from CrUX, grouped by device, status, and clusters of similar-performing URLs. in Google Search ConsoleA free Google service that reports how a site performs in Google Search and surfaces problems with how Google crawls, indexes, and serves it. It's first-party data straight from Google — but you don't need it to appear in results. and CrUXChrome User Experience Report — Google's public dataset of real-world (field) performance data from eligible Chrome users. It's the official field-data source behind the Core Web Vitals program. data for representative URLs.
Benchmark / realistic range: Use Google’s current Good/Needs improvement/Poor classification, and compare each page group with its own pre-change baseline instead of inventing a Shopify-specific target.
Cadence: Review monthly, during each quarterly app audit, and after field dataPerformance metrics captured from real users, not lab tests. has accumulated for a material theme or app change.
App-change performance delta
Metric: The before/after change in field Core Web VitalsGoogle's three real-user UX metrics — LCP (loading), INP (responsiveness), and CLS (visual stability) — used by Google's ranking systems, with no official weight attached, measured on field data. for page groups touched by an installed, removed, or upgraded storefront app.
What it tells you: Whether the feature’s real-user performance cost is acceptable relative to its business purpose.
How to pull it: Save dated CrUXChrome User Experience Report — Google's public dataset of real-world (field) performance data from eligible Chrome users. It's the official field-data source behind the Core Web Vitals program. or Search ConsoleGoogle's free tool for monitoring crawling, indexing, and search performance. snapshots before the change and compare the same templates afterward; use lab tests only as an early diagnostic.
Benchmark / realistic range: The honest benchmark is the store’s own pre-change baseline. A persistent regression without enough business value is the signal to remove or replace the app.
Cadence: At every storefront-app change and as a summary in the quarterly app audit.
Test yourself: Shopify SEO
Five quick questions on auditing a Shopify store. Pick an answer for each, then check.
Resources worth your time
My related writing
- The Beginner’s Guide to Technical SEO — where crawlingCrawling is how search engines use automated bots (like Googlebot and Bingbot) to discover URLs and download pages. A page has to be crawlable to be indexed, but crawling on its own isn't a ranking factor., indexingStoring a crawled page in the search index so it can appear in results. Crawled is not the same as indexed — Google selects what to keep, and indexing isn't guaranteed., and canonicalizationHow search engines pick one canonical URL among duplicates and consolidate signals onto it. fit in the bigger picture.
- CanonicalizationHow search engines pick one canonical URL among duplicates and consolidate signals onto it. — how Google picks a canonical when several URLs serve the same content, and why the tag is a hint.
- Core Web VitalsGoogle's three real-user UX metrics — LCP (loading), INP (responsiveness), and CLS (visual stability) — used by Google's ranking systems, with no official weight attached, measured on field data. — the metrics behind the theme-speed and app-bloat items.
Official
- Google — Designing a URL structure for ecommerce sites.
- Google — Product structured data.
- Shopify — Editing robots.txt.liquid and Finding and submitting your sitemap.
From around the industry
- SEO Checklist: 50 Tips to Optimize Your Website (Shopify blog) — Shopify’s own checklist; strong on fundamentals, lighter on the collection/product URL mechanism.
- A 17-Step Shopify SEO Checklist (Go Fish Digital) — a solid competitor checklist that references the category/product canonical issue in passing.
- Shopify & Shopify Plus Launch Checklist (Vervaunt) — the pre/post-launch tasks, including removing storefront passwords and confirming no sitewide noindexNoindex is a directive that tells search engines to keep a page out of their index, so it won't appear in search results. It works only on pages a crawler can actually fetch — a page blocked in robots.txt can never be noindexed..
- Keeping Content Discoverable with Sitemaps in AI Powered Search (Bing WebmasterMicrosoft's free portal for monitoring and improving how a site appears in Bing search — the peer to Google Search Console, plus IndexNow instant indexing, richer backlink data, and keyword volumes. Because Bing's index also feeds Microsoft Copilot, it doubles as a window into AI-search visibility. blog) — why sitemapA sitemap is a file that lists the pages, images, videos, and other files on your site so search engines can discover them. It helps discovery, but submitting a sitemap doesn't guarantee crawling or indexing. hygiene still matters.
- r/ShopifySEO and r/TechSEO — communities for debugging Shopify crawl, canonical, and schema issues.
Build-time retrieval analysis plus live signals for this exact article. The automatic chunk report includes a deterministic readiness score and is ready without a model download.
Search Console
sampleGA4 traffic (28d)
sampleCloudflare traffic (7d)
sampledCrUX field data (28d, phone)
sampleGoogle NLP entities
localChangelog
Updated Jul 19, 2026.
Editorial summary and recorded change details.Summary
Corrected a required-vs-recommended structured-data error in the Advanced lens's product-schema checklist item, and fixed a broken sentence in the Advanced TL;DR.
Change details
- Before
Advanced lens item 4 listed Google's required Product properties as name, price + priceCurrency, and availability.AfterCorrected the required-property list to name, image, and an offers block with price/priceCurrency (verified against Google's Merchant listing structured-data docs, fetched directly this pass) — availability moved to the recommended list alongside sku/gtin/shippingDetails/hasMerchantReturnPolicy, since Google's own table lists it as recommended, not required, and the article had also omitted the required `image` property entirely. -
Fixed a broken sentence in the Advanced lens TL;DR ('Shopify's canonical_url is generally points to...') to read grammatically ('Shopify's canonical_url generally points to...').
-
Checked this checklist for the same Shopify-Plus-only robots.txt error found and fixed in the sibling shopify-seo.mdx article on 2026-07-18 — not present here; every plan-gating claim (URL prefixes, robots.txt.liquid, sitemap) in this article already correctly states availability on every/any plan, confirmed against shopify.dev and help.shopify.com (via browser, after a 403 to a default User-Agent) this pass.
Full comparison unavailable — no prior snapshot was archived for this revision.