Shopify handles a lot of technical SEO for you, but it also locks some things down, and a few of its defaults quietly create duplicate URLs. This Shopify SEO checklist walks through the twelve areas that matter most for any store, with the exact admin paths from Shopify's current help centre, what you can and cannot change, and how to check each fix. Work through it in order and you will cover the issues that most often hold back small and mid-sized stores.
Key takeaways
- Shopify's /products/ and /collections/ prefixes cannot be changed, so focus on short, descriptive handles and leave the redirect checkbox ticked.
- Edit your theme so collection pages link straight to /products/ URLs rather than nested collection-product URLs that duplicate content.
- Shopify redirects only fire when the old URL returns a 404, so set a discontinued product to Draft or delete it before testing.
- Slow Shopify stores are usually slowed by apps, and uninstalling an app does not automatically remove its code from your theme.
1. Write unique title tags and meta descriptions
Every product, collection, page and blog post has its own search listing. If you leave it alone, Shopify builds the title from the item name and the description from the first part of the body text, which often produces repetitive or cut-off snippets.
Where to edit them:
| Content type | Where to edit |
|---|---|
| Home page | Online Store > Preferences, in the Social sharing image and SEO section |
| Pages | Online Store > Pages, open the page, then Edit website SEO in the Search engine listing preview section |
| Products | Open the product and edit the Search engine listing section at the bottom |
| Collections and blog posts | Open the item and edit its Search engine listing section |
Shopify allows page titles of up to 70 characters, but its own guidance says keeping to 60 avoids truncated titles, and it recommends around 160 characters for descriptions. Lead with the product or category term people actually search for, then add a differentiator such as material, size range or "free delivery".
Once you have updated a handful, paste a URL into the Meta Tag Checker to see the title, description, canonical and robots tags exactly as Google receives them.
2. Understand Shopify's fixed URL structure
Shopify URLs follow fixed patterns you cannot change:
/products/product-handle
/collections/collection-handle
/pages/page-handle
/blogs/blog-name/post-handle
You can edit the handle (the last part), but not the /products/, /collections/, /pages/ or /blogs/ prefixes. There is no setting or app that genuinely removes them, and it is not worth fighting. Google does not penalise these folders. What you control is a short, descriptive handle:
- Use lowercase words separated by hyphens:
/products/oak-dining-table-180cm. - Remove stop words and internal codes such as
-copyor-1that appear when you duplicate products. - Keep handles stable. Changing a handle on a page that already ranks throws away link equity unless a redirect is in place.
When you edit a product or collection handle in the Search engine listing section, Shopify shows a Create a URL redirect checkbox. Leave it ticked so the old URL is redirected automatically.
3. Fix duplicate collection-product URLs
This is the most common Shopify-specific SEO issue. Many themes link to products from collection pages using a nested URL:
/collections/dining-tables/products/oak-dining-table-180cm
The same product also lives at /products/oak-dining-table-180cm. Shopify's developer documentation for the Liquid within filter states plainly that "a standard product page and a product page in the context of a collection have the same content on separate URLs", and advises considering the SEO effects before using it.
Themes from the Shopify Theme Store output a canonical tag on the nested URL pointing to the plain /products/ URL, so Google usually consolidates the two. The problem is that your internal links still point to the non-canonical version, which sends mixed signals and wastes crawl activity on large catalogues.
How to fix it
- Check a product link on a collection page. If the URL contains
/collections/.../products/, your theme uses the nested pattern. - Go to Online Store > Themes, click the ... menu on your theme and choose Edit code.
- Search the snippets folder (often a file named something like
card-product.liquidorproduct-card.liquid) forwithin: collection. - Change
{{ product.url | within: collection }}to{{ product.url }}. - Save, then view a collection page and confirm product links now go to
/products/....
Duplicate your theme first and edit the copy. File names vary by theme, and updates can overwrite the change, so re-check after updating.
Also watch for:
- Filtered and sorted collections. Shopify's default robots.txt already disallows
/collections/*+*and/collections/*sort_by*, so these are kept out of the crawl. - Paginated collections (
?page=2). These are fine to leave indexable; just make sure the canonical on page 2 does not point to page 1 if page 2 lists different products. - Vendor and type pages (
/collections/vendors?q=...) are thin and auto-generated, so avoid linking to them prominently.
Google treats canonicals as a hint, not a directive; see canonical tags explained.
4. Check your structured data
Most modern Shopify themes output product structured data using the Liquid structured_data filter. According to Shopify's developer docs, it outputs a schema.org Product for products without variants, a ProductGroup for products with variants, and an Article for blog posts.
Things to check:
- Price, availability and currency appear correctly (for example GBP for a UK store or USD for a US one).
- Reviews. Review apps often inject their own
AggregateRating. If the theme also outputs product markup, you can end up with two separateProductobjects. Ideally there is one product entity with the rating attached. - Organisation and breadcrumbs. Not every theme adds these. A
BreadcrumbListhelps Google understand collection hierarchy. - Duplicates from apps. SEO apps that add JSON-LD on top of the theme's markup are a common cause of conflicting data. Pick one source.
Run a product URL through our Schema Markup Validator to find the JSON-LD blocks on the page, spot invalid JSON and see missing required properties. Then confirm rich result eligibility with Google's Rich Results Test.
5. Improve speed: apps first, then theme
Shopify hosts every store on its own infrastructure and CDN, so server response is rarely the bottleneck. Slow Shopify stores are almost always slow because of what has been added to the theme.
Shopify's own web performance reports show real-user data. You will see a summary on Online Store > Themes, and the full reports under Analytics > Reports (search for "contentful", "next" or "cumulative" to find the LCP, INP and CLS reports). The data covers the last 30 days at the 75th percentile and can lag by up to 36 hours.
Shopify's thresholds match Google's Core Web Vitals:
| Metric | Good | Poor |
|---|---|---|
| LCP | 2,500 ms or less | Over 4,000 ms |
| INP | 200 ms or less | Over 500 ms |
| CLS | 0.1 or less | 0.25 or more |
What Shopify recommends, in priority order:
- Review installed apps and remove any that do not earn their keep. Shopify warns that uninstalling an app does not automatically remove its code from your theme, so check
theme.liquidand your snippets for leftovers. - Audit your tag manager and remove unused tags. If INP is poor, excess JavaScript from apps, the theme or tags is the usual cause.
- Use an up-to-date theme such as a Horizon or Online Store 2.0 theme, and compare performance with animations and page transitions on and off.
- Limit sections on templates, especially the home page.
- Size images to their display size and turn on pagination for large collections.
Test a product page in PageSpeed Insights before and after each removal.
6. Add descriptive image alt text
Product images drive Google Images traffic and help screen reader users. To add alt text to a product image, go to Products, open the product, click the image, choose Edit alt text, enter a description and click Save alt text. For collection and blog featured images, click Update under the image, then Edit image.
Describe what the image shows, including the variant: "Oak dining table, 180cm, shown with six grey upholstered chairs" is far more useful than "table" or a string of keywords.
7. Edit robots.txt only if you have a real reason
Shopify's default robots.txt blocks admin, cart, checkout, account and order pages, plus filtered and sorted collection URLs. For most stores, that is all you need.
If you do need a change, you edit the robots.txt.liquid template:
- Go to Online Store > Themes, click ... on your theme and choose Edit code.
- Click Add a new template and choose robots.
- Click Create template, add your Liquid changes and save.
A minimal example that keeps Shopify's defaults and adds one extra rule:
{% for group in robots.default_groups %}
{{- group.user_agent }}
{%- for rule in group.rules -%}
{{ rule }}
{%- endfor -%}
{%- if group.user_agent.value == '*' -%}
{{ 'Disallow: /collections/*?filter*' }}
{%- endif -%}
{%- if group.sitemap != blank -%}
{{ group.sitemap }}
{%- endif -%}
{% endfor %}
Shopify is clear about the risks: this is an unsupported customisation, Shopify Support cannot help with it, and mistakes can lose you all your search traffic. Never replace the template with hard-coded plain-text rules, because they will not update when Shopify improves its defaults. Uploading a theme through the admin does not carry the template across.
8. Confirm your sitemap and submit it
Shopify generates sitemap.xml automatically at the root of your domain. It links to separate sitemaps for products (including their main image), collections, pages and blog posts, and updates as you add content. On the Basic plan or higher, each international domain gets its own sitemap, and languages you sell in are added automatically.
Two things stop it working:
- Private mode (a password-protected store) blocks crawlers from the sitemap.
- Secondary domains should redirect to your primary domain unless you use them for international targeting.
Use the Sitemap Checker to confirm the sitemap is found, count its URLs and test a sample for errors.
9. Set up redirects properly
Shopify's redirect manager lives at Content > Menus > View URL Redirects (older help pages and screenshots may still show it under Navigation). Click Create URL redirect, enter the old path in Redirect from, the new destination in Redirect to, and save. You can also bulk import a CSV from the URL redirects screen.
Key limits from Shopify's help centre:
- Standard stores can hold up to 100,000 redirects; Plus stores up to 20 million.
- Redirects only fire when the old URL returns a 404. If the old product still exists, even as an active listing, the redirect does nothing. Set it to Draft or delete it.
- You cannot redirect fixed paths such as
/products,/collectionsor/collections/all, or paths starting with/cart,/orders,/appsand a few others.
When you discontinue a product, redirect it to the closest alternative or its parent collection, not the home page. Afterwards, run the old URL through our Redirect Checker to confirm a single 301 hop and no chains.
10. Verify the store in Google Search Console
Shopify's help centre recommends a URL-prefix property (including https://) verified with the HTML meta tag:
- In Search Console, add the property and choose the HTML tag method.
- In Shopify, go to Online Store > Themes > ... > Edit code and open
theme.liquid. - Paste the tag directly below the opening
<head>tag and save. - Click Verify (wait 15 minutes and retry if it fails).
- Go to Indexing > Sitemaps, enter
sitemap.xmland submit.
A Domain property verified by DNS also works if you manage DNS yourself, and covers every subdomain and protocol. Once data flows in, check the Pages report under Indexing for duplicate and "crawled, not indexed" product URLs.
11. Avoid thin and duplicate content
- Manufacturer descriptions copied by other retailers give Google no reason to rank you. Rewrite your best sellers first.
- Variants as separate products with identical copy should usually be one product with variants.
- Empty or one-product collections need content or should stay out of navigation.
12. Re-check after every theme change or app install
Theme updates, new apps and redesigns are when Shopify SEO most often breaks. Run a free website audit after each change. Our audit checks titles, meta descriptions, canonical tags, image alt text, robots.txt, the sitemap, structured data and lab performance in one scan. Run a free website audit on your store's home page and a sample product.
Frequently asked questions
Can I remove /products/ and /collections/ from Shopify URLs?
No. Shopify's URL structure is fixed, so only the handle after those prefixes can be changed. The prefixes do not harm rankings, so focus on short, descriptive handles instead.
Does Shopify add canonical tags automatically?
Yes. Themes from the Shopify Theme Store output canonical tags, and nested collection-product URLs canonicalise to the plain /products/ URL. You should still update collection templates to link directly to /products/ so your internal links match your canonicals.
Why is my Shopify redirect not working?
The most common reason is that the old URL still loads a live page. Shopify redirects only work from URLs that return a 404, so set the old product to Draft or delete it, then test again in a private window.
Do I need an SEO app for Shopify?
Not necessarily. Titles, descriptions, alt text, redirects and sitemaps are all built in. Apps can help with bulk editing or structured data, but check they do not duplicate markup your theme already outputs.
Should I edit robots.txt.liquid on Shopify?
Only if you have a specific crawl problem that the defaults do not cover. Shopify treats it as an unsupported customisation, and a mistake can block your whole store from search engines.
Related reading
- Squarespace SEO Guide: Settings, Redirects and Speed: A practical Squarespace SEO guide: title formats, page SEO fields, URL slugs and URL mappings, image alt text, speed limits, structured data and Search Console.
- Wix SEO Guide: What You Can and Cannot Control: A practical Wix SEO guide: the SEO panel and settings, structured data, robots.txt and meta tags, the URL Redirect Manager, speed and Search Console set-up.
- SaaS SEO Checklist: 12 Fixes for Software Company Websites: A practical SaaS SEO checklist: docs on subdomains, JavaScript rendering, pricing and comparison pages, SoftwareApplication schema and a changelog that ranks.
Sources
- Shopify Help Center: Editing robots.txt.liquid
- Shopify Help Center: Finding and submitting your sitemap
- Shopify Help Center: URL redirects
- Shopify Help Center: Adding keywords and alt text
- Shopify Help Center: Web performance dashboard
- Shopify Help Center: Improving your online store performance
- Shopify Liquid reference: within filter
- Shopify Liquid reference: structured_data filter
More guides for your industry
Free checklist (PDF)
Free health & supplement brands website checklist
30 practical checks for health & supplement brands: website speed and mobile, Google Business Profile and reviews, email security, booking and enquiry handling, and AI search visibility. Each one says why it matters, and many link to a free tool that checks it.
Written by the MakeItFlow team
We build the website audit these guides are based on. Every fact is checked against the primary sources listed above and this guide was last reviewed on 25 October 2026 . How we research and check
Check your own site in 30 seconds
Run a free audit covering speed, SEO, DNS, email authentication and security headers — and get a prioritised fix list.