Home / Writing / eCommerce SEO
eCommerce SEO

eCommerce SEO for Shopify: The Complete Guide to Ranking a Store

A practitioner's guide to ranking a Shopify store: architecture, collection and product optimization, schema, Core Web Vitals, feeds, and AI shopping.

The short answerRanking a Shopify store means fixing four things in order: a clean collection-and-product architecture, thin product and category pages turned into real answers, Product and BreadcrumbList schema that engines trust, and Core Web Vitals that survive a heavy theme. Feeds and AI shopping compound the rest.

Why Shopify SEO is its own discipline

I have shipped SEO work on plenty of platforms, and Shopify is the one people underestimate the most. On the surface it looks solved. You get clean URLs, automatic sitemaps, a fast CDN, mobile themes out of the box, and canonical tags you never have to write by hand. A founder reads that list and assumes ranking is handled. Then six months later they have four thousand indexed URLs, half of them near-duplicates, a homepage that outranks every collection they actually want to sell, and product pages so thin that Google treats them as manufacturer boilerplate. That gap between "it looks handled" and "it is actually ranking" is where this guide lives.

BEFORENOW1app installed12 real levers

Shopify SEO is its own discipline because the platform makes a specific set of decisions for you, and those decisions have SEO consequences you do not control from the theme editor. The URL for a product changes depending on how you link to it. Collections paginate and filter in ways that spawn crawlable URLs you never meant to create. Variants can duplicate content across a dozen near-identical pages. The default theme loads apps you forgot you installed, each one dragging a script into the head. None of this is visible in the admin. You find it in Search Console, usually after it has already cost you traffic.

The other reason it is its own game: commerce intent is different from informational intent. A blog ranks by answering a question well. A store ranks by matching a shopper to a product at the exact moment they are ready to buy, and by convincing an algorithm that the transaction will go smoothly. Google now evaluates price competitiveness, shipping, returns, and review volume as part of deciding if it shows your product at all. You are not just optimizing a page. You are optimizing a purchasable object across search results, the Shopping tab, the free listings, and increasingly an AI assistant that reads your structured data and decides on the shopper's behalf.

So the mental model for this guide is not "install an SEO app and tick boxes." It is: understand what Shopify does automatically, find the places where its defaults hurt you, and build the structured, fast, answer-rich store that every downstream surface rewards. I have run this on stores doing seven figures on Shopify Plus, and the wins are almost never exotic. They are architecture, page depth, schema, and speed, applied in that order.

One more framing point before we get into the work, because it changes how you prioritize. Shopify SEO has a compounding shape that paid traffic does not. A collection page you build well ranks for years and keeps sending free, high-intent shoppers long after the effort is spent, while a paid campaign stops the moment the budget stops. That is why I tell founders to treat the SEO fixes in this guide as capital investment, not marketing spend. The rewritten product descriptions, the clean architecture, the schema, these are assets that sit on the balance sheet of the store and appreciate. The order I work them in reflects return on effort: architecture first because it is the biggest multiplier and costs no content, then depth, then the technical layer that protects and amplifies both. Skip the order and you end up polishing schema on pages that were never going to rank because the architecture underneath them was wrong.

GoogleShoppingAI answersMarketplacesVoiceSHOPIFYSTOREA Shopify store is one catalog surfaced across many discovery channels

The architecture: collections, products, and how Shopify links them

Everything in Shopify SEO starts with two object types: collections and products. A collection is a category page, the thing that should rank for "leather weekender bags." A product is a single purchasable item, the thing that should rank for "Marlow leather weekender bag brown." Get the division of labor wrong and you spend months fighting your own store, because you will be trying to rank product pages for category terms they can never win, or padding collection pages with product-level detail nobody searching a category wants.

ARCHITECTURE CHECKLISTCollections for every category term with real volumeSub-collections by material, use case, price, audienceHuman-curated, not tag-only automated collectionsHierarchy expressed through menu + breadcrumbsTag and vendor permutations kept out of the index
Architecture checklist
DimensionCollection pageProduct page
Target queryCategory, head + mid-tailSpecific item, long-tail
Example"leather weekender bags""Marlow brown weekender 45L"
Primary contentIntro copy, curated grid, filtersPhotos, specs, reviews, FAQ
SchemaCollectionPage + BreadcrumbListProduct + Offer + Review
How many you needOne per real category termOne per SKU family

The rule I use: collections target the broad, high-volume, non-branded head and mid-tail terms. Products target long-tail, specific, often branded or spec-driven terms. "Running shoes" is a collection. "Hoka Clifton 9 men's wide" is a product. Most stores have too few collections, which means they have no page aimed at the terms that actually carry search volume. If you sell 300 products across 6 collections, you have 6 category landing pages competing for hundreds of category queries. Building thoughtful sub-collections, by material, by use case, by price band, by audience, is often the single biggest untapped lever in a Shopify catalog.

Shopify's data model matters here because a single product can belong to many collections, and each collection membership creates a linking relationship. That is powerful for internal linking and dangerous for URL sprawl, which I cover next. The architecture question you answer first is: what are the category pages a shopper would search for, and does each one exist as a real collection with its own title, its own intro copy, and its own curated set of products? Automated collections built purely on tags are fine for merchandising but often produce weak, overlapping SEO pages. The collections that rank are the ones a human decided should exist.

There is also a hierarchy question Shopify does not enforce for you. There is no true parent-child nesting of collections in the core platform. If you want "Bags > Leather Bags > Weekenders," you build that relationship through your navigation menu and your internal links and your breadcrumb structure, not through a folder tree. This is why breadcrumbs and menu structure do double duty on Shopify: they are the only place the category hierarchy actually lives, so search engines learn your taxonomy from them. Design the menu as an information architecture, not just a set of dropdowns.

The last architectural decision is what you do NOT turn into an indexable page. Tag pages, vendor pages, and every automated permutation Shopify can generate are candidates for noindex or for being blocked entirely. A catalog of 300 products should not produce 8,000 crawlable URLs. When it does, your crawl budget gets spent on junk, your good pages get crawled less often, and your best collections wait weeks for a re-crawl they should get in days.

A practical way to design this: sketch the store as a tree on paper before you touch the admin. Home at the top, your main categories as the first branches, sub-categories below them, products at the leaves. If a shopper would type a phrase into Google and expect a page of options, that phrase needs a node on the tree, which means a real collection. If a phrase describes one specific item, it is a leaf, a product. Anything that is neither, a random tag, a vendor grouping, an admin convenience, does not belong on the public tree at all and should be kept out of the index. I have watched stores triple their ranking collection pages just by drawing this tree honestly and discovering how many obvious category pages simply did not exist. The Shopify admin makes it easy to create collections, so the constraint is never the tool, it is that nobody sat down and decided what the category structure should actually be.

