Shopify SEO Checklist: Rank Your Online Store
A complete Shopify SEO checklist: optimize collections, product pages, structured data, speed, and URLs to rank your online store in Google.

Shopify SEO is the practice of optimizing a Shopify store's pages, code, and content so they rank in Google and get cited in AI answers. Shopify covers the basics out of the box β SSL, mobile-responsive themes, automatic sitemaps, and canonical tags β but it ships with forced URL prefixes, built-in duplicate content, and theme bloat that you have to work around manually. This checklist walks through every fix that matters, in priority order, with copy-paste Liquid code where it counts.
If you built a store, picked a theme, loaded your products, and assumed Google would rank you automatically β it won't. Ranking a Shopify store takes deliberate work on collections, product pages, structured data, and speed. Here is the complete playbook.
What Makes Shopify SEO Different
Shopify is a closed, hosted platform with constraints you don't get on self-managed CMSs like WordPress. Understanding these limits is the first step, because they shape every other decision on this list.
URL structure is partially locked. Shopify forces /collections/, /products/, and /blogs/ into your URLs. You can't strip these prefixes, but you can fully control the slug after them β and that's where the keyword work happens.
Duplicate content is built in. Shopify exposes the same product under both /products/product-name and /collections/collection-name/products/product-name. The platform adds canonical tags to point search engines at the primary URL, but you need to verify they're firing correctly β themes and apps frequently break them.
Theme code quality varies wildly. Free themes are generally lean and well-optimized. Many paid themes ship with bloated JavaScript, uncompressed images, and weak semantic HTML. Your theme choice directly determines how fast your store loads and how cleanly Google can parse it.
Limited server-side control. You can't edit server configs, set custom cache rules, or add server-level redirects. Everything routes through Shopify's admin or your theme's Liquid code. That's a constraint, not a dealbreaker β but it means the fixes below live in admin settings and theme files, not a .htaccess.
Shopify's own SEO is mostly solid; the gaps are in the parts you control. For the platform-agnostic foundation behind all of this, the complete technical SEO guide covers crawling, indexing, and rendering in depth.
1. Optimize Your Collection Pages First
Collection pages are your most powerful ranking assets on Shopify. They target broad category keywords with real search volume β "women's running shoes," "organic coffee beans," "minimalist desk lamps" β that individual product pages can rarely win.
Add unique, keyword-rich descriptions to every collection page (aim for 150β300 words). Put your target keyword in the collection title, the URL handle, and the meta description. Don't just dump a product grid β add context about the category that genuinely helps a shopper choose, because that's also what earns an AI Overview citation.
Structure collections in a clear parent-child hierarchy. A path like "Shoes β Running Shoes β Women's Running Shoes" gives Google an unambiguous topical map. To map demand to the right level of the hierarchy, group your terms with a keyword clustering workflow before you write a single description.

