Local SEO · 11 minute read

Ecommerce SEO on Shopify: what breaks while you optimise

Every guide tells you what to optimise. This one is about the field that clears itself, the page you thought was ranking, and the missing button.

Diagram of the four Shopify fields ecommerce SEO runs on — product title, page title, meta description and image alt text — with a warning that a partial API write clears the whole SEO object

Four fields carry most of a Shopify store's search visibility. Writing one of them through the API can clear another.

Every ecommerce SEO guide on page one will tell you what to optimise. Not one of them tells you what quietly breaks while you are optimising it, which is the part that has cost me actual hours.

Here is a real one. You write a good search title for a product, save it, and move on. Days later the description underneath is blank, and nobody deleted it on purpose.

This guide covers the standard work quickly, then spends most of its time on the parts the mega-guides skip. It comes out of two Shopify builds I did by hand, not out of a tool vendor's marketing blog.

Statistics Canada table 20-10-0072-01 showing Canadian retail e-commerce sales between August and December 2022, ranging from about 3.5 to 4.5 billion dollars per month against total retail trade of about 62 to 65 billion dollars
The most recent figures Statistics Canada publishes in this table, from late 2022, put Canadian retail e-commerce at roughly $3.5 to $4.5 billion a month, against total retail trade of about $62 to $65 billion.

What is ecommerce SEO, and why is the Shopify version different?

Ecommerce SEO is the work of getting a store's collection and product pages to show up when someone searches for what you sell. It covers keywords with buying intent, page titles, descriptions, image alt text, site structure, structured data and links.

None of that is in dispute. Google's own AI summary will hand you a decent version of the same definition before you click a single result, which is exactly why another definition post is a waste of everybody's time.

What changes on a hosted platform is the shape of the work. Shopify SEO is not regular SEO, because you are never really editing a page. You are filling in fields that a theme renders for you, on a system where several tools can write to the same field.

So there are three questions worth asking that a generic checklist never asks. Which fields does the platform give you? Which does it withhold? And what else can write to them while you sleep?

Which pages actually rank: products, collections, or filtered views?

On most Shopify stores, collection pages do the heavy lifting. A collection page matches how people search — "women's hiking jackets" — while a single product page matches one specific item somebody already has in mind.

This is the thing store owners get backwards. They pour weeks into 200 individual product descriptions, then leave the collection pages sitting on whatever default copy the theme shipped with, which is the page Google was most likely to rank in the first place. Wrong order.

One merchant summed up the confusion in a r/WebsiteSEO thread: "Shopify seems simple until you care about SEO and then it gets weird fast (collections, filters, duplicates)."

What about filters and duplicate URLs?

That quote names three problems and most guides only answer one. Filters and duplicates are the other two, and they are the same problem wearing different clothes: one product reachable at more than one address.

A product can sit in several collections, and a filtered view of a collection is its own URL again. Left alone, that spreads one page's ranking signals across several near-identical addresses. The top reply on that thread put the fix plainly: audit your canonical tags, control faceted navigation, and run a duplicate scan in Search Console.

The check takes a minute. Open a product through two different collections, view the source on each, and confirm both point at the same canonical URL. If they do not, that is the first thing to fix, before any of the field work below.

On the GALOVTE build, the collection work came first. Building the collections and then assigning every one of 150-plus products into the right one was the architecture job, not the housekeeping I did at the end. A product sitting in no collection, or in the wrong one, is a product with no route in.

Product title, page title, meta title: what is the difference?

Most product page SEO advice stops at "write a unique description". It never explains which box the words go in.

A Shopify product has a title at the top of the editor. Further down sits a separate block called the search engine listing, holding a page title and a meta description. Many apps and guides call that page title the "meta title", which is where the confusion starts — it is the same field under a second name.

Three names, two fields
What it is calledWhere it shows upWhat goes wrong
Product titleThe page, collection listings, the cart, the order emailSupplier copy fills it, so 40 stores ship the same name
Page titleThe browser tab and the blue link in search resultsLeft empty, so Shopify falls back to the product title
Meta titleNowhere new — it is the page title, renamed by apps and guidesPeople assume it is a fourth box and never find it

The note I ended up writing to myself on that build was blunt: "I do everything, you forgot title." It is the field that gets skipped, on every store, every time.

How writing a search title can wipe your meta description