HomerootCollectionscategory pagesSub-collectionsmaterial / use / priceProductspurchasable itemsBloginformationalMenu + breadcrumbsthe hierarchyIAtaxonomy

URL structure, /collections/, pagination, canonicals, and duplicate variants

One Shopify quirk trips up every store I audit. When you link to a product from inside a collection, Shopify generates a URL like /collections/leather-bags/products/marlow-weekender. Link to the same product from the search bar or the homepage and you get /products/marlow-weekender. Same product, two URLs. Multiply that across every collection a product belongs to and a single item can be reachable at ten different addresses. Shopify handles this correctly by default: the canonical tag on all of those points to the clean /products/ URL. But the collection-scoped URLs are still crawlable, they still appear in internal links, and they still leak PageRank and crawl budget if you let your theme generate them everywhere.

THE FOUR URL SHAPES SHOPIFY GENERATES/collections//products/?page=?variant=The four URL shapes Shopify generates at a glance
The four URL shapes Shopify generates

My standard fix is to make sure product links in collection grids point to the canonical /products/ path, not the /collections/x/products/ path. Most modern themes let you do this or already do it. If yours does not, it is a small Liquid edit to the product-card snippet, swapping the collection-scoped URL for product.url. This one change collapses a huge amount of duplicate crawling on large catalogs. It will not fix a penalty, because the canonical was already protecting you from that, but it will focus the crawler on the URLs you actually want indexed.

Pagination is the next trap. Collection pages split into /collections/x?page=2, ?page=3, and so on. rel=next and rel=prev are no longer used by Google, so each paginated page is treated as its own URL. You do not want page 2 competing with page 1, and you do not want deep pages orphaning your products. The pragmatic pattern: let the paginated URLs be crawlable so products get discovered, keep a self-referencing canonical on each page rather than canonicalizing everything to page 1 (Google has said canonicalizing paginated pages to page 1 can hide products), and make sure your XML sitemap lists every product directly so discovery never depends on deep pagination. If your collections routinely run past five or six pages, that is also a signal you need more sub-collections.

Faceted filtering is where Shopify URL sprawl gets genuinely dangerous. Filters generate parameter URLs like ?filter.p.m.color=black or the newer tag-path URLs. Left unmanaged, a collection with five filters and eight values each can theoretically produce thousands of combinatorial URLs, most of them thin, overlapping, and worthless to index. Decide deliberately which filtered views deserve to be indexable landing pages (usually a handful with real search demand, like "black leather bags") and which should be noindexed or blocked. You can build the valuable ones as real curated collections and let the rest be filter states that engines do not index.

Variants are the last duplication source. If your product has color or size variants, Shopify can expose ?variant= URLs. The product page canonical should always point to the base product URL, never the variant URL, so a shopper landing on the "brown" variant and the "black" variant does not create two competing pages. Confirm this in your theme. And be careful with the opposite mistake: if two genuinely different products are near-identical (a common dropshipping and print-on-demand problem), you have real duplicate content that canonicals will not save you from. The fix there is unique copy, not tags.

URL RULES THAT KEEP A CATALOG CLEAN1Link products via canonical /products/ path, not /collections/x/products/2Self-referencing canonicals on paginated pages, not canonical-to-page-13List every product in the XML sitemap so discovery survives deep pagination4Index only filter views with real demand; noindex the rest5Variant and ?variant= URLs canonical to the base product
URL rules that keep a catalog clean

Keyword strategy for category and product pages

Keyword research for a store is not one list. It is two lists with different jobs, mapped onto the two page types. The category list drives your collection architecture. The product list drives on-page copy and titles. Confusing them is how stores end up with a beautiful blog ranking for informational terms and zero collection pages ranking for the terms that actually convert.

70%collection intent20%product intent10%blog intent
IntentQuery shapePage typeWhat to optimize
Category / commercial"leather weekender bags"CollectionTitle, intro copy, curated grid
Modifier / mid-tail"brown leather duffel under 200"Sub-collectionDedicated curated collection
Product / long-tail"Marlow weekender 45L full-grain"ProductTitle tag, H1, specs, reviews
Informational"how to clean a leather bag"BlogGuide + internal links to collections

Start with the category list, because it decides how many collections you build. I pull the head and mid-tail commercial terms for the catalog, then group them by intent. "Leather bags," "leather weekender bags," "waxed canvas weekender," "carry-on duffel," these are not one collection, they are four, and each deserves its own landing page with its own intro copy targeting that phrase. The test I apply: if a term has meaningful monthly volume and a shopper searching it would be satisfied by a curated grid of products, it should be a collection. Modifiers are gold here. Material, color, size, price band ("under 100"), use case ("gym," "travel," "work"), and audience ("men's," "women's") each spin off a legitimate sub-collection with its own demand.

For the product list, the intent is narrower and more specific. Product pages win long-tail and branded terms: the exact model name, the SKU, spec combinations, "vs" comparisons, and problem-driven phrases ("waterproof leather duffel 45L"). You are rarely going to rank a single product page for "leather bags," and you should stop trying. What you can do is make the product title tag and H1 carry the specific, high-intent phrase a ready-to-buy shopper types, then let the collection above it own the broad term. This division is the whole game: broad terms flow to collections, specific terms flow to products, and internal links pass authority between them.

A word on Shopify's title tag defaults, because they cost stores clicks. Shopify auto-generates title tags as "Product Name - Store Name," which wastes the highest-value real estate on your brand and drops the keyword modifiers that earn clicks. Rewrite them. A title like "Marlow Leather Weekender Bag, 45L Carry-On, Full-Grain Brown" tells both the shopper and the algorithm exactly what this is. Collection titles get the same treatment: "Leather Weekender Bags, Handmade Full-Grain Leather" beats "Weekender Bags" every time. Meta descriptions should be written for the click, not the crawler, with the promise and a reason to choose you.

The tactic I lean on most for commerce keyword work is mining your own site search and your competitors' collection structures. Your internal site-search queries tell you the exact language your shoppers use, including products and categories you do not carry yet. Competitor collection pages tell you which category terms are proven to convert in your space. Between those two sources you rarely need to guess. And do not ignore the questions: "how to clean leather bags," "carry-on size limits," those are blog and FAQ territory that feed the funnel and earn links that lift the commercial pages.

There is a sequencing decision inside keyword strategy that people get backwards. They start with the products they happen to stock and reverse-engineer keywords from them, which anchors the whole store to the current catalog. I do it the other way: start from the demand, the full map of what shoppers in this category search for, and let that reveal the collections you should have and, often, the products you should add. The gaps are where the money is. If there is strong demand for "vegan leather weekender" and you do not carry one, that is a sourcing decision your keyword research just made for you. Commerce keyword work is not only about ranking what you sell, it is about discovering what the market is trying to buy and does not have a good option for. That is a strategy input, not just an SEO task, and it is the part of the work founders find most valuable once they see it.

