Skip to content

Ecommerce SEO

The Shopify SEO checklist we run on every new store

What Shopify handles for SEO on its own, and the duplicate URLs, filter parameters, theme output and content gaps this checklist closes on every new store.

By CartKernel · Published

Shopify gets more of the technical foundation right than any platform we work on, which is exactly why the remaining gaps go unnoticed. A new store launches with a sitemap, a sensible robots.txt, HTTPS and a canonical tag in the theme, and the owner reasonably assumes SEO is handled. The platform handles the plumbing. The store still has to decide which URLs should exist, what the theme prints, and what each collection says. This is the list we work through on every Shopify store before any content or link work begins.

What Shopify already takes care of

Four things are done for you and only need confirming.

  • The sitemap. Shopify generates /sitemap.xml with child sitemaps for products, collections, pages and blog posts, and updates them as the catalogue changes. Products that are not published to the Online Store channel are left out, which is usually what you want. Submit the index file in Search Console and move on.
  • robots.txt. The default file disallows checkout, cart, account, search, the sort_by parameter, multi-tag collection URLs joined with +, and the policies directory. It is editable through the robots.txt.liquid template if you need to add or remove rules, and a store rarely needs to touch it.
  • HTTPS and hostnames. Shopify serves the store over HTTPS and redirects the secondary domains you connect to the primary one.
  • Redirects. URL redirects live under Online Store, Navigation, and accept a CSV import. When you change a product or collection handle, the admin offers to create the redirect for you. Tick the box every time.

Product URLs exist in two forms and the theme decides which counts

A product that lives at /products/trail-jacket is also reachable at /collections/jackets/products/trail-jacket for every collection it belongs to. Shopify’s canonical_url object resolves that to the plain product URL, and every maintained theme prints it in the head. The canonical tag entry covers what the tag does; two checks matter here.

  1. Open a product from a collection grid, view the source, and confirm the canonical points at /products/<handle> with no collection prefix and no ?variant= parameter.
  2. Look at the product cards in the theme. If they build links with the within filter, the grid links to the nested URL, and Google spends its crawl on duplicates before it consolidates them. Linking to product.url directly avoids the detour.

Variants that differ only by size or colour should stay on the one product URL. Variants that shoppers search for by name deserve their own product. The reasoning is covered in our answer on variant URLs, and the fix for a store that already has thousands of nested URLs indexed is in Shopify duplicate product URLs.

The collection URLs Shopify creates without asking

Every store has /collections/all, /collections/vendors?q=<brand> and /collections/types?q=<type>. The last two are generated from the vendor and product-type fields, contain nothing beyond a grid, and are linked from some themes’ navigation. Decide what to do with them on day one: either give a vendor its own curated collection with a real description, or add a noindex robots meta tag through the theme when the collection handle matches vendors or types.

Tag filtering adds another layer. A tag applied to products creates /collections/<handle>/<tag> for each tag, and those URLs are crawlable. A handful of tag pages can be worth indexing, for example a “waterproof” tag inside a jackets collection, when the tag matches a query people type. The rest should not be linked as crawlable navigation. Storefront filters from the Search and Discovery app use filter.v. query parameters instead, and the canonical on those pages resolves to the unfiltered collection, which keeps them out of the index while leaving the shopper experience intact. The full decision method for filters is in faceted navigation SEO.

Paginated collection pages carry ?page=2 and a canonical that points at themselves. That is correct behaviour and should not be changed.

Collection pages need a place for content, and many themes hide it

Shopify has one description field per collection. Some themes print it above the grid in full, some truncate it behind a “read more”, and some do not render it at all on certain templates. Check the live page, not the admin. Where the theme does not give you a section below the grid, add one: a custom section that reads a rich-text metafield, or a JSON template with a text block, both of which a developer can build in a day. Sub-collections do not exist as a native hierarchy either. Menus define the hierarchy, so the breadcrumb and the links between a parent collection and its children come from a navigation menu you maintain by hand. If a collection ranks nowhere despite good products, the causes and fixes are in Shopify collection pages not ranking.

What to inspect in the theme on product pages

  • Title tag and meta description. Each product has a search engine listing preview in the admin. Left blank, the title tag becomes the product name plus the store name, which is fine for a store named after its brand and weak for one whose name carries no category meaning.
  • One H1. Some themes wrap the logo in an H1 on every template. The product title should be the only H1 on the product page.
  • Product structured data. Most current themes print a Product JSON-LD block. Verify that the offer price follows the selected variant, that availability reflects inventory, that sku and gtin come from the SKU and barcode fields, and that no app is printing a second Product block on the same page. Two conflicting blocks are worse than none.
  • Image alt text. Alt text is set per image in the product media panel and printed by the theme. Empty alts on a thousand products is a common finding.
  • Descriptions. Supplier text pasted into the description appears on every store that stocks the product. Rewrite the top sellers first and move specifications into metafields so they render as a table.

Apps are the main reason Shopify stores get slow

Shopify’s hosting is fast; the scripts stores install on top of it are not. Each app that touches the storefront can add JavaScript to every page, and uninstalling an app does not always remove the code it placed in the theme. Audit the theme for leftover snippets after every uninstall, prefer apps built on theme app extensions, and keep an eye on the Online Store speed report after each addition. When mobile scores drop, Shopify store slow on mobile walks through the diagnosis, and the Core Web Vitals checker gives you a page-level read.

Markets and languages

Stores selling in both English and French, or in Canada and the United States, usually run Shopify Markets with subfolders such as /fr-ca and /en-us. Shopify adds hreflang between the market URLs it manages. What it cannot do is write the content: a market that is machine-translated and never reviewed produces thin duplicates, and a market with a different currency and no localised shipping information produces a page that ranks but does not convert. Treat each market as a site of its own with a review pass. The mechanics are explained in the hreflang glossary entry.

Blog, pages and the search template

The blog earns question queries, not category queries. Use it for questions shoppers ask before choosing, and link each post to the collection it supports. Whether you need one at all depends on the category, which does an online store need a blog covers. The /search template is blocked by robots.txt by default, and the policies pages are too. Leave both alone.

Deleted products are the silent 404 source

Shopify offers a redirect when you rename a handle but not when you delete a product. Deleting a discontinued item removes a URL that may hold links and rankings. Before deleting, export the product URLs and create redirects to the closest collection or replacement product. For items coming back into stock, keep the page live and mark it unavailable rather than deleting it.

The order we work in

  1. Search Console: verify the property, submit the sitemap, read the page indexing report for the URL patterns above.
  2. Canonicals and internal links on product cards.
  3. Vendor, type and tag URLs: index, noindex or unlink.
  4. Collection content sections and the navigation hierarchy.
  5. Product template: H1, structured data, alt text, descriptions on the top sellers.
  6. App and script audit, then a speed read on mobile.
  7. Markets and translations.
  8. Redirect coverage for deleted and renamed products.

The whole pass takes a few days on a typical store. It removes the technical reasons a Shopify store underperforms and leaves the real work, which is building collection pages worth ranking and earning the links to them. If you would like us to run it, the free Growth Analysis starts with exactly this audit. For a wider view of the platform’s strengths, see is Shopify good for SEO, the ecommerce SEO service and Shopify development.


Sources

Find the leak.

A free Growth Analysis ranks what your store should fix first, by revenue at stake.