# Shopify SEO: A Technical and Content Checklist for Your Store

Author: Fatih Emin Çakıroğlu (https://fatihemincakiroglu.com)
Source: https://fatihemincakiroglu.com/en/blog/shopify-seo
Published: 2026-10-20
Updated: 2026-10-20

Shopify handles the SEO basics out of the box: an automatic sitemap and title and meta description fields everywhere. But some platform rules are fixed, and a setup that ignores them leaves problems that are hard to undo later.

This post covers what is specific to Shopify: the URL structure you cannot change, product URLs opened from inside collections, the robots.txt.liquid file, app bloat and the content fields. If you are still choosing a platform, start with the [ecommerce platform SEO comparison](https://fatihemincakiroglu.com/en/blog/e-ticaret-altyapisi-seo-karsilastirma).

> Short answer: Shopify SEO means accepting the platform's fixed URL structure and building order inside it. A theme that links collection products to the canonical /products/ URL, controlled crawl rules via robots.txt.liquid when needed, removing unnecessary apps, and original product and collection copy are the four jobs that make the most difference.

## How does Shopify's URL structure affect SEO?

Shopify's URL prefixes are fixed: products live under /products/, collections under /collections/, static pages under /pages/ and blog posts under /blogs/<blog-name>/. You cannot remove or translate these prefixes; you can only edit the last part, the handle.

- store.com
  - /collections/
    - /collections/womens-jackets
    - /collections/womens-jackets/products/waterproof-jacket (in-collection variant)
  - /products/
    - /products/waterproof-jacket (canonical URL)
  - /pages/
    - /pages/returns
  - /blogs/
    - /blogs/guides/how-to-choose-a-jacket

This is not a disadvantage. What matters is that handles are short, free of special characters and permanent. If you change a handle later, the old URL needs a redirect. According to Shopify's help docs, redirects only work on URLs that no longer show a page (return a 404); a [redirect generator](https://fatihemincakiroglu.com/en/tools/redirect-generator) saves time when preparing rules in bulk.

## In-collection product URLs and duplicate content

On Shopify the same product is reachable at /products/item and at /collections/collection/products/item. Most current themes point the canonical tag on these variants to the /products/ URL.

The problem is themes that link products from collection pages using the in-collection URL. A canonical is a hint; when the site's own internal links keep pointing elsewhere, Google receives mixed signals and crawling is wasted on extra URLs.

**Preferred setup**
- Collection pages link straight to the /products/ URL
- Canonical and internal links point to the same URL
- The sitemap lists canonical URLs only

**Setup I often see**
- Product links use /collections/.../products/
- Canonical says one thing, internal links another
- Several URLs of the same product get crawled

To check your theme, inspect the product card link on any collection page. If you see the in-collection URL, ask your theme developer to change the product card template to use the canonical URL. The general logic of canonicalization is covered in the [technical SEO guide](https://fatihemincakiroglu.com/en/guides/teknik-seo).

## When should you edit robots.txt.liquid?

Shopify generates a robots.txt that suits most stores. To add your own rules, you add a robots.txt.liquid template to the theme's Templates folder; Shopify's developer docs recommend writing rules with the provided Liquid objects (such as robots.default_groups) rather than plain text.

```
{% for group in robots.default_groups %}
  {{- group.user_agent }}
  {%- for rule in group.rules -%}
    {{ rule }}
  {%- endfor -%}
  {%- if group.user_agent.value == '*' -%}
    {{ 'Disallow: /*?q=*' }}
  {%- endif -%}
  {%- if group.sitemap != blank -%}
    {{ group.sitemap }}
  {%- endif -%}
{% endfor %}
```

The example keeps the default rules and adds one line blocking only URLs with a ?q= parameter for all bots. If you do not know why a default rule exists, leave it alone.

> **Compare before you publish** Shopify's docs recommend saving a copy of your current /robots.txt output and comparing it with what the template renders. One wrong Disallow line can take collection or product pages out of crawling.

## App bloat and speed: the most common Shopify issue

Shopify's infrastructure is fast; what slows stores down is usually apps added over time, oversized images and unnecessary theme code. Aim for the Core Web Vitals thresholds (LCP ≤ 2.5 s, INP ≤ 200 ms, CLS ≤ 0.1); details are in the [Core Web Vitals post](https://fatihemincakiroglu.com/en/blog/core-web-vitals-2025).

- **Unused apps**: Remove apps you tried and forgot. After uninstalling, check whether code is left behind in the theme.
- **Image size**: Do not upload the main image larger than needed, and do not lazy-load the above-the-fold image.
- **Third-party scripts**: Chat, review and pop-up scripts can hurt INP. Measure whether each one earns its place.
- **Heavy theme sections**: Homepage sliders and video backgrounds delay LCP.

Keep an app only if it does measurable work for sales or operations.

## Content fields for products, collections and blogs

According to Shopify's help docs, the page title field accepts up to 70 characters, but around 60 is recommended to avoid truncation; about 160 characters is recommended for the meta description. The H1 is generated from the product or page Title field.

| Field | Where? | What to write |
| --- | --- | --- |
| Title (H1) | Product/collection Title field | The product name shoppers search for, brand and a distinguishing feature |
| Page title and meta description | Search engine listing section | Short copy that gives a reason to click without repeating the title |
| URL handle | Search engine listing section | Short, no special characters, permanent |
| Image alt text | Image edit screen | A sentence describing what the image shows |
| Collection description | Collection edit screen | Buying criteria, links to subcategories, a short FAQ |

The most common content mistake is copying manufacturer descriptions; I cover how to write original copy in [how to write product descriptions and category copy](https://fatihemincakiroglu.com/en/blog/e-ticaret-urun-aciklamasi). Check whether your theme outputs product structured data; if not, the [schema generator](https://fatihemincakiroglu.com/en/tools/schema-generator) is a starting point.

## Shopify SEO checklist

Use this list for a new store or an audit:

- [ ] One primary domain; other domains redirect to it.
- [ ] The store is not password protected; sitemap.xml is submitted to Search Console.
- [ ] Product links on collection pages use the /products/ URL.
- [ ] Redirects exist for products and collections whose handle changed.
- [ ] If robots.txt.liquid exists, its output was compared with the default file.
- [ ] Unused apps removed, Core Web Vitals report checked.
- [ ] Main collections have original descriptions; products have original copy and alt text.

Platform-independent topics such as category architecture, filters and product structured data are covered in the [ecommerce SEO guide](https://fatihemincakiroglu.com/en/guides/e-ticaret-seo) and the [structured data guide](https://fatihemincakiroglu.com/en/guides/schema-yapisal-veri). If you want to work through this list for your store together, see [ecommerce SEO consulting](https://fatihemincakiroglu.com/en/industries/ecommerce-seo-consulting) or [book an intro call](https://fatihemincakiroglu.com/en/book-a-call).

## Frequently Asked Questions

### Can I remove the /products/ and /collections/ prefixes on Shopify?

No, the platform fixes these prefixes and they cannot be changed safely with a theme or app. Focus on keeping handles short and meaningful.

### Is Shopify's automatic sitemap enough?

For most stores, yes. According to Shopify's docs, the sitemap includes products, collections, pages and blog posts and updates as you add content. Submit it to Search Console.

### Do I need to add hreflang manually on a multilingual Shopify store?

For stores using international domains and language settings, Shopify adds language versions to the sitemap itself. Still, check in the source code that the hreflang tags show the right language-region pairs. For the setup logic, see [hreflang and international SEO](https://fatihemincakiroglu.com/en/blog/hreflang-uluslararasi-seo).

### Should I delete out-of-stock product pages?

If the product is coming back, keep the page live and show stock status clearly. If it is gone for good, set it to draft and redirect the old URL to the closest alternative product or collection. On Shopify, a redirect only kicks in once the old URL returns a 404.

### Is the Shopify blog worth using for SEO?

Yes, for topics that help sell products. Make sure a blog post does not target the same query as a product page.

### Do I need a Shopify SEO app?

No. The basic fields already exist on the platform. Consider an app if it speeds up a specific job such as bulk meta editing or image compression, and factor in each app's speed cost.

---
Please attribute as: "Fatih Emin Çakıroğlu (fatihemincakiroglu.com)". Original: https://fatihemincakiroglu.com/en/blog/shopify-seo