1Category head terms2Modifier mid-tail3Product long-tail4Branded / model5Informational funnel5 keys

Collection page optimization: the pages that actually rank

Collection pages are the most underbuilt asset in almost every Shopify store, and they are the pages that carry the commercial keywords worth the most money. The default Shopify collection is a bare grid of product cards with a title and, if you are lucky, one line of description. That is not a page that ranks for a competitive category term. A collection that ranks looks like a real landing page: a keyword-bearing H1, a genuinely useful intro paragraph or two, the curated product grid, and often supporting content below the grid.

WHAT SEPARATES A RANKING COLLECTIONTwo-to-three sentence intro with the target phrase up topBuying guide, sizing, and FAQ below the gridBest sellers and best margin pinned firstLinks to sub-collections and a relevant guideCustom title tag and meta, never the Shopify default
What separates a ranking collection

The intro copy is where the disagreement usually starts, because merchandisers hate text above the products and SEOs love it. Both are right, so I split the difference. Put a tight, useful two-to-three sentence intro above the grid that states what the category is and who it is for, with the target phrase used naturally in the first sentence. Then put the deeper content, buying guidance, material explanations, sizing help, an FAQ, below the grid, where it does not push products down the page. Shoppers who want to buy scroll straight to the grid. Shoppers who are still researching, and the crawler, get the depth they need. This is not padding. If you cannot write 150 useful words about a category, that category might not deserve a dedicated collection.

Merchandising order is an SEO signal people forget. The products you put first in the grid are the ones the page is implicitly "about," and they are what a shopper sees before bouncing or converting. Lead with your best sellers and best-margin items, not with whatever the default alphabetical or newest-first sort throws up. A collection that opens with out-of-stock or weak products both converts worse and reads as lower quality. Pin your hero products.

Internal links out of the collection matter as much as content on it. A strong collection page links to its sub-collections ("Shop by material," "Shop by size"), to a relevant buying guide on the blog, and to its parent collection through breadcrumbs. This is how you build the hub structure that Shopify's flat data model does not give you for free. The collection is the hub; sub-collections and guides are the spokes; the links make the hierarchy legible to search engines.

Two technical notes specific to collections. First, thin or empty collections are a liability: a collection with two products, or a seasonal collection that is now empty, should be noindexed or redirected, not left to dilute your quality. Second, the collection's own title tag and meta description are yours to write and should be, because Shopify's default of "Collection Name - Store" throws away the click. Write them for the category shopper: what they will find, how many options, why here. I have moved collections from page three to the first page on intro copy, merchandising order, and a rewritten title alone, with no new links at all.

01Keyword H102Tight intro above grid03Merchandised grid04Depth + FAQ below grid05Links to sub-collections

Product page optimization: from thin to unbeatable

The single most common reason Shopify product pages do not rank is that they are thin, and thin usually means one of two things: manufacturer-supplied copy that appears verbatim on fifty other stores, or a beautiful page with photos and a price but almost no words. Google has said plainly that it needs unique, substantial content to rank a product, and the Shopping ecosystem now judges product pages on detail, reviews, and trust signals. So the work on a product page is to make it the best, most complete answer to "should I buy this specific thing," better than the manufacturer's own page and better than every reseller.

THIN-PAGE RED FLAGSManufacturer copy pasted verbatimFewer than 100 words of unique textNo reviews and no review schemaIMG_1234.jpg filenames and empty altNo shipping, returns, or FAQ detail

Start with the description, and never ship manufacturer boilerplate. Rewrite every product description in your own voice, and structure it: a short benefit-led opening, then the specifics a buyer actually needs. Materials, dimensions, weight, capacity, what is in the box, care instructions, compatibility, sizing guidance. Bullet the specs so they are scannable and so answer engines can lift them. The unglamorous truth is that "unique 150-plus words of genuinely useful detail per product" is a bigger ranking lever than any app you can install, and it is the one most stores skip because it does not scale without effort.

Titles and headings carry the specific keyword. The product H1 should be the descriptive product name that matches how people search, and the title tag should extend it with the highest-value modifiers, rewritten away from Shopify's "Name - Store" default. Images need descriptive alt text and descriptive filenames, both because it is an accessibility and ranking baseline and because visual search and the Shopping tab lean on them heavily. "marlow-brown-leather-weekender-side.webp" beats "IMG_4821.jpg" every time, and the alt text should describe the image, not stuff keywords.

Reviews are not optional on a modern product page, they are a ranking and conversion input. Product pages with real, structured reviews earn star ratings in search results, feed the aggregateRating that Google Shopping wants, and give the crawler fresh, unique, user-generated content on a schedule. Use a review app that outputs valid Review and AggregateRating schema (I cover the schema specifics next) and actually solicit reviews post-purchase. A product with 200 reviews outranks and outsells an identical product with none, and the gap widens every year as Google leans harder on trust.

The last layer is the buying-decision content that turns a product page into a destination: a short FAQ answering the real pre-purchase questions ("does this fit a 15-inch laptop," "is it carry-on legal"), a sizing or comparison table where relevant, clear shipping and returns information, and internal links to related products and to the parent collection. Shipping and returns clarity is now literally a Google Shopping ranking and eligibility factor, so it earns its place beyond simple conversion hygiene. Put it on the page and in your Merchant Center settings. Do this across a catalog and you stop having "product listings" and start having pages that win.

The objection I always hear is that this does not scale: a store with two thousand SKUs cannot hand-write two thousand rich pages. True, and you should not try to write them all at once. Prioritize by revenue potential and search demand, and work the head first. In practice the top 100 to 200 products usually drive the overwhelming majority of both traffic and revenue, and those are the pages that earn a full manual treatment. For the long tail, build good templates: a structured description format that forces the useful fields (material, dimensions, use case) so even a quick entry is unique and complete, and a spec table that populates from your product metafields. Templated does not have to mean duplicate, as long as the actual values differ and the copy is genuinely about that product. The failure mode to avoid is the opposite: pasting the same manufacturer paragraph across five hundred items and calling it done. Uniqueness at the field level, driven by real product data, is what scales without collapsing into boilerplate.

THE COMPLETE PRODUCT PAGEUnique 150+ word description, never manufacturer boilerplateScannable spec bullets: material, size, weight, whats-in-boxDescriptive H1, custom title tag, descriptive image alt + filenamesStructured reviews with Review + AggregateRating schemaPre-purchase FAQ, sizing table, shipping and returns clarity
The complete product page

Structured data: Product, Offer, Review, and BreadcrumbList

