SEO dla Shopify — kompletny przewodnik 2026
Shopify ma solidne SEO fundamenty out-of-the-box, ale wymaga tunningu na poziomie zaawansowanym. URL structure wymuszona, ograniczona kontrola robots.txt, duplicate content z parametrów. Z drugiej strony: szybki hosting, automatyczne schema.org, mobile-first. Ten przewodnik pokazuje, jak wycisnąć maksimum SEO z Shopify w 2026.
TL;DR — SEO dla Shopify
| Element | Status w Shopify |
|---|---|
| Sitemap.xml | Auto-generated ✅ |
| Schema Product | Auto ✅ |
| Mobile-friendly | Default ✅ |
| Speed (CWV) | Solid (zależy od theme) |
| URL control | Limited (prefix /products/, /collections/) |
| Robots.txt | Robots.txt.liquid edit (theme) |
| Blogging | Basic blog (limited features) |
| Custom redirects | Admin → Online Store → Navigation → URL Redirects |
Shopify SEO — co masz za darmo
1. Sitemap.xml
Shopify automatycznie generuje:
/sitemap.xml(główny)/sitemap_products_1.xml/sitemap_collections_1.xml/sitemap_pages_1.xml/sitemap_blogs_1.xml
Submit w GSC (Property → Sitemaps → submit https://yourstore.myshopify.com/sitemap.xml).
2. Schema Product
Shopify automatycznie generuje schema.org Product dla każdej produktu:
name,description,imageoffersz ceną, walutą, availabilitybrand,sku
Sprawdź w Rich Results Test na URL produktu.
3. Schema Organization
Generated dla home page. Edytuj w theme theme.liquid:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Organization",
"name": "{{ shop.name }}",
"url": "{{ shop.url }}",
"logo": "{{ 'logo.png' | asset_url }}",
"sameAs": [
"https://facebook.com/yourshop",
"https://instagram.com/yourshop"
]
}
</script>
4. Mobile-friendly default
Shopify themes są mobile-first od 2020. Większość themes spełnia Core Web Vitals (przy nie-overcustomized state).
Shopify SEO — co wymaga pracy
1. URL structure
Shopify wymusza prefiksy:
/products/[handle]— produkty/collections/[handle]— kolekcje/blogs/[blog]/[post]— blog posty/pages/[handle]— pages
Nie możesz mieć clean URLs typu /sneakers-nike-air-max — musisz mieć /products/sneakers-nike-air-max.
Mitigation: SEO-friendly handles. Auto-generated handle bywa ze spacjami → my-product-name. Custom handle przez admin.
2. Duplicate content
Shopify generuje wiele URL-i dla tego samego produktu:
/products/x(canonical)/products/x?variant=12345(variant)/products/x?ref=...(referrer)/collections/category/products/x(kolekcja + produkt)
Fix: Shopify ma auto-canonical na primary URL. Sprawdź w view-source: że canonical wskazuje na /products/x (bez parametrów).
3. Robots.txt
Domyślny Shopify robots.txt jest ok, ale ogranicza:
Disallow: /searchDisallow: /cartDisallow: /checkoutDisallow: /account
Custom robots: edycja robots.txt.liquid w theme:
{% for group in robots.default_groups %}
{{- group.user_agent }}
{%- for rule in group.rules -%}
{{ rule }}
{%- endfor -%}
{%- if group.user_agent.value == '*' -%}
{{ 'Disallow: /search/' | strip }}
{%- endif -%}
{%- if group.sitemap != blank -%}
{{ group.sitemap }}
{%- endif -%}
{% endfor %}
4. Blog limitations
Shopify Basic blog ma ograniczenia:
- Tylko 1 author per post (nie multi-author)
- Limited tags structure
- No category hierarchy
- No native FAQ schema
Workaround: custom HTML w blog post body. Albo migrate blog na zewnętrzny WordPress / Webflow z tej samej domeny.
5. Page speed
Shopify CDN jest szybki, ale apps mogą zabić speed:
- Każda app dodaje JS bloating
- Reviews apps często ładują 500KB+ JS
- Loyalty apps, popups, chat — wszystko spowalnia
Audyt: PageSpeed Insights → mobile. Jeśli LCP > 2.5s, usuń niektóre apps.
Optymalizacja produktów
Title tag
Format: [Product Name] - [Brand] | [Category/Use]
<title>{{ product.title }} - {{ shop.name }} | {{ collection.title }}</title>
Max 60 znaków. Unikaj duplikacji między produktami.
Meta description
<meta name="description" content="{{ product.description | strip_html | truncate: 160 }}" />
Lepiej: custom meta description per produkt (admin → SEO section).
H1
H1 = product name (jeden per page). Sprawdź theme — niektóre używają H2/H3 zamiast H1.
Alt text
{% for image in product.images %}
<img src="{{ image | img_url: '800x' }}" alt="{{ image.alt | default: product.title }}" />
{% endfor %}
Zaleca się custom alt dla każdego obrazu (admin) zamiast fallback do product.title.
Description
- 200-500 słów
- Keyword w pierwszym 100 słów
- Bullet points dla features
- USPs (czemu klient ma kupić)
- Schema-friendly: krótkie zdania, FAQ na dole
Schema enhancements
Standardowy Product schema wystarcza, ale dodaj:
{% if product.metafields.reviews.average_rating %}
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "{{ product.metafields.reviews.average_rating }}",
"reviewCount": "{{ product.metafields.reviews.review_count }}"
}
{% endif %}
Plus FAQ schema dla często zadawanych pytań o produkt.
Optymalizacja kolekcji
URL handle
Krótkie, descriptive: /collections/sneakers-nike zamiast /collections/buty-sportowe-marka-nike-2026.
Description content
Każda kolekcja powinna mieć 200-500 słów opisu (nie pusty placeholder). To buduje topical authority i daje keywords ranking.
<div class="collection-description">
{{ collection.description }}
</div>
Filters i fragmenty
Shopify dodaje filter parameters (?filter.v.price.gte=100). Te URL-e:
- Mają canonical do collection (bez parametrów)
- Są noindex domyślnie
Sprawdź to nie jest broken.
Pagination
/collections/x?page=2, ?page=3 — domyślnie indexable. Decyzja:
- Indexable — każda strona paginacji rankuje, więcej widoczności (recommended dla long collections)
- Noindex — tylko strona 1, mniej duplicates ryzyka
W theme.liquid:
{% if paginate.current_page > 1 %}
<meta name="robots" content="noindex, follow" />
{% endif %}
Optymalizacja blog
Post title format
[Topic] | [Year] | [Brand Blog] lub [Topic] - [Brand]
Max 60 znaków.
Content depth
Shopify blog często serwuje thin content (200 słów). To anti-pattern. Cel: 1500+ słów per post, structured z H2/H3.
Related products w blog
{% for product in collections.featured.products limit: 3 %}
<div class="related-product">
<a href="{{ product.url }}">{{ product.title }}</a>
</div>
{% endfor %}
Internal linking blog → product = transfer autorytetu na product pages.
FAQ schema na blog post
Wymaga custom Liquid:
{% if blog.metafields.seo.faq %}
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [...]
}
</script>
{% endif %}
Najczęstsze SEO błędy w Shopify
- Brak custom title/description — wszystko default
- Pusty description w kolekcjach — straty topical authority
- Default alt text — wszystkie obrazy z generic alt
- Apps spowalniające stronę — 5+ apps, LCP > 4s
- Brak custom canonical przy parametrach — duplicate content
- Non-edited robots.txt — blokowanie czegoś, czego nie chciałeś
- Krótki content na produkcie — 50 słów = thin content
- Brak schema FAQ — utrata AI Overviews chance
Tools dla Shopify SEO
- Plug in SEO — audyt strony, alerts
- SEO Manager — bulk edit meta tagów
- Smart SEO — schema enhancements + automation
- Yoast SEO for Shopify (jeśli istnieje plugin) — od Yoast
- Outranking / Surfer SEO — content optimization
- Ahrefs / Semrush — keyword research, monitoring
Tracking i monitoring
- GSC — submit sitemap, monitor performance
- GA4 — events „add to cart", „purchase"
- Shopify Analytics — natywne, ale ograniczone
- Server-side tracking (recommended dla GA4 z attribution)
Podsumowanie
Shopify SEO 2026:
- Custom title/description per page (nie default)
- Robots.txt edit w theme
- Schema Product + FAQ wszędzie
- Page speed audit — usuń niepotrzebne apps
- Content depth w produktach i kolekcjach
- URL handles krótkie i descriptive
- Internal linking blog → product
Shopify nie jest „najlepszym SEO platform", ale dobrze zoptymalizowany Shopify może wygrać z gorzej zoptymalizowanym WooCommerce. Klucz: szczegóły.
Zamów audyt SEO sklepu Shopify — sprawdzimy obecny stan i wskażemy quick wins + długoterminowy plan.