Writing a search title through Shopify's API can wipe the meta description because both fields live inside one seo object. Send only the title and the whole object is replaced. The mutation reports success and no error appears, so the loss stays invisible until somebody checks the page.

The symptom, as merchants report it

Store owners have been describing this for years on the Shopify Community. They save a search title and a description. Both look right. Days later, the description is gone.

The verbatim line from an April 2026 thread: "after a few days, they disappear; it's as if something is deleting them." Every reply guesses. Nobody names the mechanism.

The mechanism

Shopify's Admin API exposes a product's search fields through the productUpdate mutation. A Shopify meta description is not stored as an independent field. It lives inside a single seo object, alongside the title.

Send seo: { title } on its own, and the whole object is replaced. The description that was already there is cleared.

It fails quietly: no error, no warning, and the mutation reports success.

The rule

Always send both fields together, every time — even when only one of them is changing.

I hit this on a live product during the GALOVTE build, watched the description vanish from a page that had one an hour earlier, and had to write a repair script to put it back. Anyone bulk-editing a Shopify catalogue through the API, or through an app that uses it, may be doing this to their own products right now without a single warning on screen.

Not sure whether this is happening on your own store? Send us the URL and we will check a sample of products against what the pages actually render. Book a free check.

One more trap from the same build: products that were unlisted or in draft got silently skipped by a batch pass. Nothing flagged them. They surfaced later only because I went back and re-checked every product regardless of its status, which is now the rule I work to.

Telling the four causes apart

Blank is not always blank for the same reason. This table is the fastest way to find out which one you have.

Diagnosing a missing meta description
What you observeWhat is probably happeningHow to check
The field is blank in the adminSomething wrote to it: an app, an import, or an API call that sent a partial seo objectList every app and integration with write access to products, then re-check one product after each runs
The admin looks right, but the page source shows other textAn app is changing what the storefront renders without touching the stored valueView the rendered page source and compare its description tag against the admin field
A CSV export shows the field blank, but the admin is fineAn export mapping problem, not a data problemExport one product on its own and check which column the field lands in
Google shows text you did not writeGoogle rewrote the snippet, which it is allowed to doIf the admin and the page source both match your copy, nothing is broken

Row two has a name. Yoast describes its own behaviour as override, not overwrite — the storefront output changes while the value stored in Shopify stays put. Knowing which of those two you are looking at saves an afternoon.

One honest limit. There is enough evidence here to be careful with bulk edits. There is not enough to claim Shopify's own bulk editor systematically wipes metadata, so I am not saying it.

Which field should you fix first, and what does the AI summary leave out?

Google's AI Overview for this topic is a complete beginner's answer. It tells you to avoid copying manufacturer descriptions, and it is right. Then it stops.

It never tells you which fields to fix first when you have 200 products and a finite number of hours. That order is the whole job. There is a separate guide on how Google AI Overviews pick who to cite if you want the wider version.

Here is the order I work in, and it comes from doing it rather than from a framework:

  1. The product title first, because it turns up in search, in every collection listing and in the cart.
  2. Then the page title, which is the blue link somebody decides whether to click.
  3. Then the meta description, the sentence that earns that click.
  4. Image alt text next. On an apparel catalogue it is the most-skipped job there is.
  5. Body copy last, and only where it earns the time.

Print-on-demand makes this sharper, and no ranking guide mentions it. A supplier like Tapstitch hands you a product with a description already written. Every store pulling the same garment gets the same block of text.

From our projects

On GALOVTE, a print-on-demand apparel store I built from scratch with 150 to 200-plus products, the supplier's own copy arrived looking like this: "Item Number: WW#### / Gender: Women / Fabric: 57.4% polyester, 36.8% cotton, 5.8% other fibers". A spec dump with the supplier's own SKU sitting at the top, redacted here.

I replaced the product name, page title and meta description on every product. Parts of the supplied body description were rewritten, and parts were left. That is what a real store looks like — nobody rewrites 200 descriptions from zero.

The descriptions I shipped read like garment facts, not keywords: "Pure cotton at 260gsm, loose through the body with a plain crew neck. Eight colourways." The full versions land at 142 to 157 characters. On a product page, the specs are the keywords — a shopper searching "260gsm oversized cotton tee" is already describing the product.

Which ecommerce structured data does Google actually ask for?