Structured data is how you tell search engines, and now AI shopping assistants, exactly what a page is without making them guess from the HTML. On a store, four schema types do almost all the work: Product, Offer (nested in Product), Review and AggregateRating (also nested in Product), and BreadcrumbList. Get these valid and accurate across your catalog and you become eligible for rich results, price and availability display, star ratings, and the free product listings that Google surfaces. Get them wrong or missing and you are invisible to a growing share of commerce discovery.

SCHEMA FIELDS THAT ACTUALLY MOVE THE NEEDLE1gtin / mpn so Google matches you to the product graph2Offer price, currency, and accurate availability3Real, on-page reviews feeding AggregateRating4BreadcrumbList carrying the Home > Collection > Product path5One source of truth per type; kill duplicate conflicting markup
Schema fields that actually move the needle

Product schema is the core object, and the fields that matter are the ones Google uses to display and qualify your listing: name, image, description, brand, sku, gtin or mpn, and the nested offers block. The gtin (the barcode number, usually a UPC or EAN) is quietly one of the most valuable fields, because it lets Google match your product to the same product everywhere else, which powers price comparison and the Shopping graph. If you sell branded goods, get the gtins in. The Offer object carries price, priceCurrency, availability (InStock, OutOfStock), and increasingly priceValidUntil, shipping details, and return policy. Availability accuracy matters: an OutOfStock item marked InStock erodes trust fast, and Google notices.

Review and AggregateRating are what earn the star ratings that lift click-through, and this is where I see the most abuse. The rule is simple and Google enforces it: the reviews must be real, must be about the product on that page, and must be visible on the page, not injected only into the JSON-LD. Self-serving fake reviews or ratings scraped from elsewhere will get your rich results demoted or your store flagged. Use a legitimate review app, show the reviews on the page, and let it output the schema. AggregateRating with a genuine ratingValue and reviewCount is one of the highest-ROI pieces of markup on a store.

BreadcrumbList is the schema that quietly carries your Shopify taxonomy, which matters more here than on most platforms because, as I said earlier, Shopify has no real category tree. A BreadcrumbList of Home > Collection > Product tells search engines your hierarchy, produces the breadcrumb display in results, and reinforces the internal-link structure. Most good themes emit it; verify that they do and that it reflects the collection the product actually sits under.

A practical warning about how Shopify serves this. Many themes and review apps inject schema, and it is common to end up with duplicate or conflicting Product markup, one from the theme, one from an app, sometimes a third from an SEO app. Duplicate conflicting schema is worse than none, because it makes the engine distrust all of it. Audit with the Rich Results Test and Search Console's enhancement reports, pick one source of truth for each schema type, and disable the rest. I have seen a store's rich results snap back on within days just from removing a second, conflicting Product block. Validate after every theme or app change, because those are exactly the moments the markup silently breaks.

THE FOUR SCHEMA TYPES A STORE NEEDSProductOfferReviewBreadcrumb
The four schema types a store needs

Site speed and Core Web Vitals on a real Shopify theme

Shopify is fast until you make it slow, and almost everyone makes it slow. The platform's CDN and server response are genuinely strong, so your server-side time-to-first-byte is rarely the problem. The problem is what you and your app stack pile on top: heavy themes, hero images shipped at desktop resolution to phones, a dozen apps each injecting render-blocking JavaScript into the head, and a slider or review widget that shifts the layout half a second after paint. Core Web Vitals, LCP, INP, and CLS, are a confirmed ranking and Shopping-eligibility signal, and on mobile, where most commerce traffic lives, a bloated Shopify store fails all three.

INSTALLED APPSAPPS KEPT207vs
ChangeMetric it helpsEffort
Serve hero as sized WebP with srcsetLCPLow
fetchpriority=high on the LCP imageLCPTrivial
Stop lazy-loading the LCP imageLCPTrivial
Remove unused apps + orphaned scriptsINPMedium
Defer non-critical / third-party JSINPLow
width/height on every imageCLSLow
Reserve space for late widgets + promo barsCLSLow

LCP, the moment the main content appears, is usually about the hero. On a product page the LCP element is the main product image; on a collection it is the top of the grid or a banner. The wins are unglamorous and reliable: serve the hero as a properly sized, next-gen format image (Shopify does WebP automatically if you let it), add fetchpriority high to the LCP image so the browser loads it first, and never lazy-load the LCP image, which is the single most common self-inflicted LCP wound I find. Preload the primary product image, and stop shipping a 3000-pixel-wide banner to a 390-pixel phone. Responsive srcset and sizes exist for exactly this.

INP, responsiveness to interaction, is an app-stack problem more than a theme problem. Every app you install can add JavaScript that runs on the main thread, and INP measures how long the page takes to respond when a shopper taps. The discipline is ruthless app hygiene: audit every installed app, remove the ones you are not actively using (uninstalling often leaves orphaned script, so check the theme code too), defer non-critical JavaScript, and load analytics and chat widgets after interaction rather than on load. A store running twenty apps and complaining about slowness has diagnosed itself. Fewer, better apps beat a graveyard of half-used ones.

CLS, visual stability, is the cheapest to fix and the most neglected. It comes from images without dimensions, late-loading banners and cookie bars that push content down, web fonts swapping and reflowing text, and review or upsell widgets that inject after paint. Set width and height (or aspect-ratio) on every image so the browser reserves space, reserve space for any late-loading widget, and use font-display carefully so text does not jump. A single sticky promo bar injected after load can tank your CLS across the whole site.

The honest constraint on Shopify is that you cannot control everything the way you can on custom infrastructure. You are inside a theme framework and an app ecosystem. So the realistic playbook is: choose a genuinely lightweight, performance-minded theme (the Online Store 2.0 themes are far better than the old ones), keep your app count lean and audit their performance impact in the theme editor's speed report and in real Lighthouse and PageSpeed runs, and fix the image and layout-shift issues that are fully in your control. You will not get a headless-grade score on a stock theme, but you can comfortably clear the "good" thresholds, and that is what the ranking signal actually checks.

A note on how to measure this, because it trips people up. The Lighthouse score you get from a single run in Chrome is a lab number, run under one simulated condition, and it bounces around from run to run. The number Google actually uses for the ranking signal is the field data, the real-user measurements aggregated in the Chrome User Experience Report and surfaced in Search Console's Core Web Vitals report. Those can disagree, and the field data is the one that counts. So do not chase a perfect Lighthouse score at the expense of real-user experience, and do not panic over a single bad lab run. Fix the systemic issues, the LCP image handling, the app-driven JavaScript, the layout shifts, then watch the field data move over the following weeks as real sessions accumulate. If a store is small and lacks enough traffic for field data, Lighthouse is your proxy, but treat it as directional rather than gospel.

LCPINPCLSAppsImg wt

Internal linking and faceted navigation done right

