Shopify
Shopify SEO Guide: How to Rank Your Store
Shopify gives you a fast, well-structured storefront out of the box, and that is exactly why so much Shopify SEO advice stops at "write good titles." The platform handles the basics well enough that the real gains come from decisions Shopify leaves to you: how collections are organized, which of the several URLs a product can live at gets treated as the original, what your theme and apps do to load time, and whether your store publishes anything worth linking to.
This guide walks through Shopify SEO in the order we would actually work on a store: structure first, then the pages that earn search traffic, then the technical layer that keeps Google from wasting crawl budget on duplicates, and finally the content and linking work that compounds over time. Each section names the specific settings and Liquid objects involved so you can act on it in your own admin.
Start with site structure, not keywords
Search engines understand a Shopify store through its hierarchy: home, collections, products, with pages and blog posts alongside. Every URL Shopify creates falls into one of a few fixed patterns: /collections/handle, /products/handle, /pages/handle, and /blogs/blog-handle/post-handle. You cannot change those prefixes, so structure work happens at the collection level.
Think of collections as your category landing pages. A store selling home fitness gear should have collections that mirror how people search, such as adjustable dumbbells, resistance bands, and folding treadmills, not only New Arrivals and Best Sellers. Automated collections built on tag, vendor, or price conditions keep these pages populated without manual work, and Shopify lets a product sit in as many collections as make sense.
Keep the main navigation shallow. Every important collection should be reachable within two clicks of the homepage, and nested menus should link to real collection pages, not to a filtered view. When a category exists only as a menu label with no landing page, you lose the chance to rank a dedicated URL for that term.
- Map your top 20 to 30 search terms to collections before touching product pages.
- Give each collection a written description; Shopify renders it above or below the grid depending on the theme.
- Avoid single-product collections and near-duplicate collections that split ranking signals.
Optimizing collection and product pages
Collection pages carry most of the non-branded search demand on a Shopify store, so they deserve more than a title and a grid. In Shopify admin, each collection has a Search engine listing section where you set the page title (Shopify allows up to 70 characters) and the meta description (up to 320 characters, though Google typically displays around 155). Lead with the category term, add a qualifier that matches intent, and keep your brand at the end.
Product pages need three things done well: a descriptive product title that says what the item actually is, a description written for the buyer that naturally includes the terms they search, and an SEO title and meta description that differ from the defaults when the defaults are weak. Shopify auto-fills the SEO fields from the product title and the first lines of the description, which is rarely the best version.
Write descriptions that answer the questions a shopper would ask a store assistant: what it is made of, who it fits, what is included, how it compares to the other options on the same shelf. Unique copy matters most for stores reselling products that appear on dozens of other sites with the manufacturer's paragraph pasted in.
- Product title: what it is plus the defining attribute, such as "Merino Wool Crew Sock, Midweight" rather than a SKU-style string.
- Use the search engine listing preview in admin to check truncation before saving.
- Put specification tables in the description body, not only in images, so the text is indexable.
The duplicate URL problem and how canonicals fix it
Shopify creates a second URL for a product every time it is linked from a collection: /collections/running-shoes/products/trail-runner alongside the primary /products/trail-runner. The collection-prefixed version exists so the theme can show previous and next navigation within the collection. That is convenient for shoppers and a classic duplicate-content trap for search engines, because the same product page can be reached at as many URLs as there are collections it belongs to.
The fix is the canonical tag, and most modern Shopify themes already handle it. Look in theme.liquid for a line that outputs a link rel="canonical" tag using the canonical_url object. Shopify's canonical_url always resolves to the clean /products/handle version, telling Google which URL to index and consolidating signals from the duplicates. If your theme uses a hard-coded URL or omits the tag, add it.
Two related traps: variant URLs with a ?variant= parameter, which the canonical also resolves, and tag-filtered collection URLs such as /collections/all/red, which Shopify treats as separate indexable pages with their own canonical. If your store generates hundreds of tag combinations, those pages dilute crawl budget. Consider whether your theme should link to tag filters at all, or use the seo.hidden metafield to noindex thin ones and remove them from the sitemap.
- Verify the canonical on any product page by viewing source and confirming it points to /products/handle.
- Keep internal links pointing to the canonical URL where possible; product.url inside a collection loop outputs the collection-prefixed version, so decide deliberately.
- Search Console's "Duplicate, Google chose different canonical" report shows whether consolidation is working.
Metadata, image alt text, and on-page details
Beyond titles and descriptions, a few small settings do steady work. Shopify uses the product title as the H1 on most themes; do not force a second H1 through a custom section. Headings inside your product description should be H2 or H3 so the page reads as one document, not several.
Image alt text is set per image in the product media panel and per collection image. Write alt text that describes the image in plain words, including the product name where it is honest to do so: "black leather crossbody bag with brass clasp, front view" rather than "bag" or a list of keywords. Alt text is the only text search engines can read from an image, and it also feeds Google Images, which is a real traffic source in visual categories such as apparel, decor, and jewelry.
Handles (the URL slugs) should be short and descriptive. Shopify generates them from the product title, so a product titled "NEW!!! Trail Runner 2.0 - Men's - Blue" gets a messy handle. Edit it before publishing. If you change a handle later, tick the box Shopify offers to create a URL redirect so existing links keep working.
- One H1 per page, from the theme; never a second one inside a rich text section.
- Alt text on every product image, written for a person who cannot see it.
- Clean handles set before publishing; redirects created whenever they change.
Speed and Core Web Vitals on Shopify
Shopify hosts on a fast global CDN, so raw server response is rarely the bottleneck. The theme and the apps are. Every app that injects a script into the storefront adds load time and often layout shift. Audit installed apps every quarter, remove what you do not use, and check whether the ones you removed left code behind (many do; look for orphaned snippets in theme.liquid).
For images, use Shopify's image_url filter with an explicit width and a srcset so mobile users are not served desktop-sized files. Shopify serves WebP automatically to supporting browsers when the image is requested through the CDN with a size parameter. Lazy-load below-the-fold images, but never lazy-load the main product image or hero, since that is usually your Largest Contentful Paint element.
Measure with PageSpeed Insights on a product page and a collection page, not only the homepage. Google's thresholds are the targets: LCP under 2.5 seconds, INP under 200 milliseconds, and CLS under 0.1. Shopify's own speed score in the admin is a rough Lighthouse average and is useful for tracking trends, not for diagnosing a specific page.
- Audit and prune apps; check for leftover scripts after uninstalling.
- Serve responsive images with width parameters and srcset.
- Keep fonts to two families, preload the primary one, and avoid heavy hero videos on mobile.
Blog content and internal linking
Shopify's blog is basic, but it is enough for the purpose: ranking for questions and comparisons that lead to your products. A store selling espresso equipment can rank a collection for "espresso grinder," but searches such as "how fine should espresso grind be" or "burr vs blade grinder" need articles. Those readers are early in their decision, and a well-placed link to the relevant collection moves them along. Plan posts around the questions your support inbox already receives, and avoid thin news-style updates; ten substantial guides outperform a hundred announcements.
Internal links tell search engines which pages matter. On most Shopify stores, the homepage and main navigation do all the work, which means deep collections and long-tail products get almost no link equity. Fix that in three places: collection descriptions that link to related collections, product descriptions that link to the parent collection and to complementary products, and blog posts that link to the exact product or collection they discuss.
The related and complementary product blocks in Dawn-based themes provide crawlable links, but they are algorithmic and change over time. Editorially placed links in copy are more stable and carry descriptive anchor text. Adding a "Shop the collection" link at the end of every product description is a simple standard worth adopting.
Structured data and Shopify's built-in product schema
Structured data is what gets your product listings shown with price, availability, and review stars in search results. Shopify's default themes, including Dawn, output Product JSON-LD from the product section, populated with name, image, description, SKU, brand, and an offer with price, currency, and availability. Many third-party themes do the same, but some output outdated microdata or nothing at all.
Test a product URL in Google's Rich Results Test. If the Product schema is missing review ratings, check whether your review app injects its own AggregateRating block; two conflicting Product blocks on one page is a common problem when a theme and an app both emit schema. Pick one source and disable the other. For the homepage, an Organization or WebSite block with your logo and social profiles is a small win that many themes omit.
Common Shopify SEO mistakes
Most Shopify SEO problems are not exotic. They are the same handful of oversights repeated across thousands of stores, and each one is fixable in an afternoon once you know to look.
- Leaving the store password on after launch, or forgetting to remove a sitewide noindex added during development.
- Duplicate collections for the same category ("Sale Boots" and "Boots on Sale") splitting rankings.
- Manufacturer descriptions copied across hundreds of products.
- Hundreds of indexable tag-filter pages with no unique content.
- Deleting discontinued products without a redirect, leaving 404s that once had backlinks.
- Installing SEO booster apps that add generic schema or meta tags on top of what the theme already outputs.
- Optimizing the homepage repeatedly while collection pages, which carry the real category demand, sit with default titles.
Want a second pair of eyes on your store's SEO?
We audit Shopify structure, canonicals, speed, and content, then turn the findings into a fixed-fee proposal after a free strategy call.
Book a Free 30-Minute Strategy Call โ