The short version
- Shopify's own defaults are fine. The losses come from duplicate collection URLs, filter-generated pages and app-driven page weight.
- Collection pages match how people search far better than products do, and most stores publish them as a bare grid with no copy.
- Every product needs at least one collection link. An orphan product is the last page crawled and the first forgotten.
- Permanently gone products get a 301 to the nearest alternative — never a 404, never a silent delete.
- Fix structure in week one, collection copy in week two, product copy in week three. Content before scores.
Shopify gets the basics right out of the box — clean URLs, HTTPS, a generated sitemap, mobile templates. What it does not do is warn you about the handful of platform-specific behaviours that quietly split or waste ranking signals. Most Shopify SEO problems are on this short list, and most of them take under an hour to fix.
Fix these first — they cost traffic today
1. Duplicate product URLs from collections
The same product is reachable at /products/x and at /collections/y/products/x. Shopify canonicalises to the first, but only if your theme outputs the canonical tag correctly — and many customised themes do not. Check the source of a product page reached through a collection and confirm the canonical points at the bare /products/ URL.
2. Filtered and sorted collection URLs
Every filter combination generates a URL. Left unmanaged, a collection with six filters becomes hundreds of near-identical indexable pages that consume crawl budget and dilute the collection's own signals. Filtered URLs should canonicalise to the unfiltered collection, with the exception of filter combinations people genuinely search for — "black leather sofa" as a filtered view is worth a real page.
3. Thin or empty collection pages
Collections are usually the highest-value pages in a store — they match the way people search ("mens running shoes") far better than any individual product. Most stores publish them with a title and a grid and nothing else. Add 150–300 words of genuinely useful buying guidance above or below the grid: what the category covers, how to choose, what the differences between the options mean. The same structure that works for product pages works here, one level up.
4. Products in no collection, or in only one
A product with no collection link is an orphan. Every product should sit in at least one collection, and the collection should link back. This is also how link equity from your homepage reaches the deep catalogue.
5. Out-of-stock and discontinued products
- Temporarily out of stock: keep the page, keep it indexable, mark availability correctly in structured data, and offer a back-in-stock signup.
- Permanently discontinued: 301 to the closest alternative or to the parent collection. Never delete into a 404 if the page had any traffic or links.
- Seasonal: keep the URL year after year rather than creating a new one each season.
The content layer
- Unique product descriptions on everything that earns money — supplier copy is duplicate content shared with every competitor. How to write them is a separate post.
- Title tags written as searches, not as brand slogans: product type, key attribute, brand.
- Meta descriptions that state the offer and a reason to click. They are not a ranking factor; they are a click-through factor, and click-through is what converts an impression into a visit.
- One h1 per page, matching what the page is actually about.
- Alt text describing the image contents. Image search sends real ecommerce traffic and it is close to free.
- A blog that answers pre-purchase questions rather than posting company news. "How to measure your wrist for a bracelet" earns links and rankings; "We are excited to announce" earns neither.
Structured data
Shopify themes vary wildly in what they emit. Validate a product page, a collection page and the homepage, and confirm you have:
- Product schema with price, currency, availability and SKU.
- AggregateRating only where visible reviews exist — inventing it is a manual-action risk.
- BreadcrumbList matching the visible breadcrumb trail.
- Organization schema on the homepage with a logo and your real social profiles.
Performance
Shopify stores are rarely slow because of Shopify. They are slow because of apps. Every app injects scripts on every page, including pages the app has nothing to do with. Audit the installed list quarterly, remove what is unused, and check whether the leftovers of removed apps are still in the theme — uninstalling frequently leaves the code behind.
- Serve product images at the size they display; a 2400px hero on a 390px phone is the most common single waste.
- Lazy-load below-the-fold images, never the hero — lazy-loading the largest visible element makes the score worse.
- Limit fonts to two weights of one family. Each additional web font is a render-blocking request.
- Test on a mid-range Android on 4G, not on your laptop. That is the device your traffic is on.
International stores
If you sell in more than one language or country, decide once between subfolders and Shopify Markets domains, then be consistent. Every localised page needs a self-referencing canonical and a complete, bidirectional hreflang cluster — every URL in the set must list every other, including itself, plus an x-default. A one-way hreflang is worse than none: it tells the crawler about a page it then cannot confirm.
And never redirect visitors between country versions based on IP alone. A crawler that is bounced off the URL it was told to index will treat that URL as unusable, and the whole cluster degrades. If one of your markets is Arabic, there are further language-specific traps.
What to ignore
- The meta keywords tag. Ignored since 2009.
- Keyword density targets. There is no threshold and there never was.
- Chasing a perfect performance score. Get into the green on mobile and spend the remaining time on content.
- Submitting your URL to search engines. If it is in the sitemap and linked internally, it will be found.
- Any app promising rankings. The work is in the pages.
The order to do it in
- Week 1: canonicals, filtered URLs, orphan products, out-of-stock handling. The structural fixes that stop losses.
- Week 2: collection page copy for your top ten collections. This is where the traffic is.
- Week 3: product descriptions for the products that already earn money.
- Week 4: structured data validation and the app/performance audit.
- Ongoing: one question-answering article a week, each linking to the collection it supports.
None of this is exotic. The reason it works is that most stores in most categories have done none of it.
Frequently asked questions
Is Shopify good for SEO?
Yes. It handles HTTPS, sitemaps, mobile rendering and clean URLs by default. Its weak points are duplicate collection URLs, filter-generated pages and app-driven performance loss — all fixable.
Should collection pages have text?
Yes. Collections match how people search far better than individual products, and a grid with no copy gives a search engine almost nothing to rank. 150–300 words of real buying guidance is usually enough.
What should I do with out-of-stock products?
If it is coming back, keep the page indexable and mark availability in structured data. If it is gone for good, 301 redirect it to the nearest alternative or the parent collection.
Do Shopify apps hurt SEO?
Indirectly. Most inject scripts on every page, which slows rendering, and uninstalled apps often leave code in the theme. Audit the list quarterly and remove leftovers manually.
How long until Shopify SEO changes show results?
Technical fixes can show within days once pages are recrawled. New content on a young store typically takes two to four months to settle into a stable position.