Shopify SEO: settings, apps and ranking mistakes

Which SEO decisions Shopify makes for you, which ones are yours, and the handful of mistakes that really cost rankings. With checklist and fixes.

ecomando editorial10 min read
Contents
  1. What Shopify decides and what you decide
  2. The URL structure
  3. Search engine listing: title and description
  4. robots.txt.liquid
  5. Redirects
  6. Collections are your most important content
  7. Theme, speed and apps
  8. Structured data
  9. Blog and content
  10. The mistakes that show up most often
  11. The Shopify SEO checklist to work through

Shopify takes a lot of technical SEO decisions off your hands, and gives you no choice at all on others. If you do not know which is which, you spend weeks fighting platform defaults and miss the three or four things that actually cost you rankings. This guide walks through what Shopify fixes, what you control, and the mistakes that show up in almost every store.

What Shopify decides and what you decide

AreaFixed by ShopifyUnder your control
URL paths/products/, /collections/, /pages/, /blogs/The handle at the end of the URL
CanonicalsSet automatically, including for variants and collection pathsEditable in the theme, rarely a good idea
SitemapGenerated automatically at /sitemap.xmlIndirectly, through the visibility of content
robots.txtDefault rules are providedExtendable through robots.txt.liquid
Title and descriptionFilled from theme templatesPer page, in the search engine listing fields
Load timePlatform and hostingTheme, images, apps, third-party scripts
Redirects–Your own redirect manager in the admin
Structured dataDepends on the themeTheme code, apps

Memorise the first row. Rebuilding product URLs into /category/product is not a project you can finish on Shopify. Use the structure that is there.

The URL structure

Every object in Shopify has a fixed path and a handle you choose:

  • Product: /products/trailhead-32l-hiking-backpack
  • Collection: /collections/hiking-backpacks
  • Page: /pages/shipping-and-delivery
  • Blog post: /blogs/guides/how-to-pack-a-backpack

Rules for handles: short, readable, main term included, no SKUs, no years, no filler words. And once set, leave them alone. Every handle change creates a new URL and needs a redirect.

Product URLs inside collections

Shopify can also serve a product under a collection path, for example /collections/hiking-backpacks/products/trailhead-32l-hiking-backpack. These links appear when a theme or an app generates them. Shopify sets a canonical to the main version under /products/, so indexing is not the problem.

Keep it clean anyway. Internal links should point straight at the main version. Otherwise you spread click paths and signals across two addresses and make your own Search Console analysis harder than it needs to be. Check which variant your collection product tiles link to.

Variant URLs

Variants hang off the product URL as a parameter: ?variant=123456789. Here too the canonical points at the clean product URL. The practical consequence is that individual colours or sizes cannot rank on their own.

If one variant has real search demand — a model in a special colour that people actually search for — the answer is not to make the variant indexable. The answer is a separate product. That is a merchandising decision, not a setting: a separate product means its own images, its own copy, its own inventory.

Filters and tags

Collection filters produce parameter URLs, tags produce paths below the collection. Both can generate a very large number of near-identical pages. Shopify's default robots.txt already blocks part of it. Open yourstore.com/robots.txt and read what is there before you add rules of your own.

The question to answer per filter combination: does anyone search for this? “Hiking backpacks 30 to 40 litres” can deserve its own indexable collection that you create deliberately and give real copy. “Hiking backpacks in red, size M, sorted by price” does not. The reasoning and a decision aid live in the article on duplicate content in ecommerce.

Search engine listing: title and description

Products, collections, pages and blog posts all have an editable search engine listing in the admin. That is where you set the page title, the meta description and the handle.

Four things worth knowing:

  • Leave it empty and the theme fills it from the product name and description. Rarely good, better than blank.
  • Check the title suffix. Many themes append the store name automatically. Count those characters, or your title gets truncated.
  • The description is not a ranking factor, it is a click factor. Write it for the click: benefit, differentiation, no keyword lists.
  • Do it in bulk. For large catalogs, work through CSV export and import, or through a tool that shows the fields in a list. Clicking through 800 products by hand is not a method.

If pages get impressions but hardly any clicks, the listing is the first place to look. The article on impressions without clicks shows how to read that pattern in Search Console.