Internal linking is where Shopify's flat data model either helps you or quietly buries your best pages. Because there is no real category hierarchy, the links you place are the map search engines use to understand what is important and how pages relate. The goal is simple to state and easy to neglect: every product reachable in a few clicks from the homepage, authority flowing from your strongest pages down to the collections and products you want to rank, and a clear hub-and-spoke shape around each major category.

INTERNAL-LINK AND FACET DISCIPLINEMenu mirrors your real collection architectureCollections link down to sub-collections and up via breadcrumbsCurated related-product links on hero productsOnly high-demand filter views become indexable collectionsCrawl for orphan products and pages buried past three clicks
Internal-link and facet discipline

The hub is the collection, and it should link generously: to its sub-collections, to its best products, to the relevant buying guide, and up to its parent through breadcrumbs. The spokes link back. A buying guide on the blog links to the collections and products it discusses; a product page links to its parent collection and to genuinely related products, not a random "you may also like" carousel. Related-product links carry real weight when they are relevant, because they cluster your catalog into topical neighborhoods that search engines can reason about. Curate them where the money is, on your hero products, rather than trusting an app's default logic everywhere.

Navigation is your most powerful internal-linking tool because it appears on every page. The main menu should express your real category structure, which means it should mirror the collection architecture you designed earlier. A footer can carry secondary but valuable links: top sub-collections, key guides, policy pages. Breadcrumbs, again, do double duty, both as internal links and as the BreadcrumbList schema that teaches engines your taxonomy. If your menu, breadcrumbs, and internal links all tell the same consistent story about your hierarchy, engines learn it fast.

Faceted navigation is the part that can help or wreck you, and the deciding factor is discipline about what becomes a crawlable URL. Filters (color, size, price, material) are great for shoppers and dangerous for crawlers, because they can generate an explosion of parameter or tag-path URLs, most of them thin and near-duplicate. The framework: identify the handful of filter combinations with real search demand ("black leather bags," "carry-on duffels") and build those as real, curated, indexable collections with their own copy. Everything else, the long tail of combinatorial filter states, should be noindexed or blocked from crawling so it does not dilute crawl budget or spawn duplicate content. You want the crawler spending its time on your fifty great pages, not on the ten thousand filter permutations.

The audit I run: crawl the store with a tool like Screaming Frog, look for orphan products (products with no internal links pointing to them, which happens constantly on large Shopify catalogs), find pages buried more than three clicks deep, and check that faceted URLs are handled deliberately rather than accidentally indexed. Orphaned and deep-buried products are lost revenue hiding in plain sight, and the fix is usually a better collection structure and a few internal links, not new content at all.

Anchor text is the piece of internal linking stores waste. Shopify's default related-product and menu links often use just the product image or the bare product name, which tells the crawler nothing about the target. When you place a contextual internal link, from a buying guide, from body copy on a collection, use descriptive anchor text that includes the target's key term: link the phrase "full-grain leather weekenders" to that collection, not the word "here." It is a small thing that compounds across a catalog, because every descriptive internal link is another vote, in the target's own keywords, for what that page should rank for. I audit anchor text on the twenty or so pages that matter most and make sure the important collections are being linked to with the language I want them to rank for, rather than with generic navigation labels.

Sub-collectionsBest productsBuying guideParent (breadcrumb)Related itemsCOLLECTIONEach category is a hub; links make the hierarchy legible

Content and blog strategy for a commerce store

A store blog is not a place to post company news, yet company news is what most of them fill with before going dormant. The blog's job in commerce SEO is specific: capture the informational and research-stage queries your buyers ask before they are ready to purchase, earn the links and topical authority that a bare catalog cannot, and funnel readers to the collections and products that convert. Done right, the blog is the top of your funnel and the source of the external links that lift your commercial pages. Done wrong, it is a graveyard that adds crawl bloat.

01How-to guides02Comparison / buying03FAQ from support04Links to collections

The content that works is buyer-intent-adjacent, not random. For a leather-bags store: "how to clean a leather bag," "carry-on size limits by airline," "leather vs waxed canvas for travel," "how to pack a weekender for a three-day trip." Each of these targets a query a future buyer searches, each can link naturally to the relevant collection, and each is the kind of genuinely useful piece that earns links and gets cited by AI answer engines. Notice the pattern: the guide answers the question fully, then points to the product as the natural next step. You are not writing to rank the blog for "leather weekender bags," the collection does that. You are writing to own the questions around the purchase.

Structure the blog as topic clusters, not a stream of posts. A pillar guide ("The complete guide to choosing a travel bag") links to and is linked from a set of supporting posts (materials, sizes, care, packing), and the whole cluster links into the relevant collections. This is the same hub-and-spoke logic as the catalog, applied to content, and it builds the topical authority that makes the commercial pages more competitive. A dozen deep, interlinked, genuinely useful guides beat a hundred thin posts every time, and they age far better.

Two commerce-specific content assets punch above their weight. First, buying guides and comparison content that sit close to the transaction ("best carry-on duffels for 2026," "45L vs 55L: which weekender size"), because they capture high-intent research and convert directly. Second, an honest FAQ layer, both on product and collection pages and as standalone content, because that question-and-answer format is exactly what answer engines and voice search lift, and it is cheap to produce from your real customer-service inbox. Your support tickets are a keyword research goldmine.

The discipline part: prune and refresh. A commerce blog accumulates dead seasonal posts, outdated guides, and thin filler. Once or twice a year, audit it, refresh the guides that still have demand (update the year, the products, the facts, and re-timestamp them), consolidate overlapping thin posts into stronger single pieces, and noindex or delete the true dead weight. Freshness is a real signal for both classic search and AI citation, and a lean, current, well-linked blog does more for your store than a bloated archive of forgotten posts.

Pillar guideChoose a bagCluster postsMaterial, size, careComparison45L vs 55LFAQ layerFrom support inboxRefreshPrune + re-timestamp

Product feed optimization for Google Shopping and beyond

Your organic pages and your product feed are two different distribution channels that share one catalog, and stores that treat the feed as an afterthought leave a lot on the table. The feed is the structured export of your products, title, description, price, availability, gtin, images, and more, that flows into Google Merchant Center and powers Shopping ads, the free Shopping listings, and increasingly the product data that AI shopping assistants read. Shopify pushes a feed to Google through the Google & YouTube channel, but the default feed is only as good as your product data and your feed settings, and the defaults are rarely optimal.

THE FEED FIELDS GOOGLE READS HARDESTTitleGTINPriceImages
The feed fields Google reads hardest

Feed titles are the single highest-impact field and they follow different rules than your on-page SEO titles. Google's Shopping algorithm reads the feed title heavily for matching, and the winning pattern front-loads the attributes shoppers search: brand, product type, key attributes (color, size, material), then model. "Marlow Full-Grain Leather Weekender Bag, Brown, 45L Carry-On" is a strong feed title; "Marlow Weekender" is a weak one. You often want a feed title that differs from your on-page H1, tuned for Shopping matching, and Shopify apps or feed rules let you template these at scale rather than editing 500 products by hand.

