Shopify is a good platform for SEO. It is not a great one out of the box. It ships with duplicate URLs, thin collection pages, a locked robots.txt (mostly), and a theme ecosystem that treats headings as decoration. Every store we take over has the same twenty-odd problems, and fixing them in the right order is usually worth more organic revenue than any "content strategy" deck.
This is the checklist we actually work through. It is grouped into four passes — crawl & indexation, collections, products, and content — because that is the order the impact arrives in. Do pass one before you write a single blog post.
Pass 1 — Crawl and indexation (do this first)
If Google is indexing the wrong URLs, everything else you do is diluted. Shopify creates several routes to the same product and a handful of pages that should never rank.
- Kill collection-nested product URLs. Shopify links products as
/collections/x/products/yfrom collection grids. The canonical points to/products/y, but internal links still pass through the duplicate. In your product-card snippet, changeproduct.urltoproduct.url | split: '/products/' | last | prepend: '/products/'(or use thewithinfilter removal). One change, thousands of cleaner internal links. - Noindex tag pages.
/collections/all/tag-nameURLs generate near-infinite thin pages. Add{% if current_tags %}<meta name="robots" content="noindex,follow">{% endif %}totheme.liquid. - Noindex sorted and filtered variants.
?sort_by=and?filter.parameters. Shopify canonicalises these, but a noindex belt-and-braces is safer for large catalogues. Handle intheme.liquidby checkingrequest.pathand query. - Check what is actually indexed. Search
site:yourdomain.co.ukand compare to your sitemap count. A 3× gap means parameter or tag bloat. - Fix the search page.
/search?q=should be noindexed. Most themes already do this; verify. - Submit the sitemap in Search Console — the right one.
/sitemap.xmlis an index; make sure product, collection, page and blog children are being read. - Handle discontinued products properly. Redirect (301) to the closest live product or parent collection using Shopify's Navigation → URL Redirects. Never leave 404s on URLs that had links or sales history.
Shopify's robots.txt.liquid is editable since 2021, but do not block /collections/*? wholesale — you will block the filtered pages that some themes use for legitimate sub-collections. Use noindex, not disallow, for parameter URLs.
Pass 2 — Collection pages (where the money keywords live)
For most UK Shopify stores the commercial keywords ("women's waterproof jackets", "eco cleaning products", "baby wipes bulk") map to collections, not products. Yet collection templates are usually a heading, a grid and nothing else.
- One target keyword per collection, written into the H1. "Jackets" becomes "Women's Waterproof Jackets". Check the H1 is a real
<h1>— many themes wrap it in adivwith a heading class. - Add 150–300 words of genuinely useful copy. Above or below the grid, not hidden behind a "read more" that loads via JS. Answer what the range is, who it is for, sizing or spec notes, and link to 2–3 related collections.
- Unique meta titles with a modifier. Pattern:
{Collection} | {Modifier} | {Brand}— the modifier is where "UK", "Bulk", "Trade" or "Free Delivery" earns its click-through. - Sub-collections for long-tail intent. If "waterproof jackets" gets searched with "for walking", "for cycling" and "lightweight", make those collections (automated by tag) and link them from the parent. This is the single biggest lever for mid-size catalogues.
- Collection FAQ block with FAQPage schema. Three to five real questions from customer service. Rich results plus long-tail coverage.
- Pagination hygiene.
rel="next/prev"is deprecated, but page 2+ should still be crawlable and self-canonical. Do not canonicalise page 2 to page 1. - Breadcrumbs with BreadcrumbList schema. Home › Category › Sub-category. Shopify does not know the hierarchy, so you define it via menus or metafields.
Pass 3 — Product pages
- Product schema that validates.
Productwithoffers,priceCurrency: GBP,availability,sku,brandandaggregateRatingif you have reviews. Test in Rich Results Test — a surprising number of review apps inject broken JSON. - Rewrite the first 60 words. Supplier copy is duplicated across every retailer selling the product. Your opening paragraph is where uniqueness is judged.
- Variant handling. Colour and size variants share one URL (good). If you sell materially different variants (a 5L and a 25L drum), split them into separate products so each can rank for its own query.
- Image alt text with product + attribute. Not the file name. "Deep Fresh antibacterial surface spray 750ml front label" not "IMG_2044".
- Link up, across and sideways. Every product should link to its parent collection (breadcrumb), 3–4 related products, and one relevant guide or blog post. Internal links are the cheapest authority you will ever get.
- Reviews rendered in HTML, not an iframe. If your review app loads reviews in an iframe or via JS only, Google sees nothing. Most major apps have a "SEO-friendly" toggle — turn it on.
Pass 4 — Technical and speed
- Core Web Vitals under mobile throttling. Target LCP < 2.5s, INP < 200ms, CLS < 0.1. Shopify's CDN is fast; your apps are not. See our Core Web Vitals guide for Shopify.
- App audit. Every installed app that injects a script costs you. Remove anything not earning revenue; for the rest, check whether it can defer loading.
- Heading hierarchy. One H1, H2s for sections. Many themes make the logo an H1 on every page.
- Hreflang if you run Shopify Markets. Shopify generates it for subfolders/subdomains, but verify the tags are reciprocal and reference the right currency-locale pairs.
Pass 5 — Content that supports commercial pages
- Build topic clusters around collections, not around "blog ideas". Each cluster: one collection (money page) + 4–8 informational articles that link into it. Buying guides, comparisons, "how to choose" and "X vs Y".
- Refresh, don't just publish. A 2024 post updated with 2026 pricing and a new section will usually outrank a new post. Change the
dateModifiedand actually change the content. - Author and trust signals. An About page with real people, a physical UK address, returns policy, and reviews. E-E-A-T is not a ranking factor by name, but its proxies clearly are for commerce queries.
If you only have one day
Do items 1, 2, 8, 9, 15 and 21. That is: fix internal product URLs, noindex tag pages, give every collection a keyword-led H1 and real copy, validate product schema, and get LCP under 2.5s on mobile. On the Midland Tissue account, that first-day list plus sub-collections was responsible for most of the 220% organic growth — the content came later.
Shopify SEO is 70% fixing what the platform and your theme do by default, 30% creating things. Most stores have that ratio backwards.
Frequently asked questions
Is Shopify good for SEO?
Yes, with caveats. Shopify handles hosting, CDN, SSL and sitemaps well. Its weaknesses are duplicate product URLs, thin default collection templates and limited URL structure control. All are fixable with theme edits and the right settings.
Do I need an SEO app for Shopify?
Usually not. Most "SEO apps" edit meta tags and alt text — things you can do in the admin or in bulk via CSV. The genuinely useful ones handle JSON-LD schema or broken-link redirects. Avoid apps that inject render-blocking scripts.
How long does Shopify SEO take to show results?
Technical fixes (indexation, canonicals, schema) typically show within 2–6 weeks. Collection page optimisation 1–3 months. New content clusters 3–6 months. Migrations can take longer while Google re-evaluates the site.
Should I blog on Shopify or a separate WordPress site?
Keep it on Shopify. Splitting your content onto a subdomain or separate domain splits your authority. Shopify's blog is limited, but it is good enough for the buying guides and comparisons that support commercial pages.
Want this done for you?
Groweyo builds and runs the full e-commerce growth stack for UK brands — Shopify, paid media, Klaviyo, marketplaces and analytics. Free 30-minute consultation, no pitch deck.
Book a free call →