robots.txt.liquid

Shopify lets you customise robots.txt through a theme template called robots.txt.liquid. It does not exist by default. You create it in the admin under Online Store, then Edit code, then Add a new template, choosing the robots type.

Shopify labels this an unsupported customisation: the help page on editing robots.txt states that Shopify Support cannot help with edits to robots.txt.liquid, that incorrect use of the feature can result in loss of all traffic, and that you should either have expertise in code edits and SEO or hire a Shopify Partner. Take that literally.

When it makes sense:

  • Blocking a large group of filter or sort URLs that eats crawl budget.
  • Excluding internal search result pages, if they are not blocked already.
  • Re-opening a default rule that is genuinely in your way.

When it does not: when you want a page out of the index. robots.txt is the wrong tool for that. A blocked page can still appear in results, Google just cannot see the content. Deindexing needs a noindex on the page, and the page has to stay crawlable so Google can read it.

Be careful with this file. Never change it on a Friday afternoon, work on a theme copy first if you can, and check afterwards with the robots.txt report and URL inspection in Search Console.

Redirects

Shopify has a dedicated redirect manager in the admin, under Content, then Menus, then URL redirects. You enter the old path and the target and Shopify handles the rest.

Four limits from Shopify's redirect documentation that are worth knowing before you plan a migration:

  1. Standard plans allow a maximum of 100,000 URL redirects, Plus allows up to 20,000,000. Plenty for any move.
  2. Fixed Shopify paths cannot be used as a source — /products, /collections and /collections/all are off limits, as are paths starting with /apps, /application, /cart, /carts, /orders, /services and /shop.
  3. URLs containing query strings might not work as expected.
  4. A redirect only fires on a URL that would otherwise return an error. If the old address still serves content, nothing happens.

When you need them:

  • A product or collection handle changed.
  • A product was discontinued and not replaced: redirect to the matching collection, not the homepage.
  • Two collections were merged.
  • You migrated from another platform: every old URL with traffic or links gets a target.

Three rules that save trouble later. First, pick a topically related target — redirects to the homepage are often treated like an error rather than a redirect. Second, no chains: if A points at B and B points at C, change A to C directly. Third, create the redirect before the old URL goes out of circulation, not after.

For a migration, keep a list: old URL, target, date, done. Then watch the not-found errors in Search Console. That is where the gaps you missed surface.

Collections are your most important content

In most Shopify stores, collection pages rank for the highest-volume terms, because people search for product groups, not for SKUs.

What a collection page needs:

  • An H1 with the term people actually search for, not your internal category name.
  • Copy that explains something: differences, selection criteria, use cases. Two short paragraphs above the grid and a longer section below it works better than a wall of text before the products.
  • Sensible sub-collections, linked from the copy and from navigation.
  • Stable sorting and pagination with real links.

A Shopify-specific warning: automated collections based on tags or conditions are convenient and produce dozens of thin pages fast. Only create collections you will actually give content to. If pages sit in Search Console as crawled but not indexed, thin collections are usually a large share of them — the article on crawled, currently not indexed sorts through the causes.

Theme, speed and apps

This is where the biggest technical lever in Shopify stores sits, and the most common cause of bad numbers.

Theme. Shopify's current default themes are lean. Old, heavily customised themes and themes packed with built-in features ship a lot of JavaScript that loads on every page. If you are hesitating about a theme change, a test on a copy will show you in an afternoon how much load time is sitting there.

Apps. Every app can inject scripts and stylesheets. The problem is rarely one app, it is the collection built up over years. And uninstalled apps frequently leave leftovers in the theme code.

A cleanup round you can run yourself:

  1. List every installed app with one sentence on what it does and who uses it.
  2. Uninstall everything without a clear answer.
  3. After uninstalling, check the theme code for orphaned script tags.
  4. Load a product page with your browser developer tools and look at which scripts come from third parties.
  5. Measure before and after with PageSpeed Insights, mobile each time.
  6. Repeat every six months.

Which numbers matter and in what order to fix them is covered in the article on Core Web Vitals for online stores — the documented thresholds are LCP at or below 2.5 seconds, INP at or below 200 milliseconds and CLS at or below 0.1. For images, Shopify behaves like any platform: it serves appropriately sized versions when the theme asks for them, but a 5 MB upload is still a 5 MB source file.