2. Nail Product Page SEO
Each product page should target a specific long-tail keyword β the kind of buyer-ready phrase that converts. Optimize these elements on every product:
- Product title β primary keyword used naturally (brand + product + key attribute)
- Product description β minimum 300 words of unique content, never copy-pasted
- URL handle β short, keyword-rich, no filler words
- Image alt text β descriptive, includes the product name and a key feature
- Meta title and description β written by hand for each product, not auto-generated
Never paste in the manufacturer's description verbatim. Hundreds of stores carry the same boilerplate, and Google will rank none of them. Write descriptions that answer real buyer questions β fit, materials, sizing, use cases. Because these pages are transactional, match the wording shoppers actually use; the four search intent types explain how to tell a "buy" query from a "research" one. And since product names are the perfect place for them, lean into long-tail keywords that bigger stores ignore.
3. Optimize Images for Speed and SEO
Images are usually the heaviest assets on a Shopify store, and bloated product photos wreck both page speed and rankings.
Compress every image before upload and favor WebP. Shopify automatically serves WebP to supported browsers, but you still want your source files lean β keep product images well under 200KB where quality allows. Name files descriptively before uploading: blue-leather-crossbody-bag.jpg, never IMG_4523.jpg.
Add descriptive alt text to every single image. This is the traffic source most Shopify stores completely ignore β Google Image search sends real buyers to well-tagged product photos. The full method is in the guides on writing alt text for SEO and accessibility and compressing and converting images.
4. Implement Proper Structured Data
Shopify themes include basic Product schema by default, but it's frequently incomplete. For full rich-snippet eligibility you want price, availability, brand, SKU, and ratings all present. Add this to your product.liquid (or your product template section):
{% comment %} Add to product.liquid or product template section {% endcomment %}
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Product",
"name": "{{ product.title | escape }}",
"description": "{{ product.description | strip_html | truncate: 500 | escape }}",
"image": "{{ product.featured_image | image_url: width: 1200 }}",
"brand": {
"@type": "Brand",
"name": "{{ product.vendor | escape }}"
},
"sku": "{{ product.selected_or_first_available_variant.sku | escape }}",
"offers": {
"@type": "Offer",
"url": "{{ shop.url }}{{ product.url }}",
"priceCurrency": "{{ cart.currency.iso_code }}",
"price": "{{ product.selected_or_first_available_variant.price | money_without_currency | remove: ',' }}",
"availability": "{% if product.available %}https://schema.org/InStock{% else %}https://schema.org/OutOfStock{% endif %}",
"seller": {
"@type": "Organization",
"name": "{{ shop.name | escape }}"
}
}{% if product.metafields.reviews.rating.value %},
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "{{ product.metafields.reviews.rating.value }}",
"reviewCount": "{{ product.metafields.reviews.rating_count }}"
}{% endif %}
}
</script>This markup makes your product eligible for rich snippets β price, stock status, and star ratings shown directly in the SERP β which lift click-through. Google's own structured data documentation lists the exact required and recommended fields, and you can confirm the syntax against schema.org/Product. If structured data is new to you, start with schema markup for beginners.
| Schema field | Why it matters | Shopify source |
|---|---|---|
price + priceCurrency | Shows price in SERP | variant price + cart.currency |
availability | "In stock" badge | product.available |
aggregateRating | Star ratings in results | reviews app metafields |
sku | Product matching | selected variant SKU |
brand | Knowledge graph linkage | product.vendor |
5. Speed Optimization β Remove the Bloat
Store speed is a confirmed ranking factor through Core Web Vitals, and most Shopify stores are dragged down by surplus apps, heavy themes, and render-blocking resources.
Remove unused apps. Every Shopify app injects JavaScript into your storefront β even ones you rarely touch. Audit your installed apps and delete anything non-essential. Each removed app can save real load time.
Lazy load below-fold images. Add loading="lazy" to product images in collection grids and anything below the first viewport, while keeping hero and above-fold images loading eagerly. The full pattern is in the lazy loading guide.
Minimize theme JavaScript. If your theme is bloated, switch to a lightweight one. Dawn (Shopify's default OS 2.0 theme) is excellent for performance. Avoid themes packed with heavy animations and parallax.
Preconnect to third-party domains. If you use external review, analytics, or chat services, add resource hints:
{% comment %} Add to theme.liquid <head> section {% endcomment %}
<link rel="preconnect" href="https://fonts.googleapis.com" crossorigin>
<link rel="preconnect" href="https://cdn.shopify.com" crossorigin>
{% comment %} Defer non-critical CSS {% endcomment %}
<link rel="preload" href="{{ 'custom-styles.css' | asset_url }}" as="style" onload="this.onload=null;this.rel='stylesheet'">
{% comment %} Custom meta tags for SEO {% endcomment %}
{% if template contains 'product' %}
<meta property="og:type" content="product">
<meta property="og:title" content="{{ product.title | escape }}">
<meta property="og:description" content="{{ product.description | strip_html | truncate: 200 | escape }}">
<meta property="og:image" content="https:{{ product.featured_image | image_url: width: 1200 }}">
<meta property="product:price:amount" content="{{ product.price | money_without_currency }}">
<meta property="product:price:currency" content="{{ cart.currency.iso_code }}">
{% endif %}Those Open Graph tags also control how your products look when shared on social β see the Open Graph tags guide for the full set. For e-commerce-specific vitals tuning, the guide on fixing LCP, CLS, and INP on stores is the deep dive. Google's own web.dev performance guidance documents the LCP < 2.5s threshold you're aiming for.

6. Fix Your URL Structure
Shopify's forced prefixes (/collections/, /products/) are fine β Google handles them without penalty. What you optimize is the slug portion:
- Use short, descriptive handles:
/products/blue-leather-bag, not/products/beautiful-handcrafted-blue-italian-leather-crossbody-bag-2024 - Drop stop words like "and," "the," "for," "with"
- Include the primary keyword in the slug
- Never change a live URL without a 301 redirect via Online Store β Navigation β URL Redirects
That last point is critical: changing a handle without a redirect creates a 404 and loses any equity the old URL earned. The HTTP status codes guide explains why a 301 is the only correct move here, and the canonical tags guide covers the duplicate-URL issue Shopify creates by default.
7. Build a Blog for Topical Authority
Your product and collection pages target transactional keywords. Informational queries β how-tos, guides, comparisons β carry far more search volume and feed AI answers. A blog bridges that gap and builds the topical depth Google rewards.
Create content clusters around your products. Sell coffee equipment? Write about brewing methods, bean origins, grind sizes, and machine maintenance, with each post linking down to relevant products and collections. This is exactly the topical authority approach that turns a thin store into a category resource. To find the demand, run a competitor keyword analysis on stores already ranking, then validate which terms you can realistically win with keyword difficulty scoring.
Run a free SlapMyWeb audit to see which of these issues your store actually has before you start writing.
8. Build a Strong Internal Linking Structure
Most Shopify stores have weak internal linking β products link to nothing, collections sit isolated, and blog posts dead-end. Fix it:
- Link from blog posts to the products and collections they discuss
- Add "related products" sections that point to genuinely related items
- Cross-link complementary collections ("You might also likeβ¦")
- Enable breadcrumbs (most OS 2.0 themes include them β verify they're on)
- Link from product descriptions back to relevant blog guides
Strong internal links spread authority across your store and help Google discover every page. For the full content-clustering framework that should drive your interlinking, see the e-commerce SEO complete guide.
9. Optimize for Mobile
The majority of Shopify traffic comes from mobile, and Google indexes mobile-first β your mobile experience determines your rankings.
Test pages on real devices, not just dev-tools emulation. Confirm product images are correctly sized, tap targets are at least 44Γ44px, text is readable without zooming, and forms are easy to complete one-handed. Shopify's responsive themes cover the basics, but custom code and third-party app widgets often break on phones, so spot-check anything you've added.
Common Shopify SEO Mistakes
Using default meta titles and descriptions. Shopify auto-generates these from your product title and the first line of the description β rarely optimized. Write custom tags, and follow the rules in the title tags and meta description guides.
Ignoring collection-page SEO. Owners obsess over product pages and forget collections, which often have higher ranking potential on broader, higher-volume keywords.
Too many apps installed. Each app adds JavaScript. Stores stacked with apps often crawl to multi-second load times. If an app doesn't directly drive revenue, remove it.
Thin product descriptions. One-line or manufacturer-copied text won't rank. Each product needs unique detail addressing what the buyer wants to know.
No blog or content strategy. You're leaving most informational traffic on the table β visitors who aren't ready to buy yet but will be after reading your guide.
Broken canonical tags. Some themes and apps inject wrong canonicals, recreating the duplicate-content issue. Verify canonicals point to the clean /products/ URL, not the /collections/.../products/ variant.
No Google Search Console. You can't fix what you don't measure. Submit your sitemap (yourstore.com/sitemap.xml) and watch indexing weekly β the how to check if your site is indexed guide shows exactly what to look for.

Tools and Workflow for Shopify SEO
Sustained Shopify SEO needs measurement, not guesswork:
- A full technical audit β covering all 240+ on-page, performance, and schema checks to surface Shopify-specific issues. Start with how to do a complete SEO audit.
- Google Search Console β free indexing, crawl-error, and query monitoring; submit your sitemap and check it weekly.
- Shopify's built-in SEO fields β always fill the "Search engine listing" box at the bottom of every product, collection, and page.
- PageSpeed measurement β track your store's Core Web Vitals over time; the PageSpeed score guide explains how to read the number.
On WordPress instead? The WordPress SEO optimization guide is the platform sibling to this checklist.
Frequently Asked Questions
Is Shopify good for SEO?
Yes β Shopify handles the SEO fundamentals well out of the box, including SSL, mobile-responsive themes, automatic sitemaps, and canonical tags. Its limitations are forced URL prefixes and no server-level control, but neither prevents ranking. With proper optimization of collections, product pages, structured data, and speed, a Shopify store can compete with any platform in most e-commerce niches.
How long does Shopify SEO take to show results?
Technical fixes like speed, structured data, and meta tags can show movement within weeks, while content and authority-building are longer plays measured in months. There's no guaranteed timeline β results depend on competition, your starting point, and how consistently you publish. Treat the first quarter as foundation-laying, not a deadline for traffic.
Do I need a Shopify SEO app?
Not necessarily β most Shopify SEO can be done manually through the theme editor and admin settings. Apps like Smart SEO or JSON-LD for SEO can automate structured data and meta tags, but they add JavaScript weight to every page. Only install one if it saves meaningful manual work on a large catalog of several hundred products or more.
Should I use Shopify's default theme for better SEO?
Dawn, Shopify's default OS 2.0 theme, is one of the fastest and cleanest themes available, which makes it a strong SEO default. If your current theme has speed problems, switching to Dawn or another lightweight OS 2.0 theme is one of the highest-impact changes you can make. Always prioritize speed and clean semantic code over flashy animations.
How do I fix duplicate content on Shopify?
Shopify creates duplicate product URLs under both /products/ and /collections/.../products/, and it adds canonical tags pointing to the primary /products/ URL to resolve them. Your job is to verify those canonicals are intact β themes and apps sometimes overwrite them. If a product is reachable through multiple collections, confirm every version canonicalizes to the same clean /products/ URL.
SlapMyWeb Team
We build SlapMyWeb β a brutally honest AI website audit that scans 240+ SEO, performance and Core Web Vitals signals and hands you the fix code.