The identity fields decide if Google can even match your product. gtin (the barcode) plus brand plus mpn are how Merchant Center connects your listing to the known product, turns on price comparison, and avoids disapprovals. Missing or wrong gtins are the most common reason feeds underperform or get items disapproved. If you sell branded goods, get accurate gtins in. If you make your own products with no gtin, set the identifier-exists flag correctly rather than inventing numbers. Product type and Google product category should be set deliberately, because they tell Google which searches to show you in.

Data quality and freshness keep the feed healthy. Availability and price in the feed must match the landing page exactly, because Google crawls the page to verify and will disapprove mismatches, and price or stock drift is the classic silent killer of a Shopping account. Images should be clean, high-resolution, and compliant (no promotional overlays or watermarks, which Google disallows). Shipping and returns configured in Merchant Center are now competitive signals: accurate, attractive shipping and a clear return policy improve how your products rank in both paid and free listings. Fill every optional attribute you legitimately can, color, size, material, age group, gender, pattern, because each one is another way to match a query.

Watch Merchant Center like you watch Search Console. Disapprovals, warnings, and the "needs attention" items are direct feedback on feed health, and a disapproved product is invisible in Shopping regardless of how good its organic page is. Set up supplemental feeds or feed rules to fix and enrich data without touching every product manually, and reconcile the feed with your organic catalog so the two channels reinforce rather than contradict each other. The store that optimizes both its pages and its feed shows up twice on the same search, once in organic, once in Shopping, and that double presence is worth building deliberately.

One tactic that pays for itself: split-test your feed titles the way you would test ad copy. Because the feed title drives Shopping matching and click-through, and because Shopify feed apps let you template and change titles at scale, you can run structured experiments, brand-first versus attribute-first, with and without size in the title, and read the impact in Merchant Center and your Shopping performance. Most stores set feed titles once and never revisit them, which leaves easy volume on the table. The same discipline applies to the product images that lead the feed, since the main image is doing a lot of the click-through work in a visual Shopping grid. Treat the feed as a living channel with its own optimization loop, not a set-and-forget export, and it starts performing more like a well-run ad account and less like an afterthought.

FEED FIELDS THAT DECIDE SHOPPING PERFORMANCEFront-loaded feed titles: brand + type + attributes + modelAccurate gtin, brand, mpn so Google matches the productDeliberate product type + Google product categoryFeed price and availability that match the landing page exactlyEvery legitimate optional attribute filled; clean, overlay-free images
Feed fields that decide Shopping performance

How Shopify SEO connects to marketplaces and AI shopping

The store is no longer the only place your products get discovered, and the work you do for Shopify SEO is the same work that decides how you show up in marketplaces and in AI shopping. This is the part founders miss: clean product data, strong reviews, accurate schema, and a well-structured catalog are not just Google-ranking inputs. They are the raw material that every downstream surface, Amazon, Google Shopping, and now ChatGPT and Gemini and Perplexity shopping, reads to represent your product. Build the structured truth once and it pays off in many places.

Clean dataSchemaReviewsAI-readyThe fundamentals that rank you on Google make you legible to AI shopping

Marketplaces first. If you also sell on Amazon, Walmart, or other marketplaces, your Shopify catalog is the source of truth you syndicate outward, and consistency across surfaces is itself a trust and entity signal. The same gtins, the same accurate titles and specs, the same brand presentation everywhere means search engines and shopping graphs understand your products as one coherent set rather than a mess of conflicting listings. It also means the review-rich, detail-rich product content you built for Shopify raises your quality bar on marketplaces, where thin listings lose just as badly. The catalog discipline compounds across channels.

Now the fast-moving part: AI shopping. Assistants are increasingly the layer between a shopper and a purchase. Someone asks an AI "find me a carry-on-legal leather weekender under 200 dollars with good reviews," and the assistant answers by reading structured product data, prices, availability, reviews, and specs, from the sources it trusts, then recommends or even transacts. Everything that makes your product legible to Google, complete Product and Offer and Review schema, accurate feed data, unique detailed descriptions, real reviews, is exactly what makes it legible to an AI assistant. The stores that will win AI shopping are the ones whose data is clean and complete enough that an assistant can confidently pick them.

There are emerging AI-specific signals worth getting ahead of. Answer-first content and honest FAQs are cited by AI assistants the same way they are lifted for featured snippets. Your product's reviews and ratings are exactly what an assistant weighs when comparing options. And structured, machine-readable facts, schema, feeds, clean specs, are what let an agent act without guessing. Some stores are starting to add signals aimed at LLM crawlers and to make sure their content is not locked behind scripts an AI crawler cannot read. You do not need to chase every experimental tactic, but you do need your fundamentals machine-readable, because the assistant cannot recommend what it cannot parse.

The strategic takeaway is the one I keep coming back to across every surface: you are not running a Google campaign and an Amazon campaign and an AI-shopping campaign as separate projects. You are maintaining one body of structured, accurate, review-rich product truth, and distributing it to every place your shopper might look. Shopify happens to be a good home for that truth because its data model, once you have tamed the URL and schema quirks, exports cleanly to all of them. Do the catalog work once, correctly, and the marketplaces and the AI assistants inherit it.

Google ShoppingAmazonChatGPTPerplexityMarketplacesYOURCATALOGOne clean, structured catalog feeds every commerce discovery surface

Measurement: the metrics and tools that tell you what is working

You cannot improve what you do not watch, and Shopify SEO has enough moving parts that ad-hoc checking will not cut it. The measurement stack I run on a store separates three things: search visibility (are we ranking and getting clicks), catalog health (is the store technically sound), and commercial outcome (is the traffic converting into revenue). Most people watch only the last one and are then surprised when it drops, because the leading indicators were flashing red in Search Console for weeks.

Leading indicators in Search Console move weeks before revenue does

Google Search Console is the non-negotiable foundation, and it tells you more than most people extract from it. Watch impressions and clicks by query and by page, because a collection gaining impressions but few clicks is a title-tag and meta problem you can fix in an afternoon. Watch average position on your money terms. Watch the Pages report for indexing issues, the exact place Shopify URL sprawl shows up as thousands of "crawled, not indexed" or "duplicate, canonical" URLs. Watch the enhancement reports for Product, Review, and Breadcrumb schema errors, because a theme or app update breaking your markup shows up here first. And watch the Core Web Vitals report for the real-user verdict, which is what the ranking signal actually uses, not your one-off Lighthouse score.