Google names three things for ecommerce that rarely make a checklist: breadcrumb structured data so it can read your hierarchy, a separate reachable URL for every product variant, and business information if you have a physical location. It also recommends Merchant Center data for shopping surfaces. I read the documentation itself rather than a summary of it, and these are what stood out.

Breadcrumbs. Google lists BreadcrumbList among the structured data types that matter for ecommerce. It tells Google where a page sits in the hierarchy. Most Shopify stores ship without it.

Variant URLs. Google asks that each product variant be identifiable by its own URL — either a path segment or a query parameter. When you use a parameter, the URL with the parameter left off should be the canonical one.

Google Search Central diagram showing a blue t-shirt at example.com/t-shirt as the canonical URL and a green variant at example.com/t-shirt?color=green, illustrating how ecommerce product variant URLs should be structured
Google's own diagram: the plain URL is canonical, the colour parameter identifies the variant.

That matters more on an apparel store than it sounds. Eight colourways sitting behind one URL, with no way to address any of them individually, is eight variations Google has no reason to treat as anything other than a single page. On an apparel catalogue, colour is most of the range.

Business information. Google also says a store with a physical location should publish its location and hours the same way a plumber or an electrician would. And it recommends Merchant Center structured data for stores that want a place in shopping surfaces.

Why does a ranking product page still sell nothing?

Every ranking guide on page one optimises for position and then stops, as though the job ends the second somebody arrives. It does not. A product page that ranks beautifully and cannot take an order converts nothing at all.

This is not a hypothetical. The client had bought a paid Shopify theme called Luma. As it arrived and was set up on this store, the product page's only action was a "Select color" button, followed by Shopify's own express checkout button. There was no standard Add to Cart anywhere on it.

On an apparel store, that removes the multi-item basket, which is most of the order value. I added the Add to Cart button into the theme code by hand.

That is worth being clear about, because it is the reason this kind of fix is worth doing properly. The buy section is not part of any one product. It lives in the theme, and the theme renders it on every product page in the store. Fix the code once and 200 product pages change at the same time. Patch it product by product and you are still patching it next year.

GALOVTE Shopify product page before the fix, showing a Select color button with no Add to Cart option, weight-based shipping text, and a supplier-supplied product description listing a redacted item number, gender and fabric percentages A GALOVTE product page after the theme fix, showing colour swatches and size options inline, a quantity selector, a working Add to Cart button, and flat rate shipping text
Two different GALOVTE products, and that is the point. The buy section is part of the theme, so it renders the same way on every product in the store: fix it once in the code and it is fixed on all of them. Left, before: no Add to Cart, weight-based shipping, and the supplier's raw spec dump in the description with its item number redacted here. Right, after: swatches, sizes, a quantity stepper and a working button.

The second fix was mobile. Colourways and sizes sat below the fold, so a shopper had to scroll away from the product to pick one. I rewrote the section so variant selection happens in place, without the shopper losing sight of the product.

The third was the shipping line. It moved from a weight-based price shown at checkout to a flat rate, worked out by hand across the real product mix. That calculation deserves its own post, and it is coming.

The principle behind all three: a premium theme gets you a layout, not a conversion path. The money version of this question sits in a separate piece on what an online store costs to build in Canada.

What should you check before you bulk-edit a catalogue?

Bulk editing is where good stores lose their metadata. A Shopify Community thread from March 2025 describes roughly 300 duplicated products where "each product has the URL and Meta Title of the product that came before it".

Another merchant on r/shopify reported that an SEO app reverted every change it had made once the subscription was cancelled. The app was not named, so I am not guessing at which one.

Five things to do first

  1. Export everything. Keep the original CSV somewhere you can find it in a hurry.
  2. Run a canary batch. Two or three products, not two hundred.
  3. Check both places. The admin field and the rendered page source are different things, and they can disagree.
  4. List every system with write access. Apps, imports, syncs, scripts. Anything that can write can overwrite.
  5. Pick one source of truth for the search fields, and turn the others off.

One more, worth testing before you commit to anything: install the app on a trial, let it write to three products, then cancel the trial and go back and look at whether its work is still sitting in those fields afterwards. Better to learn that on three products than on two hundred.

On tools generally, Semrush makes an honest call worth repeating. Under roughly 50 products, Shopify's built-in fields are usually enough, and stacking apps costs you page speed.