Structured data

Many current themes already output product markup with price, availability and reviews. Do not assume it is correct. Test a product page with Google's Rich Results Test and watch the structured data reports in Search Console.

Two failure modes are typical for Shopify. One: markup from the theme and markup from an app on the same page, so values are declared twice and contradict each other. Two: review stars in the markup that are not visible on the page, which violates the guidelines. Which fields are required and which are worth adding is covered in the article on product schema markup.

Blog and content

Shopify's blog lives at /blogs/<blog>/<post>. It is the only place in the system for content that is neither a product nor a collection, which means it is the only place to serve searches where people want to know something before they buy.

What to watch:

  • Every post links to the relevant collection, not to the homepage.
  • One blog is enough for most stores. Three blogs with four posts each achieve nothing.
  • No product announcements in article form that nobody searches for.

The mistakes that show up most often

  • Password protection still on. A store behind password protection does not get indexed. Sounds trivial, happens after relaunches regularly.
  • Rankings on the myshopify.com address. Confirm your own domain is the primary domain and everything else redirects to it.
  • A handle changed without a redirect. The fastest way to lose rankings you already had.
  • Products removed from all sales channels instead of being retired properly. The URL becomes an error page while links still point at it.
  • Manufacturer descriptions copied verbatim. With identical text you compete against every other retailer carrying the item. Your own copy is the only way out.
  • Collections without copy. A heading and a product grid is not enough for terms with competition.
  • Eight SEO apps in parallel. Leads to duplicate markup, contradictory canonicals and slow pages.
  • Multiple languages or markets without checks. If you use Shopify Markets, look in the page source and confirm the language annotations between versions are actually correct.
  • Feed and store out of sync. Prices or availability that differ between your pages and the Google & YouTube channel turn into disapprovals. The Merchant Center setup walkthrough covers how to keep the two aligned.

The Shopify SEO checklist to work through

  1. Own domain as primary domain, password protection off, store verified in Search Console.
  2. Open /robots.txt and /sitemap.xml and actually read them.
  3. Set the search engine listing by hand for your twenty most important pages, check the rest through export.
  4. Point internal product links at the main version under /products/.
  5. Review filter and tag URLs, create the collections you want deliberately, leave the rest out of the index.
  6. Write collection copy for your ten most important collections.
  7. Start a redirect list and enter every known old URL.
  8. Run an app inventory, remove theme leftovers, measure mobile before and after.
  9. Test structured data on one product page, remove duplicates.
  10. Go through the indexing report in Search Console and sort excluded URLs by cause.

If the data to judge any of this is missing, measurement comes first. Stores regularly find that their analytics and their admin disagree, which is a topic of its own: why Shopify revenue does not match GA4. In ecomando, Shopify orders and Search Console clicks sit on the same daily timeline, so you can see whether an SEO change moved revenue rather than only rankings. And for everything that is not Shopify-specific, the ecommerce SEO guide gives you the wider frame.

Frequently asked questions

Can you change the URL structure in Shopify?

The directories are fixed: products live under /products/, collections under /collections/, pages under /pages/ and blog posts under /blogs/. The only part you control is the last segment, the handle.

Is Shopify bad for SEO?

No. The fixed URL structure and a few technical quirks limit you, but the fundamentals work reliably: automatic canonicals, an automatic sitemap and fast default themes. Most ranking problems in Shopify stores come from thin content and too many apps, not from the platform.

How do I avoid duplicate product URLs inside collections?

Shopify sets a canonical from the collection-scoped product URL to the main version under /products/. What matters is that your internal links and navigation point at the main version too, so you do not send contradictory signals.

Should I install an SEO app for Shopify?

Only if it solves a problem you can name. Many SEO apps duplicate what Shopify or your theme already does and add JavaScript to every page. Two apps you actually use beat eight that are merely installed.

How do I set up a redirect after changing a URL?

Shopify has its own redirect manager under Content, then Menus, then URL redirects. Enter the old path and the new target there before you take the old URL out of circulation.

Keep reading