Merchant Center is the second dashboard, because for a store the free and paid Shopping listings are half the game. Its disapprovals and diagnostics tell you which products are invisible in Shopping and why, and reconciling those against your organic catalog closes the loop between your two channels. Shopify's own analytics and a proper GA4 setup carry the commercial layer: organic sessions, conversion rate by landing page, revenue by channel, and assisted conversions so you can see the blog and collection pages doing funnel work even when they are not the last click.

For the work itself you need a crawler and a rank-and-keyword tool. Screaming Frog (or a comparable crawler) is how you find the orphan products, the thin pages, the broken schema, the redirect chains, and the faceted-URL sprawl that Search Console only hints at. Ahrefs or Semrush covers keyword research, rank tracking on your priority terms, competitor collection analysis, and backlink monitoring for the links your content earns. These are the tools I actually open weekly; the long tail of SEO apps in the Shopify store is mostly redundant with them.

Set a cadence and stick to it, because SEO rewards consistency over heroics. Weekly, I check Search Console for query and indexing movement and Merchant Center for new disapprovals. Monthly, I run a full crawl to catch new orphans and schema breakage, review rankings on the money terms, and refresh any content that has slipped. Quarterly, I re-audit architecture and Core Web Vitals end to end. The point of the cadence is to catch the silent failures, a broken canonical after a theme update, a feed disapproval after a price change, a Core Web Vitals regression after a new app, before they cost you a quarter of traffic. On Shopify, the failures are almost always silent, so the watching is the job.

One measurement trap specific to commerce: do not judge every SEO change by last-click revenue, because much of what SEO does is upper and mid funnel. A buying guide that ranks and pulls in a researcher rarely closes the sale on that first visit; it seeds a shopper who converts a week later through email or a branded search. If you attribute only the last click, you will systematically undervalue the content and collection work that actually built the pipeline, and you will over-invest in the bottom-funnel terms that were going to convert anyway. GA4's assisted-conversion and path reports exist for exactly this, and reading them changes which SEO work you fund. The honest version of measurement accounts for the compounding, multi-touch nature of organic, not just the sessions that happened to be the final touch before checkout.

ImprClicksPositionCWVConv

The most common Shopify SEO mistakes

I have audited enough Shopify stores to know the mistakes cluster into a predictable set, and almost all of them come from trusting the defaults or installing your way out of a problem that needed a decision instead. Here are the ones that cost the most, roughly in the order I find them.

Trusting the auto-generated titles and metas. Shopify's "Product Name - Store Name" default throws away the highest-value real estate on every page in your catalog. Rewriting titles and metas across your collections and products is often the fastest measurable win available, and it is tedious enough that most stores never do it. Related: leaving collection pages as bare grids with no intro copy, which is why they sit on page three for terms they could own.

Shipping manufacturer copy verbatim. If your product description appears on fifty other stores word for word, Google has no reason to rank yours, and the Shopping ecosystem judges you as a thin reseller. Every product needs unique, substantial, genuinely useful copy, and this is the single most skipped high-impact task in commerce SEO because it does not scale without real effort.

Letting URL and facet sprawl run wild. Filters, tags, vendor pages, and collection-scoped product URLs can turn a 300-product catalog into thousands of thin, near-duplicate crawlable URLs that eat crawl budget and confuse the engine. Deciding deliberately what to index, and noindexing or blocking the rest, is not optional at scale.

Installing twenty apps and wondering why the store is slow. Every app can inject render-blocking JavaScript, and uninstalling often leaves orphaned scripts behind. App bloat is the number-one cause of failed Core Web Vitals on Shopify, and the fix is ruthless: audit, remove, and check the theme code for leftovers. Fewer, better apps win.

Duplicate and conflicting schema. A theme, a review app, and an SEO app each injecting Product markup produces conflicting structured data that makes the engine distrust all of it, and the store loses the rich results it thinks it has. Pick one source of truth per schema type and disable the rest, then validate.

Ignoring the feed, or letting price and availability drift out of sync with the page. A disapproved or mismatched feed makes products invisible in Shopping no matter how good the organic page is, and stock and price drift is the classic silent killer of a Merchant Center account.

Deleting products and collections without redirecting them. Seasonal cleanup and catalog churn leave a trail of 404s and lost link equity when a simple 301 to the parent collection or a replacement product would have preserved the ranking. And the quieter version: orphan products with no internal links, which are pure lost revenue hiding in a catalog nobody crawled.

SHOPIFY SEO MISTAKES TO KILLShipping Shopify's default titles and metas untouchedManufacturer copy pasted verbatim on product pagesUnmanaged URL, tag, and facet sprawlTwenty apps dragging Core Web Vitals downDuplicate, conflicting Product schemaA feed that drifts out of sync with the pageDeleting products and collections without 301s

A worked example: taking a stalled catalog off page three

Let me make this concrete with the shape of an engagement I have run more than once, because the pattern is consistent enough to be a playbook. Picture a Shopify Plus store doing solid revenue, mostly from paid and email, with organic search flat for a year. The catalog is around 400 products in 8 broad collections. The homepage ranks, a couple of products rank on brand terms, and almost nothing ranks for the category terms that carry real volume. The founder assumes the market is just competitive. It is not. The store is under-built.

Weeks 1-4Architecture + URLsWeeks 4-8Depth + reviewsWeeks 8-12Schema + CWV + feedQuarter 2-3Organic compounds

The first pass is architecture, because it is the biggest lever and it costs no new content to design. We map the category keyword demand and discover the store has 8 collections where it needs 30-plus: no sub-collections by material, by size, by use case, by price band. We build the missing collections, each targeting a real mid-tail term with genuine demand, curated by hand rather than by tag alone. Immediately there are landing pages aimed at terms that previously had nowhere to rank. We fix the URL hygiene at the same time: point product cards to canonical /products/ URLs, decide which filtered views become indexable collections, and noindex the long tail of facet permutations. Crawl bloat drops, and the crawler starts spending its time on the pages that matter.

The second pass is depth. Every new and existing collection gets a keyword-bearing title rewritten away from the Shopify default, a tight intro above the grid, and buying guidance plus an FAQ below it. The top 100 products by revenue potential get rewritten descriptions (no more manufacturer boilerplate), scannable spec bullets, descriptive image alt and filenames, and a pre-purchase FAQ. We turn on a review app that outputs valid Review and AggregateRating schema and start soliciting reviews post-purchase, so the product pages begin accumulating the fresh, unique content and star ratings that both rank and convert.

The third pass is the technical and feed layer. We audit the schema, find duplicate Product markup from the theme and a leftover app, and collapse it to one clean source of truth with valid Product, Offer, Review, and BreadcrumbList. We fix Core Web Vitals: stop lazy-loading the LCP image, add fetchpriority, resize the heroes, cut six unused apps and their orphaned scripts, and set dimensions on images to kill layout shift. On the feed side we rewrite feed titles to front-load brand and attributes, get the gtins in, reconcile price and availability with the pages, and clear the Merchant Center disapprovals.