Can you set up a Shopify store with Claude Code, without the API?

You can set up a Shopify store with Claude Code without touching the Admin API. Shopify's own command-line tool connects the two, so there is no custom app to register and no access tokens to manage. It goes last here because it only pays off once you know what you are asking it to build.

The barrier that is not there

Most write-ups of "automating Shopify" assume you register a custom app, generate Admin API credentials, and manage scopes and tokens. That is the step where non-technical store owners quit.

You do not need it. Shopify's own CLI is the door. That is how GALOVTE was actually built.

Research first, build second

The order matters more than the tooling, and it is where people go wrong. My rule, word for word from my own notes: "Do not jump straight to setting up the store. Then you will make mistakes. Claude works better with the reference and instructions."

Gather the reference material before a single command runs:

Then turn that research into written instructions, and build the store around them. An agent with no brief invents one.

What you need on your own machine

Enough to begin, not a full tutorial. A project folder for the store, with your reference documents sitting in it: the business brief, the audience, the Google requirements. Node installed, then Shopify's CLI, then a login command that connects the CLI to your store. From there Claude Code works inside that folder, against your theme and your product data, with the brief sitting next to it.

A dedicated walkthrough is on the list. For now, the part worth taking away is that the API was never the requirement, and the barrier most people quit at was never really there.

If you have read this far, you already have a good idea which of these twelve things your own store is missing. A store is a research problem before it is a build problem, which is the same lesson as the one I keep repeating on pricing: a store is an economics problem before it is a design problem.

Interactive checklist

The starting kit for an SEO-ready store

Twelve things to have in place before a store can rank. Tick what is done. Nothing is saved or sent anywhere.

0 of 12 done

Want a second pair of eyes on your store? Chat on WhatsApp.

The fields on every product
Structure Google can read
Before you touch anything in bulk

Frequently asked questions about ecommerce SEO

What is SEO for ecommerce?

Ecommerce SEO is the work of getting a store’s collection and product pages to show up in search. On a platform like Shopify most of it happens in four fields: the product title, the page title, the meta description and image alt text. Collection pages usually carry the most ranking weight, because they match the way people actually search.

Can you do SEO on Shopify?

Yes. Shopify gives you a page title and a meta description on every product, collection and page, alt text on every image, and full control over your collection structure. What it does not warn you about is that apps, imports and API calls can overwrite those fields after you fill them in, without showing an error.

How much does ecommerce SEO cost?

It depends on catalogue size and how much of the on-page work is already done. Our own SEO starts at $397 a month, and a 200-product store needs far more field-level work than a twenty-product one. Ask any agency to show you exactly what the first month covers before you sign anything.

Which SEO tool is best for Shopify?

For most small stores, none of them. Semrush’s own ecommerce SEO guide says stores under roughly 50 products are usually fine on Shopify’s built-in fields, and warns that stacking apps costs you page speed. If you do install one, check whether it writes to your product fields directly, and test what happens to its work when you cancel.

How do I learn SEO as a beginner?

Start with one store and one collection page rather than a course. Fill in the page title and meta description on every product, write real alt text, and put every product in the right collection. Then check what the page actually renders in its source, not just what the admin screen says. Doing that once teaches more than ten guides.

Do collection pages or product pages rank better on Shopify?

Collection pages, usually. A collection matches a search like "women’s hiking jackets", while a product page matches one specific item somebody already has in mind. Product pages still matter for branded and very specific searches, but the collection is where most of the traffic is won.

Harman Chahal, founder of IshaanEx Digital
Written by

Harman Chahal

Harman is the founder of IshaanEx Digital, an Abbotsford agency working on local SEO, custom-coded websites, AI search optimisation and ecommerce. He builds Shopify stores himself, including the on-page SEO across every product, and works with clients in English and Punjabi.

About Harman and IshaanEx Digital

Free check

Not sure what your store is missing?

Send us your store URL. We will check the collection structure, the search fields on a sample of products, and whether anything with write access is quietly undoing your work. No charge, and no pitch attached.

We build and rank stores from Abbotsford, and we work in English and Punjabi.

Book a free checkCall 250-271-7055

Based in Abbotsford, working across the Fraser Valley and Lower Mainland. If you are weighing up ecommerce SEO in Abbotsford, or you want custom-coded websites built for speed, both start with the same conversation.