Loading tutorials…
Loading tutorials…
Shopify ships with decent SEO defaults but several land mines. Wrong title template, duplicate collection URLs, missing structured data — these are the issues that cap your organic ceiling no matter how much you blog. Here's the foundation, done right.
Who this is forShopify owners who want to rank for category and product terms but feel like SEO efforts aren't paying off. Especially relevant if you have 100+ products and your category pages are getting under 100 organic clicks/month combined.
What you'll need
Step 1
Shopify's default title template is '{{ shop.name }} – {{ page.title }}.' For SEO, you want '{{ page.title }} | {{ shop.name }}' — page title first.
Open Shopify Admin → Online Store → Preferences → Title and meta description.
The default 'Homepage title' format is often the shop name only. Replace with: 'Shop Name — Tagline that includes a primary keyword.' E.g., 'Acme Skincare — Clean Beauty for Sensitive Skin.'
For individual pages, the title is set per-product, per-collection, per-page. Open one of each and verify: title tag puts the keyword first, brand name last. 'Hyaluronic Serum for Dry Skin | Acme Skincare' beats 'Acme Skincare — Hyaluronic Serum.'
Why: Google weighs the first ~60 characters most heavily. Putting the brand first wastes the most valuable real estate on a name that doesn't compete in search.
Bulk-edit existing products/collections via Shopify's bulk editor or via a metafield-based approach.
Step 2
Each product, collection, page, and blog post needs a unique 140-158-character meta description that includes the primary keyword + a benefit.
Shopify Admin → Online Store → Pages (and Products, Collections, Blogs) → Edit website SEO.
The meta description appears in search results below the title. It doesn't directly affect rankings, but it directly affects click-through rate — which DOES affect rankings.
Template: '[Primary keyword phrase]. [Benefit or unique value]. [Action verb / CTA].' E.g., 'Hyaluronic acid serum for sensitive skin. 24-hour hydration without irritation. Shop now with free shipping over $50.'
Length: 140-158 characters. Shorter gets truncated awkwardly. Longer gets cut off.
Avoid duplicate meta descriptions across products — common when product templates auto-generate. Each top product should have a custom description.
Step 3
Shopify Admin → Products → click product → edit each image → add alt text. Bulk-edit via the bulk editor for speed.
Every product image needs alt text. Google uses it for image search (a meaningful traffic source for visual products) AND for general page understanding.
Format: 'Product name in use — color/variant — context.' E.g., 'Black leather wallet — bifold — open showing card slots.'
Avoid keyword-stuffing alt text. Stick to descriptive, natural language. Google's image understanding has caught up — repeated keywords look like spam.
For images of people using the product, describe the action: 'Woman applying hyaluronic serum to face.'
Bulk edit: Shopify Admin → Products → Bulk editor → select images column → paste alt text per image.
Step 4
Shopify Admin → Online Store → Preferences → Edit robots.txt.liquid. Block /search, /cart, /checkout, and /policies from crawl waste.
Shopify's default robots.txt blocks /search and a few utility paths. For most stores, that's fine.
Add to the disallow list: /policies/, /cart, /checkouts/, /account, /tools/* (if you have legacy tool URLs).
These pages have zero ranking potential and consume crawl budget that should go to your products and collections.
Do NOT block /collections/ or /products/ — those are your most important SEO pages.
Noindex specific pages (legal pages, internal-only pages) via Online Store → Pages → SEO → Edit website SEO → set 'noindex' header (Shopify added this in 2025).
Verify with Google Search Console → URL inspection: paste a /policies/ URL — it should show 'Blocked by robots.txt.'
Step 5
Most modern Shopify themes include Product schema. Verify via Rich Results Test. Add Organization, BreadcrumbList, and Review schema where missing.
Open Google Rich Results Test (search.google.com/test/rich-results). Paste your product URL.
You should see: Product schema with name, image, description, price, availability, sku, brand.
If anything is missing, your theme is outdated. Either update to a current Online Store 2.0 theme or install a structured-data app (Schema App, Schema Plus).
Add Organization schema in theme.liquid (one-time addition in <head>). Include: name, URL, logo, sameAs (your social media URLs), contactPoint.
Add BreadcrumbList schema — most themes ship without it. Adds breadcrumbs to your search snippets, which lifts CTR 5-10%.
If you collect product reviews (Judge.me, Yotpo, Loox), verify Review/AggregateRating schema is included. Reviews stars in SERPs lift CTR 15-30%.
Step 6
Shopify creates /collections/[name]/products/[name] URLs that duplicate /products/[name]. Canonicalize properly.
Shopify's biggest SEO trap: a product accessible at both /products/[handle] AND /collections/[collection]/products/[handle].
By default, Shopify sets the canonical to /products/[handle] — but some themes break this. Verify by viewing source on a /collections/X/products/Y URL: <link rel='canonical' href='/products/Y'> should be there.
If your theme is broken, edit theme.liquid in <head> to enforce: <link rel='canonical' href='{{ canonical_url }}'>.
Use Google Search Console → Coverage to find any duplicated URLs indexed. Typical signature: thousands of indexed pages with 'Duplicate without user-selected canonical' status.
Fixing this can recover 20-40% of organic traffic on stores with deep collection hierarchies.
Step 7
Shopify auto-generates sitemap.xml at /sitemap.xml. Submit to Google Search Console. Monitor for indexing issues weekly.
Shopify automatically generates /sitemap.xml with products, collections, pages, and blogs.
Submit it in Google Search Console → Sitemaps → enter 'sitemap.xml' → Submit.
Within 7 days, GSC reports how many URLs were submitted vs indexed.
Aim for 90%+ indexed. If you're at 70% or below, there's an issue — usually thin content (collection pages with no description), duplicate canonicals, or robots.txt blocks.
Repeat the audit monthly. New products should appear in the sitemap within 24 hours and be indexed within 7-14 days.
Common mistakes
Auto-generated thin collection pages
What goes wrong: A collection like /collections/sale with 3 products and zero descriptive text gets crawled but never ranks. Google deindexes it within 90 days for 'thin content.' Worst case, low-quality collection pages drag down site-wide ranking signals.
How to avoid: Every important collection needs: H1 with primary keyword, 150-300 words of descriptive copy above the product grid, optional buying-guide content below. Cull empty or near-empty collections that exist only for back-office logic.
Brand name first in title tags
What goes wrong: 'Acme Skincare — Hyaluronic Serum' wastes the most valuable real estate (first 60 chars) on a brand name nobody searches for. CTR drops 20-40% vs keyword-first titles.
How to avoid: Update title template to: page title first, brand last. Shopify Admin → Online Store → Preferences → Title template.
Missing alt text on product images
What goes wrong: Image search drives 5-20% of ecommerce traffic for visual products (fashion, home goods, beauty). No alt text = invisible to Google Images = lost traffic.
How to avoid: Bulk-edit alt text on every product image. Format: product name + variant + context. Run monthly for new products.
Duplicate canonical bug from /collections/X/products/Y
What goes wrong: Thousands of duplicate URLs indexed. Google sees your site as 'large, low-quality.' Top product pages lose 20-50% of their authority because it's split across duplicate paths.
How to avoid: Verify theme.liquid sets canonical correctly. If broken, hardcode <link rel="canonical" href="{{ canonical_url }}"> in <head>. Then submit cleanup via GSC.
Skipping structured data on product pages
What goes wrong: Without Product schema, you don't show price, stars, or availability in search results. CTR drops 15-30% vs competitors that DO have structured data.
How to avoid: Update to an Online Store 2.0 theme (most have Product schema baked in) or install Schema Plus. Verify via Rich Results Test.
Not blocking /search, /cart, /checkouts in robots.txt
What goes wrong: Google wastes crawl budget on infinite /search URL variations. Real product pages get crawled less frequently. New products take 30-60 days to index instead of 7-14.
How to avoid: Edit robots.txt.liquid in Shopify Admin → Online Store → Preferences. Disallow /search, /cart, /checkouts/, /account, /policies/.
Recap
Done — what's next
How to set up Shopify collections for SEO that actually ranks
Read the next tutorial
Hand it off
Shopify SEO basics get you ranking-eligible. Continued lift comes from collection content depth, internal linking, and structured data refinements that take weekly attention. A vetted ecommerce SEO specialist at $14-16/hr can run the audit, ship the fixes, and own ongoing SEO at $300-800/mo depending on catalog size.
See specialist rates
Decent for the basics — fast hosting, mobile-responsive themes, auto-generated sitemap. Weak on URL structure (the /collections/X/products/Y duplicate bug), thin collection pages, and image alt text. Most Shopify SEO work is fixing the defaults, not adding new features.
For a single-store owner doing SEO basics, no — the apps mostly automate things you can do manually. For multi-store or 1,000+ SKU catalogs, yes — apps like SearchPie, Smart SEO save dozens of hours. Avoid apps that promise rankings; SEO is content + structure, not magic.
Technical fixes (canonicals, robots.txt, structured data): 14-30 days. On-page improvements (titles, meta, alt text): 30-90 days. Content depth + backlinks: 6-12 months. Don't expect overnight movement — Shopify SEO is a slow compound.
For stores under $1M/year: no. The complexity isn't justified. For $1M+ stores with custom requirements, Hydrogen + Oxygen gives you full control over rendering, structured data, and performance — which can deliver SEO wins. But it requires a dev team to maintain.
Helps if configured correctly. Markets generates hreflang tags automatically when you publish to multiple country subdomains or subfolders. Common pitfall: enabling a market without translating product content — Google penalizes thin international duplicates.
Shopify
Product pages get the love. Collection pages get the rankings. For ecommerce SEO, your collection pages are the equivalent of category pages on Amazon — and most Shopify stores leave them as glorified product grids. Here's how to make them rank.
Shopify
Every 100ms of additional page-load time costs ~1% of conversion rate on mobile. Shopify stores routinely run 3-7 second LCPs because apps stack, images go un-optimized, and themes ship with bloat. Here's the systematic speed audit.
Shopify
Every Shopify app adds JavaScript. Every script blocks rendering. The average Shopify store has 12-18 installed apps and 6-10 of them shouldn't be there. Here's how to identify the bloat and cut it without breaking anything.
Shopify
DIY Shopify marketing is a great idea — until it isn't. This is the honest framework: when the cost of self-managing exceeds the cost of hiring, and how to tell which side you're on.
Google Search Console
Submitting a sitemap is one click. Submitting the right sitemap, in the right format, with the right URLs is what separates indexed sites from invisible ones. Here's how to get this right and how to diagnose the most common errors.