The results follow a familiar curve, and they are not instant, because SEO compounds rather than spikes. Search Console impressions on the new collection terms start climbing within weeks as the pages get indexed and gain position. Product pages with reviews and rewritten copy begin ranking for their long-tail terms and earning Shopping visibility. Over two to three quarters, organic goes from flat to a meaningful and growing share of revenue, the collection pages carry the category terms, the products carry the long tail, and the store shows up twice, organic and Shopping, on the searches that matter. The lesson is the same one that has held across every store I have worked on: the wins were architecture, depth, schema, and speed, applied in that order, not a magic app.

new collections30+rewritten products100clean schema1apps cut6

What is next for Shopify SEO

The direction of travel is clear even if the exact timeline is not: discovery is fragmenting away from the ten blue links and toward answer engines, AI assistants, and shopping surfaces that read your structured data and decide on the shopper's behalf. That sounds threatening if you think of SEO as gaming a single algorithm. It is actually reassuring if you have done the work in this guide, because the fundamentals that rank a Shopify store today, clean architecture, unique detailed product content, accurate schema, real reviews, healthy feeds, fast pages, are exactly the fundamentals those new surfaces reward. The moat is a well-structured, trustworthy catalog, and that moat gets more valuable as more consumer queries get mediated by machines.

Structured, trustworthy catalogs compound in value as discovery goes machine-mediated

Expect AI shopping to keep maturing from "assistant recommends a product" toward "assistant transacts on your behalf." That raises the premium on machine-readable everything: complete Product and Offer schema, accurate real-time price and availability, structured reviews, and clear shipping and returns data an agent can act on without guessing. Stores that treat their data as an API for machines, not just a page for humans, will be the ones assistants can confidently pick and buy from. This is where the transactable-action and structured-data work stops being a nice-to-have.

Expect Google to keep folding commerce signals deeper into ranking. Price competitiveness, shipping speed, return policy, and review volume already influence Shopping and increasingly organic product visibility. The line between "SEO" and "merchandising and operations" keeps blurring, because Google is trying to predict a good purchase, not just a relevant page. The stores that win will be the ones whose actual offer, price, availability, fulfillment, and service, is good and is expressed cleanly in structured data.

Expect visual and multimodal search to matter more for commerce specifically, because products are visual. Descriptive image filenames, alt text, high-quality photography, and image schema are not just accessibility hygiene, they are how Lens, Pinterest, and multimodal AI find your products from a photo. And expect first-party data and brand strength to matter more as third-party signals get noisier: a brand people search by name, a store with real reviews and a real reputation, reads as trustworthy to every algorithm and every assistant.

My advice has not changed and I do not expect it to. Do not chase the surface of the week. Build the structured, fast, answer-rich, review-backed catalog that every current and emerging surface rewards, maintain it with a real cadence, and distribute that one body of truth everywhere your shopper looks. On Shopify specifically, tame the URL and schema quirks, keep the app stack lean, write the copy nobody else will, and get the feed clean. Do that and you are not betting on one algorithm, you are building the thing all of them are trying to find.

Clean catalogSchema + feedsAI-legibleTransactableWhere Shopify SEO is heading: from ranking pages to machine-buyable products

Frequently asked questions

Is Shopify good for SEO?

Yes, with a caveat. Shopify gives you clean URLs, automatic sitemaps, canonical tags, a fast CDN, and mobile-ready themes, which is a strong technical baseline. What it does not do is write your content, tame URL and facet sprawl, or stop app bloat from wrecking Core Web Vitals.

Why do my Shopify products have two URLs?

When you link to a product from inside a collection, Shopify generates /collections/x/products/name, while linking from elsewhere gives the clean /products/name. Same product, multiple URLs.

Should I noindex collection filter and tag pages?

Usually most of them, yes. Faceted filters can spawn thousands of thin, near-duplicate URLs.

How do I fix Core Web Vitals on Shopify?

Focus on the three biggest culprits. For LCP, serve a properly sized next-gen hero image, add fetchpriority high, and never lazy-load the LCP image. For INP, audit and cut unused apps and their orphaned scripts and defer non-critical JavaScript.

What schema does a Shopify store need?

Four types do almost all the work: Product (with name, image, brand, gtin or mpn), the nested Offer (price, currency, availability), Review and AggregateRating (real, on-page reviews), and BreadcrumbList.

Do product reviews actually help SEO?

Meaningfully, yes. Real, on-page reviews earn star ratings in search results, feed the AggregateRating that Google Shopping rewards, add fresh unique user content on a schedule, and are exactly what AI shopping assistants weigh when comparing options.

How is a feed title different from an SEO title tag?

The on-page title tag is written for click-through in organic results. The feed title is read by Google Shopping's matching algorithm and should front-load the attributes shoppers search: brand, product type, key attributes like color and size, then model.

How many collections should my store have?

More than you probably have. Most stores have too few, which means no landing page for the category terms that carry search volume. Build a collection for every category term with real demand, plus sub-collections by material, size, use case, price band, and audience.

Do I need an SEO app for Shopify?

Rarely more than one, and often none. The high-impact work, rewriting titles and product copy, building collections, fixing schema and Core Web Vitals, managing the feed, is not something an app does for you.

How does Shopify SEO connect to AI shopping?

Directly. The same fundamentals that rank you on Google, complete Product and Offer and Review schema, accurate feed data, unique detailed descriptions, and real reviews, are exactly what AI assistants read to represent and recommend your product.

How long does Shopify SEO take to show results?

It compounds rather than spikes. New or rewritten collection pages typically start gaining impressions and position within a few weeks of being indexed, and product pages with reviews and rewritten copy follow over the next month or two.

What is the fastest Shopify SEO win?

Rewriting the auto-generated title tags and adding intro copy to bare collection pages. Shopify's default "Product Name - Store Name" titles waste your best real estate across the whole catalog, and collections with no intro text sit far below where they could rank.

About the author

Frederick Sona is a full-stack eCommerce and growth leader with 13+ years across technology, creative, marketing, and sales, and the creator of Search Everywhere Optimization. Get in touch or connect on LinkedIn.

About Frederick
I'm Frederick Sona, and I've spent most of my career chasing one question: why do some brands break through while others, often the better ones, don't? I've looked for the answer as a marketer, a designer, a technologist, a salesperson, and a founder, and the honest answer is that it takes all of it: being easy to find, easy to trust, and easy to buy from. Search Everywhere Optimization is one piece of how I think about that, but this blog covers the whole picture, from search and technology to brand, design, and the work of turning attention into revenue. If any of this was useful, come say hello at fredericksona.com.
← Back to all articles