Shopware 6 i SEO: techniczne pułapki najpopularniejszej platformy e-commerce w Niemczech

optymalizacja Shopware 6 pod kątem SEO

Optymalizacja Shopware pod kątem SEO - Spis treści

Czego dowiesz się z tego artykułu?

  • Dlaczego Shopware 6 dominuje w niemieckim e-commerce i co to oznacza dla Twojej konkurencji w Google.de
  • Które domyślne ustawienia Shopware 6 aktywnie szkodzą SEO zaraz po instalacji – i jak je zmienić
  • Jak Shopware generuje duplikaty URL z pięciu niezależnych źródeł – i jak każde z nich wyeliminować
  • Jak w Shopware poprawnie skonfigurować nawigację fasetową i crawl budget 
  • Jak poprawnie wdrożyć hreflang między wersjami DE i PL przez Sales Channels
  • Dlaczego Shopware headless i PWA są niewidoczne dla GPTBot i ClaudeBot – Rendering-Test krok po kroku
  • Które wtyczki SEO dla Shopware 6 naprawdę rozwiązują problemy
  • Jak przeprowadzić migrację z Shopware 5 do wersji 6 bez utraty pozycji

Dlaczego Shopware 6 dominuje w niemieckim e-commerce i dlaczego to ważne dla SEO

Shopware 6 obsługuje ponad 100 000 sklepów internetowych w krajach DACH i jest platformą e-commerce numer jeden w Niemczech pod względem liczby wdrożeń w segmencie mid-market i enterprise – co bezpośrednio oznacza, że Twoja konkurencja na Google.de najprawdopodobniej działa właśnie na tej platformie (Shopware AG, dane rynkowe 2024).

To nie jest artykuł dla tych, którzy dopiero wybierają platformę. To artykuł dla tych, którzy już mają Shopware 6 – albo planują na niego postawić sklep na rynek DE – i chcą wiedzieć, gdzie platforma im pomoże, a gdzie aktywnie zaszkodzi widoczności organicznej.

Shopware 6 na tle innych platform e-commerce w DE

Rynek e-commerce w Niemczech jest wyjątkowo silnie zdominowany przez platformy open source i on-premise – inaczej niż w Polsce, gdzie WooCommerce i platformy SaaS mają większe udziały. Shopware 6 wyrósł na tym rynku jako odpowiedź na potrzeby średnich i dużych sklepów, które potrzebują elastyczności niedostępnej w rozwiązaniach chmurowych.

PlatformaUdział w rynku DE (mid-market i enterprise)Główny segmentŹródło
Shopware 6~28%Mid-market, enterpriseBuiltWith DE 2024
Magento / Adobe Commerce~19%EnterpriseBuiltWith DE 2024
WooCommerce~17%SMB, mid-marketBuiltWith DE 2024
OXID eSales~9%Mid-market DEBuiltWith DE 2024
Shopify~8%SMBBuiltWith DE 2024
Pozostałe~19%MixBuiltWith DE 2024

Dla polskiego sklepu wchodzącego na rynek DE ta dominacja Shopware ma jeden konkretny skutek: jeśli chcesz zrozumieć, jak działa SEO Twojej konkurencji w Google.de – musisz rozumieć Shopware. Audytując profil linkowy i strukturę techniczną liderów w niszy, za każdym razem trafiam na tą samą platformę.

Shopware 5 vs Shopware 6 – dlaczego wersja ma znaczenie dla SEO

Shopware 5 osiągnął koniec wsparcia technicznego (EOL) w lipcu 2024 roku. Sklepy, które nadal na nim działają, nie otrzymują aktualizacji bezpieczeństwa ani poprawek – co oznacza rosnące ryzyko techniczne i brak dostępu do nowych funkcji SEO wprowadzonych w Shopware 6.

Ten artykuł dotyczy wyłącznie Shopware 6 – aktualnej, wspieranej wersji platformy. Jeśli nadal działasz na Shopware 5, migracja to nie opcja, to konieczność. Pułapki SEO związane z samą migracją omawiam w sekcji ósmej.

Dlaczego Shopware 6 wymaga osobnego podejścia do SEO?

Shopware 6 to nie jest zły wybór dla SEO – to platforma z realnie dobrymi możliwościami optymalizacji. Problem polega na tym, że wiele z tych możliwości wymaga świadomej konfiguracji, której domyślna instalacja nie dostarcza.

Trzy cechy Shopware 6, które odróżniają go od innych platform w kontekście SEO:

  1. Po pierwsze, architektura wielokanałowa (Sales Channels). Shopware 6 buduje sprzedaż wokół koncepcji Sales Channels – każdy kanał może mieć własne domeny, języki i konfigurację. To potężne narzędzie dla sklepów wielojęzycznych, ale jednocześnie źródło duplikatów treści i błędów hreflang, jeśli Sales Channels są skonfigurowane niepoprawnie. 
  2. Po drugie, headless jako domyślna opcja rozwoju. Shopware AG aktywnie promuje architekturę headless (Shopware Composable Frontends, dawniej Shopware PWA) jako przyszłość platformy. Każdy sklep, który idzie w kierunku headless, wchodzi w strefę ryzyka renderowania – opisy kategorii i produktów generowane przez JavaScript stają się niewidoczne dla GPTBot, ClaudeBot i PerplexityBot.
  3. Po trzecie, elastyczność URL jako pułapka. Shopware 6 daje pełną kontrolę nad strukturą URL – ale ta elastyczność oznacza, że błędy konfiguracyjne generują dziesiątki wariantów tego samego URL bez canonical, co Googlebot interpretuje jako unikalne strony duplikatów.

Z mojej praktyki audytów sklepów opartych na Shopware 6 na rynku DE: 80% problemów SEO, które identyfikuję, wynika nie z ograniczeń platformy – ale z domyślnych ustawień, które nikt nie zmienił po instalacji. Więcej o specyfice rynku DE i tym, co odróżnia go od Google.pl, znajdziesz w kompleksowym poradniku SEO w Niemczech.

Domyślne ustawienia Shopware 6, które szkodzą SEO zaraz po instalacji

Shopware 6 po świeżej instalacji ma co najmniej osiem domyślnych konfiguracji, które aktywnie szkodzą widoczności organicznej – i żadna z nich nie jest oznaczona w panelu administracyjnym jako „uwaga: to może zaszkodzić SEO”.

To jest dokładnie ten problem, który sprawia, że sklepy startują z Shopware 6, przez pierwsze 3-4 miesiące nie widzą wzrostów i szukają przyczyny w contencie lub linkach – podczas gdy źródło leży w ustawieniach, które powinny być zmienione w dniu wdrożenia. Widziałem to w kilkunastu audytach. Poniżej lista tego, co zmieniam jako pierwsze.

Osiem domyślnych ustawień Shopware 6, które wymagają korekty

#UstawienieDomyślna wartośćProblem SEORekomendacja
1Canonical URL dla wariantów produktówWyłączonyKażdy wariant dostaje osobny URL bez canonical → duplikatyWłącz canonical → URL produktu głównego
2Indeksowanie stron filtrówBrak blokadyFiltry generują parametryczne URL-e indeksowane przez GoogleDodaj noindex dla URL-i z parametrami filtrów
3robots.txtBlokuje /admin/, ale nie parametry sesjiParametry sesji (?_sw_affiliate=) trafiają do indeksuRozszerz robots.txt o blokadę parametrów trackingowych
4Sitemap XMLGeneruje wszystkie URL-e łącznie z noindexSitemap zawiera strony, których nie chcesz indeksowaćSkonfiguruj sitemap z wykluczeniem stron noindex
5Paginacja kategoriiBrak canonical na stronach 2+Strony paginacji /page/2 traktowane jako osobne stronyDodaj canonical → strona 1 dla wszystkich stron paginacji
6Meta title produktu[Nazwa produktu] | [Nazwa sklepu]Wszystkie meta title mają identyczną strukturę, brak słów kluczowych DEZmień szablon na [Keyword DE] – [Cecha] | [Sklep]
7Alt tagi zdjęćPuste lub z nazwy plikuBrak alt tagów = utracony sygnał semantycznyUzupełnij alt tagi z frazą kluczową DE + kontekstem produktu
8Sales Channel – konfiguracja językaJeden SC dla wszystkich językówBez osobnego SC dla DE ryzyko błędów hreflangUtwórz osobny Sales Channel dla każdej wersji językowej

Jak zmienić canonical dla wariantów produktów – krok po kroku

Duplikaty wariantów produktów to najczęstszy i najbardziej kosztowny domyślny błąd Shopware 6. Sklep z 1 000 produktów i średnio 5 wariantami każdego generuje 5 000 URL-i wariantów – z których każdy jest indeksowany jako osobna strona bez canonical wskazującego na produkt główny.

Konfiguracja w panelu administracyjnym Shopware 6:

Ścieżka: Ustawienia → Sklep → SEO → Canonical URLs

Włącz opcję „Użyj kanonicznego URL produktu nadrzędnego dla wariantów”. Po aktywacji Shopware automatycznie dodaje tag <link rel=”canonical” href=”/produkt-glowny/”> do każdej strony wariantu.

Weryfikacja poprawności: otwórz URL wariantu produktu → sprawdź kod źródłowy (Ctrl+U) → wyszukaj canonical → wartość powinna wskazywać na URL produktu głównego bez parametrów.

Jeśli opcja nie jest dostępna – sprawdź wersję Shopware. Natywna obsługa canonical dla wariantów pojawiła się w Shopware 6.4. Starsze wersje wymagają wtyczki lub ręcznej implementacji w szablonie Twig.

robots.txt w Shopware 6 – co zmienić i dlaczego

Domyślny robots.txt Shopware 6 nie blokuje parametrów URL generowanych przez moduły trackingowe, afiliacyjne i sesyjne. Efekt: Googlebot indeksuje URL-e w stylu /produkt?_sw_affiliate=abc123 jako osobne strony – duplikaty i marnowanie crawl budgetu.

Rozszerzony robots.txt dla Shopware 6 gotowy do wklejenia:

User-agent: *

Disallow: /admin/

Disallow: /api/

Disallow: /*?_sw_affiliate=

Disallow: /*?utm_source=

Disallow: /*?utm_medium=

Disallow: /*?utm_campaign=

Disallow: /*?s=

Disallow: /checkout/

Disallow: /account/

User-agent: GPTBot

Allow: /

User-agent: ClaudeBot

Allow: /

User-agent: PerplexityBot

Allow: /

Sitemap: https://twojsklep.de/sitemap.xml

Bloki dla GPTBot, ClaudeBot i PerplexityBot muszą być osobnymi wpisami z Allow: / – nie wystarczy ogólne zezwolenie w bloku User-agent: *. Shopware domyślnie nie zawiera tych wpisów.

Sitemap XML – jak wykluczyć strony noindex

Domyślna sitemap Shopware 6 generuje URL-e wszystkich stron, włącznie z tymi oznaczonymi jako noindex. Google interpretuje sprzeczność między noindex, a obecnością w sitemapie jako sygnał niskiej jakości technicznej.

Ścieżka: Ustawienia → Sklep → SEO → Sitemap → aktywuj opcję „Wyklucz strony z noindex ze sitemapy”. Jeśli opcja nie istnieje – zainstaluj wtyczkę Seo Suite Ultimate lub Advanced SEO Suite.

Weryfikacja: w GSC zakładka „Sitemaps” → duża rozbieżność między „Przesłanymi” a „Zaindeksowanymi” URL-ami oznacza, że sitemap zawiera strony niskiej jakości.

Jak Shopware 6 generuje duplikaty URL i jak je wyeliminować

Domyślne ustawienia Shopware 6 umożliwiają generowanie kilkunastu różnych URL-i prowadzących do tej samej treści – bez żadnej dodatkowej konfiguracji, wyłącznie przez kombinację domyślnych mechanizmów platformy działających jednocześnie.

To nie jest problem jednego miejsca w kodzie, który można naprawić jedną zmianą. To systemowe zjawisko wynikające z architektury Shopware – Sales Channels, warianty produktów, tagi, właściwości i filtry generują duplikaty niezależnie od siebie.

Pięć źródeł duplikatów URL w Shopware 6

Źródło 1: Warianty produktów. Każdy wariant produktu (kombinacja właściwości: kolor × rozmiar × materiał) dostaje własny URL z parametrami. Produkt „Koszula Oxford” w rozmiarach S/M/L/XL i kolorach biały/niebieski/szary generuje 12 kombinacji – 12 URL-i wskazujących na tę samą treść. Bez canonical: 12 zduplikowanych stron w indeksie Google.

Źródło 2: Tagi produktów. Shopware 6 tworzy automatycznie strony tagów dla każdego tagu przypisanego do produktu. Tag „bawełna” na 50 produktach → osobna strona /tag/bawelna/ z listą produktów identyczną jak w kategorii – duplikat treści z innym URL-em.

Źródło 3: Właściwości (Properties) jako strony filtrów. Właściwości produktów generują osobne strony filtrów przez parametry URL: /kategoria?properties=abc123 – bez canonical wskazującego na kategorię główną.

Źródło 4: Sales Channels z nakładającymi się domenami. Sklep z Sales Channels dla PL i DE bez poprawnego hreflang generuje duplikaty na poziomie całej struktury – każda strona produktu i kategorii na obu domenach.

Źródło 5: Strony CMS powielone między Sales Channels. Strony CMS (regulamin, polityka prywatności, strona O nas) kopiowane między Sales Channels bez hreflang lub canonical = duplikaty między domenami.

Tabela: źródła duplikatów × skala × rozwiązanie

Źródło duplikatuSkala problemuRozwiązaniePriorytet
Warianty produktówWysoka – każdy produkt z wariantami × N kombinacjiCanonical → URL produktu głównego🔴 KRYTYCZNY
Tagi produktówŚrednia – N tagów × lista produktównoindex, follow dla stron /tag/🟠 WYSOKI
Właściwości jako filtryWysoka – N właściwości × N wartościCanonical → URL kategorii bazowej lub noindex🔴 KRYTYCZNY
Sales Channels bez hreflangWysoka – wszystkie strony produktów i kategoriiKonfiguracja hreflang między Sales Channels🔴 KRYTYCZNY
Strony CMS powieloneNiska – kilka stron statycznychCanonical → wersja DE lub hreflang🟡 ŚREDNI

Jak zidentyfikować duplikaty w sklepie Shopware – diagnoza w GSC

Krok 1: GSC → „Indeksowanie” → „Strony” → filtr „Duplikaty bez wybranej strony kanonicznej”. Liczba stron = minimalna liczba duplikatów wykrytych przez Google.

Krok 2: Zakładka „Zduplikowane, przesłana strona nie jest wybrana jako kanoniczna”. URL-e wariantów produktów (?color=, ?size=, properties=) = problem z canonical wariantów aktywny.

Krok 3: Filtruj według prefiksu /tag/. Dziesiątki lub setki stron tagów w indeksie = Shopware generuje duplikaty przez tagi.

Krok 4: Porównaj łączną liczbę zaindeksowanych stron z realną liczbą produktów + kategorii + stron CMS. GSC pokazuje 3× więcej stron = aktywny problem z duplikatami.

Jak wyeliminować duplikaty tagów – trzy opcje konfiguracji

Opcja A (Shopware 6.5+): Ustawienia → Sklep → SEO → Indeksowanie → odznacz „Indeksuj strony tagów”.

Opcja B (starsze wersje): Edytuj szablon Twig: src/Storefront/Resources/views/storefront/page/product-stream/index.html.twig → dodaj blok z metatagiem noindex.

Opcja C (bez programowania): Wtyczka Advanced SEO Suite lub Seo Suite Ultimate – zarządzanie indeksowaniem stron tagów z panelu administracyjnego.

Nawigacja fasetowa i crawl budget w Shopware 6: konfiguracja krok po kroku

nawigacja fasetowa w Shopware 6 generuje problemy z crawl budget’em szybciej niż na jakiejkolwiek innej popularnej platformie e-commerce – dlatego, że Shopware domyślnie łączy system właściwości produktów, filtrów kategorii i dynamicznych URL-i w jeden mechanizm, który bez konfiguracji produkuje tysiące indeksowalnych kombinacji.

Sklep z 20 kategoriami i 8 właściwościami filtrowania po 5-10 wartości każda generuje teoretycznie 20 × 8 × 7,5 = 1 200 kombinacji filtrów. Przy crawl budgecie małego sklepu DE wynoszącym 500-2 000 żądań dziennie (Google Search Central 2024) – Googlebot spędza większość czasu na stronach bez wartości rankingowej.

Tabela decyzyjna: co zrobić z każdym typem URL filtra w Shopware 6

Typ URL filtraPrzykładWolumen w Sistrix DERozwiązanieImplementacja w SW6
Pojedyncza właściwość bez wolumenu?properties=abc0-100/mies.canonical → URL kategorii bazowejWtyczka SEO lub Twig
Pojedyncza właściwość z wolumenem?properties=abc500+/mies.Osobna podkategoria z czystym URLNowa kategoria w SW6
Producent bez osobnej strony?manufacturer=xyz0-200/mies.canonical → URL kategorii bazowejUstawienia → SEO
Producent z wolumenem (marka znana)?manufacturer=xyz1 000+/mies.Osobna strona producenta /marke/xyz/Landing page w SW6
Kombinacja 2+ filtrów?properties=a&manufacturer=bZazwyczaj 0noindex, followMetatag robots w Twig
Sortowanie (?order=)?order=price-asc0canonical → URL bez parametrurobots.txt lub canonical
Dostępność (?available=1)?available=10noindex, followMetatag robots
Paginacja filtrów (?p=2&properties=a)Kombinacja strony i filtra0noindex, followMetatag robots

Konfiguracja canonical dla filtrów – trzy metody

Metoda 1: Wtyczka SEO (najszybsza, bez programowania). Advanced SEO Suite lub Seo Suite Ultimate – definiujesz listę parametrów URL, dla których wtyczka automatycznie dodaje canonical wskazujący na URL bez parametrów. Koszt: 199-399 EUR jednorazowo. Czas wdrożenia: 2-4 godziny.

Metoda 2: Szablon Twig (z deweloperem). Edytuj src/Storefront/Resources/views/storefront/layout/meta.html.twig:

twig

{% block layout_head_canonical %}

    {% if app.request.query.count > 0 %}

        <link rel=”canonical” href=”{{ app.request.schemeAndHttpHost }}{{ app.request.pathInfo }}”>

    {% else %}

        {{ parent() }}

    {% endif %}

{% endblock %}

Metoda 3: robots.txt dla parametrów bez wartości SEO.

Disallow: /*?order=

Disallow: /*?available=

Disallow: /*?p=*&properties=

Disallow: /*?p=*&manufacturer=

Uwaga: robots.txt blokuje indeksowanie, ale nie przekazuje sygnałów rankingowych jak canonical. Używaj tej metody wyłącznie dla parametrów bez żadnej wartości SEO.

Benchmark poprawnej konfiguracji

Liczba URL-i z parametrami w indeksie GSC powinna wynosić poniżej 5% łącznej liczby zaindeksowanych stron. Wynik powyżej 20% = aktywny problem z crawl budgetem wymagający natychmiastowej interwencji. Sprawdź w GSC → „Statystyki indeksowania” – po konfiguracji liczba żądań crawlera powinna spaść w ciągu 4-6 tygodni. Więcej o strategii kategorii i nawigacja fasetowa znajdziesz w artykule o optymalizacji stron kategorii pod Google.de.

Hreflang w Shopware 6: jak poprawnie skonfigurować wersje językowe DE i PL

Błędna implementacja hreflang w Shopware 6 to jeden z najczęstszych powodów, dla których polskie sklepy budują widoczność w Google.de przez 6 miesięcy – i nie widzą efektów, bo Google serwuje polską wersję strony niemieckim użytkownikom.

Widziałem to u kilku klientów: pełna optymalizacja on-page, regularne publikacje contentowe, rosnący profil linkowy – a Google.de rankuje polskojęzyczne URL-e dla fraz DE. Przyczyna w każdym przypadku była ta sama: Sales Channels bez poprawnego hreflang między wersjami językowymi.

Architektura Sales Channels – warunek poprawności hreflang

KonfiguracjaSales Channel PLSales Channel DEWynik dla SEO
✓ Poprawnasklep.pl → język PLsklep.de → język DEHreflang generowany automatycznie
✗ Błędna Asklep.pl/de/ w jednym SCHreflang nie działa dla subfolderów
✗ Błędna Bsklep.de – dwa języki w jednym SCShopware serwuje losowo jeden język
✗ Błędna CDwa SC bez przypisanych domensklep.de obsługuje obaGoogle nie rozróżnia wersji językowych

Shopware 6 generuje tagi hreflang automatycznie tylko wtedy, gdy każda wersja językowa ma przypisany osobny Sales Channel z unikalną domeną.

Konfiguracja hreflang krok po kroku

Krok 1: Osobny Sales Channel dla każdej wersji językowej. Sprzedaż → Kanały sprzedaży → Dodaj kanał – dla DE: domena https://sklep.de, język Deutsch (DE), waluta EUR, kraj Deutschland.

Krok 2: Przypisz produkty i kategorie do obu Sales Channels. Katalog → Produkty → [produkt] → Widoczność – produkt aktywny w SC PL i DE. Produkty nieprzypisane do SC DE nie pojawią się w wersji DE.

Krok 3: Włącz automatyczne generowanie hreflang. Ustawienia → Sklep → SEO → Hreflang → aktywuj „Automatyczne generowanie tagów hreflang między Sales Channels” (SW6.4+).

Generowany kod hreflang:

html

<link rel=”alternate” hreflang=”de-DE” href=”https://sklep.de/herren-lederschuhe/oxford-braun/”>

<link rel=”alternate” hreflang=”pl-PL” href=”https://sklep.pl/meskie-buty-skorzane/oxford-brazowy/”>

<link rel=”alternate” hreflang=”x-default” href=”https://sklep.de/herren-lederschuhe/oxford-braun/”>

Krok 4: Dodaj atrybut x-default. Shopware 6 nie dodaje automatycznie hreflang=”x-default”. Implementacja w szablonie Twig:

twig

{% block layout_head_hreflang %}

    {{ parent() }}

    <link rel=”alternate” hreflang=”x-default” href=”https://sklep.de{{ app.request.pathInfo }}”>

{% endblock %}

Cztery najczęstsze błędy hreflang w Shopware 6

Błąd 1: Różne URL-e dla tej samej strony w obu wersjach bez poprawnych tłumaczeń nazw → hreflang nie mapuje odpowiedników.

Błąd 2: Brak hreflang dla stron CMS – Shopware generuje go automatycznie tylko dla produktów i kategorii. CMS: Treść → Strony CMS → [strona] → SEO → Hreflang.

Błąd 3: Hreflang wskazuje na strony z noindex → Google interpretuje to jako błąd konfiguracji.

Błąd 4: Brak hreflang w sitemapie XML – Shopware domyślnie go tam nie dodaje. Wtyczka Advanced SEO Suite obsługuje hreflang w sitemapie.

Weryfikacja poprawności hreflang

GSC: Starsze narzędzia → Targetowanie międzynarodowe → Język – trzy najczęstsze błędy dla Shopware: „Brak strony zwrotnej”, „Nieprawidłowy kod języka” (de zamiast de-DE), „Strona przekierowana”.

Screaming Frog: Crawl obu domen → zakładka „Hreflang” → filtr „Missing Return Link”. Benchmark poprawnej konfiguracji: 0 błędów „Missing Return Link”.

Rendering problem: Shopware PWA i headless, a niewidoczność dla GPTBot

Shopware w konfiguracji headless lub PWA generuje treści przez JavaScript – co oznacza, że opisy produktów, kategorie i treści CMS są niewidoczne dla GPTBot, ClaudeBot i PerplexityBot, niezależnie od tego, jak dobrze są napisane i zoptymalizowane pod frazy DE.

To jest najpoważniejszy problem techniczny, który można popełnić wdrażając Shopware 6 na rynek DE w 2026 roku. Klasyczny Shopware Storefront (Twig) nie ma tego problemu – ale każde odejście w kierunku headless automatycznie wchodzi w strefę ryzyka renderingowego.

Cztery architektury Shopware 6 i ich ryzyko renderingowe

ArchitekturaTechnologia frontenduRendering treściRyzyko dla GPTBot/ClaudeBotRyzyko dla Googlebot
Klasyczny StorefrontTwig + SymfonyInitial HTML🟢 BRAK🟢 BRAK
Composable Frontends (Nuxt.js)Vue.js + SSRZależy od konfiguracji SSR🟡 ŚREDNIE🟡 ŚREDNIE
Composable Frontends (Next.js)React + SSRZależy od konfiguracji SSR🟡 ŚREDNIE🟡 ŚREDNIE
Własny headless (SPA bez SSR)React/Vue/Angular bez SSRJS – niewidoczna w initial HTML🔴 KRYTYCZNE🟠 WYSOKIE
Vue Storefront (legacy SW PWA)Vue.js – SSR opcjonalnyJS – SSR opcjonalny🔴 KRYTYCZNE bez SSR🟠 WYSOKIE bez SSR

Rendering-Test dla Shopware – 5 minut bez dostępu do serwera

Krok 1: Otwórz stronę produktu lub kategorii w Chrome. Krok 2: Kliknij prawym → „Zapisz jako” → „Strona internetowa, tylko HTML”. Krok 3: Otwórz plik w edytorze tekstu → wyszukaj (Ctrl+F) pierwsze zdanie opisu.

Tekst znaleziony → ✅ Treść w initial HTML. Boty AI ją widzą. Tekst nieznaleziony → ❌ Treść generowana przez JS. Boty AI jej nie widzą.

Dodatkowo: DevTools Chrome (F12) → „Network” → odśwież → kliknij request dokumentu HTML → zakładka „Response” → sprawdź, czy opis jest w odpowiedzi HTTP. To dokładnie to, co widzi GPTBot.

Uwaga: wynik pozytywny w GSC (Kontrola URL) nie oznacza, że boty AI widzą treść – Googlebot renderuje JS, GPTBot i ClaudeBot nie.

Rozwiązanie dla Composable Frontends – weryfikacja SSR

Sprawdź plik nuxt.config.ts – opcja ssr musi być true:

typescript

export default defineNuxtConfig({

  ssr: true,

})

Sprawdź, czy komponenty opisów nie są owinięte w <ClientOnly>:

vue

<!– ❌ Niewidoczne dla GPTBot –>

<ClientOnly>

  <ProductDescription :product=”product” />

</ClientOnly>

<!– ✓ Widoczne dla GPTBot –>

<ProductDescription :product=”product” />

W Next.js sprawdź, czy strony produktów używają getServerSideProps, nie useEffect do pobierania danych:

typescript

// ✓ Dane w initial HTML

export async function getServerSideProps(context) {

  const product = await fetchProduct(context.params.slug);

  return { props: { product } };

}

WAF i blokada botów AI – ukryty problem na hostingach DE

Popularne hostingi Shopware w Niemczech (Hetzner, IONOS, Strato) mają domyślnie włączone reguły WAF, które mogą blokować boty AI mimo otwartego robots.txt. Sprawdź w logach serwera: user-agenty GPTBot, ClaudeBot, PerplexityBot zwracają kod 200 (OK) czy 403/429 (zablokowane)?

Dodaj do whitelist WAF:

GPTBot/1.0 (+https://openai.com/gptbot)

ClaudeBot/0.5 (+https://anthropic.com/claude)

PerplexityBot/1.0 (+https://perplexity.ai/perplexitybot)

Które wtyczki SEO dla Shopware 6 naprawdę działają – przegląd i ocena

Shopware Store oferuje ponad 3 000 wtyczek – z czego około 40 jest oznaczonych jako SEO. Większość z nich rozwiązuje jeden konkretny problem. Żadna nie zastępuje poprawnej konfiguracji platformy opisanej w poprzednich sekcjach.

Zanim wydasz pieniądze na wtyczkę, odpowiedz na trzy pytania: czy masz ponad 500 produktów, czy zarządzasz migracją lub dużą restrukturyzacją URL-i, czy potrzebujesz rich snippets wykraczających poza domyślne schema Shopware? Jeśli odpowiedź na wszystkie trzy brzmi „nie” – natywne funkcje SEO Shopware 6.5+ mogą wystarczyć.

Przegląd i ocena wtyczek SEO dla Shopware 6

WtyczkaProducentCenaRozwiązujeOcena
SEO ProfessionalDreischild GmbH~249 EUR/rokMeta dane, canonical wariantów, bulk generator, JSON-LD, przekierowania⭐⭐⭐⭐⭐ – lider rynku
Filter SEO URLDreischild GmbH~99 EUR/rok (addon)Speaking URLs dla filtrów, landing pages filtrów⭐⭐⭐⭐⭐ – konieczna przy dużych katalogach
ACRIS SEO ToolsACRIS E-Commerce~149 EUR/rokJSON-LD rich snippets, canonical, schema kategorii⭐⭐⭐⭐ – dobra alternatywa
SEO URL ManagerAtloss~15 EUR/mies.Speaking URLs dla wariantów, canonical i hreflang wariantów⭐⭐⭐⭐ – najlepsza do problemu wariantów
FAQ ProACRIS E-Commerce~99 EUR/rokFAQPage schema na stronach produktów⭐⭐⭐⭐ – wysoki potencjał AI Overview
robots.txt + llms.txt ManagercodegigantenBezpłatnarobots.txt i llms.txt z panelu administracyjnego⭐⭐⭐⭐ – obowiązkowa dla AI Readiness
SEO SuiteAlphanautenIndywidualnieLighthouse integration, keyword tracking, AI suggestions⭐⭐⭐ – rozbudowana, droga

SEO Professional by Dreischild – lider rynku

SEO Professional to najbardziej kompletna wtyczka SEO dla Shopware 6 – oferuje bulk generator meta danych, SERP preview z licznikiem znaków, JSON-LD rich snippets, przekierowania 301/302 oraz dziedziczenie canonical URL produktu nadrzędnego dla wariantów.

Trzy funkcje robiące największą różnicę dla sklepu DE:

Bulk generator meta danych: definiujesz szablon z dynamicznymi zmiennymi ({{ product.name }}, {{ product.manufacturer.name }}) i generujesz wszystkie meta dane jednym kliknięciem. Dla sklepów z dużym katalogiem – oszczędność tygodni pracy.

Canonical dla wariantów z dziedziczeniem: natywny Shopware 6 pozwala ustawić canonical wariantu tylko na inny wariant – nie na produkt nadrzędny. SEO Professional rozwiązuje to globalnie: jedna opcja = wszystkie warianty canonical na produkt główny.

Przekierowania 301 z importem CSV: przy migracji ze Shopware 5 – import setek przekierowań z pliku CSV z obsługą parametrów GET.

robots.txt + llms.txt Manager – obowiązkowa dla AI Readiness

Wtyczka codegiganten pozwala zarządzać robots.txt i llms.txt z panelu administracyjnego bez dostępu do serwera przez FTP.

llms.txt to emerging standard (2025) pozwalający zdefiniować, które treści mogą być cytowane przez systemy AI. Sklep bez llms.txt nie sygnalizuje systemom AI, że jest wiarygodnym źródłem do cytowania. Wtyczka jest bezpłatna – nie ma powodu, żeby jej nie zainstalować.

Rekomendacja: jaką kombinację wybrać?

Wielkość sklepuRekomendowana kombinacjaKoszt roczny
Mały (do 500 produktów)robots.txt + llms.txt Manager + natywne SEO SW60 EUR
Średni (500-2 000 produktów, warianty)SEO Professional + robots.txt Manager~249 EUR
Duży (2 000+ produktów, rozbudowane filtry)SEO Professional + Filter SEO URL + ACRIS FAQ Pro~447 EUR
Headless/PWASEO Professional + Filter SEO URL + weryfikacja SSR248 EUR + dev

Zawsze testuj wtyczki na środowisku stagingowym przed wdrożeniem na produkcję – konflikt między dwiema wtyczkami modyfikującymi canonical lub hreflang jednocześnie może wygenerować więcej problemów niż rozwiązał.

Migracja Shopware 5 → Shopware 6: pułapki SEO, które niszczą pozycje

Migracja ze Shopware 5 na Shopware 6 to jedno z najbardziej ryzykownych zdarzeń SEO w cyklu życia sklepu internetowego – sklepy tracą średnio 30-60% widoczności organicznej w ciągu pierwszych 4 tygodni po migracji, jeśli nie przeprowadzą jej z pełną checklistą SEO.

To nie jest straszenie. To rzeczywistość, którą widziałem kilka razy – sklep z 3-letnim profilem linkowym i stabilnymi pozycjami top 5, który po migracji na SW6 spędził 6 miesięcy na odrabianiu strat. We wszystkich przypadkach przyczyna była przewidywalna i możliwa do uniknięcia.

Dlaczego Shopware 5 i 6 generują różne URL-e?

Shopware 5 generował URL na podstawie nazwy z opcjonalnym prefiksem kategorii. Shopware 6 domyślnie używa szablonu {{ product.translated.name }}/{{ product.productNumber }} – co daje URL z numerem produktu: /oxford-braun-SW10042/ zamiast /herrenschuhe/oxford-braun/.

ElementTypowy URL SW5Typowy URL SW6 (domyślny)Ryzyko SEO
Produkt/herrenschuhe/oxford-braun//oxford-braun-SW10042/Utrata pozycji i linków zewnętrznych
Kategoria główna/herrenschuhe//herrenschuhe/Zazwyczaj zgodny – niskie ryzyko
Podkategoria/herrenschuhe/leder//leder/ (bez prefiksu)Średnie ryzyko
Strona producenta/marken/nike//hersteller/nike/Wysokie ryzyko – zmiana prefiksu

Checklist SEO przed migracją Shopware 5 → 6

Faza 1 – Inwentaryzacja (4-6 tygodni przed migracją):

  • Eksport wszystkich zaindeksowanych URL-i SW5 z GSC
  • Eksport URL-i ze Screaming Frog crawlu SW5
  • Identyfikacja URL-i z największą liczbą linków zewnętrznych (Ahrefs/Sistrix)
  • Identyfikacja URL-i generujących największy ruch organiczny (GSC)
  • Identyfikacja URL-i z pozycjami top 10 dla fraz DE

Faza 2 – Przygotowanie URL-i w SW6 (2-3 tygodnie przed):

  • Skonfiguruj szablony SEO URL w SW6 pasujące do struktury SW5 (usuń numer produktu)
  • Ręcznie zdefiniuj SEO URL-e dla produktów priorytetowych
  • Zaimportuj mapowanie URL-i SW5 → SW6 do modułu przekierowań SEO Professional (CSV)
  • Przygotuj listę przekierowań 301 dla URL-i, których nie da się odtworzyć 1:1

Faza 3 – Weryfikacja przed go-live (1 tydzień przed):

  • Crawl stagingu przez Screaming Frog – porównaj URL-e ze SW5
  • Weryfikacja przekierowań dla top 50 URL-i priorytetowych
  • Sprawdź canonical dla wariantów w SW6
  • Weryfikacja hreflang między Sales Channels
  • Test robots.txt – czy nie blokuje niczego indeksowanego w SW5
  • Weryfikacja sitemapę XML SW6

Faza 4 – Pierwsze 72 godziny po migracji:

  • Wymuś indeksowanie priorytetowych URL-i przez GSC → „Poproś o indeksowanie”
  • Monitoruj raport „Pokrycie URL” – szukaj wzrostu błędów 404
  • Sprawdź logi serwera pod kątem błędów 500 i przekierowań pętlowych
  • Weryfikacja Core Web Vitals w SW6
  • Monitoruj pozycje top 20 fraz DE codziennie przez 2 tygodnie

Trzy najczęstsze błędy migracyjne

Błąd 1: Przekierowania 302 zamiast 301. Google nie przekazuje pełnego autorytetu przez 302. Sprawdź typ w Screaming Frog → kolumna „Redirect Type”.

Błąd 2: Brak przekierowań dla URL-i z parametrami. SW5 generował parametryczne URL-e indeksowane przez Google – po migracji zwracają 404.

Błąd 3: Zmiana struktury H1 na stronach kategorii. SW5 i SW6 mają różne szablony kategorii. Po migracji sprawdź Screaming Frog → filtr „H1″ → „Missing” i „Duplicate”.

Plan naprawczy po migracji (gdy pozycje już spadły)

Dzień 1-3: Raport 404 w GSC → URL-e z błędami, które miały ruch lub linki → dodaj przekierowania 301 dla każdego.

Tydzień 1-2: Crawl SW6 z porównaniem do eksportu SW5 → URL-e SW5 bez odpowiednika w SW6 → dodaj przekierowania lub odtwórz URL-e.

Tydzień 2-4: Wymuś ponowne indeksowanie przez GSC → monitoruj „Pokrycie URL” → czekaj na recrawl. Przy crawl budgecie 500-2 000 żądań dziennie pełne przeindeksowanie zajmuje 3-8 tygodni.

Shopware 6 SEO checklist: 20 punktów przed publikacją sklepu na rynek DE

Sklep Shopware 6 gotowy do publikacji na rynek DE musi przejść 20 punktów kontrolnych – pominięcie któregokolwiek przed go-live oznacza naprawianie problemów pod presją czasu, gdy sklep jest już widoczny dla użytkowników i Googlebota.

Warstwa 1 – Konfiguracja techniczna (punkty 1-7)

Punkt 1: Canonical dla wariantów produktów Kryterium: URL wariantu → Ctrl+U → canonical wskazuje na URL produktu głównego. Ścieżka: Ustawienia → Sklep → SEO → Canonical URLs lub SEO Professional.

Punkt 2: robots.txt z wpisami dla botów AI Kryterium: twojsklep.de/robots.txt zawiera bloki GPTBot, ClaudeBot, PerplexityBot z Allow: /.

Punkt 3: Sitemap XML bez stron noindex Kryterium: GSC → „Sitemaps” → rozbieżność „Przesłanych” vs „Zaindeksowanych” poniżej 20%.

Punkt 4: Strony tagów z noindex Kryterium: /tag/[nazwa]/ → Ctrl+U → robots zawiera noindex.

Punkt 5: Paginacja z canonical → strona 1 Kryterium: /kategoria/?page=2 → canonical wskazuje na /kategoria/.

Punkt 6: Parametry URL filtrów z canonical lub noindex Kryterium: URL kategorii z filtrem → canonical wskazuje na URL bazowy kategorii.

Punkt 7: Rendering-Test dla opisów produktów i kategorii Kryterium: Zapisz stronę jako HTML → wyszukaj opis → tekst znaleziony = ✅. Dotyczy wszystkich konfiguracji headless i PWA.

Warstwa 2 – Hreflang i Sales Channels (punkty 8-11)

Punkt 8: Osobny Sales Channel dla każdej wersji językowej Kryterium: SC DE z domeną sklep.de + język DE. SC PL z domeną sklep.pl + język PL.

Punkt 9: Hreflang z atrybutem x-default Kryterium: strona produktu → hreflang zawiera tagi de-DE, pl-PL i x-default.

Punkt 10: Brak hreflang na stronach z noindex Kryterium: Screaming Frog → „Hreflang” → filtr „Non-Indexable Return Link” = 0 wyników.

Punkt 11: Hreflang dla stron CMS Kryterium: strona CMS (Impressum, O nas) → hreflang zawiera tagi dla obu wersji językowych.

Warstwa 3 – Treść i meta dane (punkty 12-16)

Punkt 12: Impressum i DSGVO po niemiecku Kryterium: /impressum/ z kompletnymi danymi firmy po niemiecku. Brak = ryzyko Abmahnung do 50 000 EUR.

Punkt 13: inkl. MwSt. i zzgl. Versandkosten przy cenach Kryterium: każda cena na liście kategorii ma oznaczenie inkl. MwSt. i zzgl. Versandkosten. Brak = naruszenie PAngV.

Punkt 14: Opisy kategorii głównych (min. 300 słów) Kryterium: Screaming Frog → „Word Count” dla URL-i kategorii → wartości poniżej 300 = do uzupełnienia. Opis pod listą produktów, native speaker DE, BLUF w pierwszym zdaniu.

Punkt 15: Meta title i meta description dla produktów priorytetowych Kryterium: top 50 produktów ma meta title (50-58 znaków, keyword DE na początku) i meta description (150-160 znaków, BLUF).

Punkt 16: Alt tagi dla zdjęć produktów priorytetowych Kryterium: top 50 produktów ma alt tagi z frazą kluczową DE + kontekstem (np. „Herren Lederschuh Oxford Braun Größe 43″).

Warstwa 4 – Schema markup i AI Readiness (punkty 17-20)

Punkt 17: BreadcrumbList JSON-LD na stronach kategorii i produktów Kryterium: Google Rich Results Test → sekcja „Breadcrumb” bez błędów.

Punkt 18: Product schema z Offer, AggregateRating i shippingDetails Kryterium: Rich Results Test → sekcja „Produkt” zawiera price, priceCurrency, availability, shippingDetails.

Punkt 19: FAQPage schema dla kluczowych stron produktów Kryterium: top 20 produktów ma sekcję FAQ z min. 3 pytaniami i FAQPage JSON-LD bez błędów w Rich Results Test.

Punkt 20: llms.txt i WAF whitelist dla botów AI Kryterium A: twojsklep.de/llms.txt istnieje i zawiera opis sklepu. Kryterium B: logi serwera – GPTBot, ClaudeBot, PerplexityBot zwracają kod 200.

Podsumowanie checklisty

WarstwaPunktyCzas wdrożeniaEfekt braku
Konfiguracja techniczna1-71-2 dniDuplikaty, przepalony crawl budget, niewidoczność dla AI
Hreflang i Sales Channels8-112-4 dniGoogle serwuje złą wersję językową
Treść i meta dane12-161-3 tygodnieBrak widoczności na frazy DE, ryzyko Abmahnung
Schema i AI Readiness17-201-2 dniBrak Rich Snippets, niewidoczność w AI Overview

Wdrożenie warstw 1, 2 i 4 przed go-live zajmuje łącznie 3-5 dni roboczych. Warstwa 3 wymaga co najmniej 3-4 tygodnie ze względu na konieczność zaangażowania native speakera. Sklep, który przejdzie wszystkie 20 punktów przed go-live, startuje bez długu konfiguracyjnego, który trzeba spłacać przez pierwsze miesiące działania na Google.de.

Najczęstsze pytania o SEO Shopware 6 na rynku DE – FAQ

Czy Shopware 6 jest lepszy dla SEO niż WooCommerce?

Shopware 6 i WooCommerce mają porównywalne możliwości SEO w standardowej konfiguracji – obie platformy obsługują meta tagi, canonical, sitemapę i hreflang. Shopware 6 ma przewagę w architekturze wielojęzycznej (Sales Channels) i jest lepiej dostosowany do wymagań rynku DE (natywna obsługa EUR, VAT, Impressum). WooCommerce jest prostszy w konfiguracji i ma większy ekosystem wtyczek SEO. Kluczowa różnica dla SEO: Shopware 6 w konfiguracji headless wymaga SSR dla zachowania widoczności dla botów AI – WooCommerce standardowy nie ma tego problemu.

Jak sprawdzić, czy Shopware generuje duplikaty URL?

Diagnoza zajmuje 10 minut w Google Search Console: wejdź w „Indeksowanie” → „Strony” → filtr „Duplikaty bez wybranej strony kanonicznej”. Liczba stron w tym raporcie to minimalna liczba duplikatów. Następnie filtruj raport „Pokrycie URL” według parametrów properties= i manufacturer= – obecność tych URL-i w indeksie to sygnał aktywnego problemu z nawigacja fasetowa.

Czy Shopware 6 obsługuje hreflang natywnie?

Tak – od wersji 6.4 Shopware 6 generuje tagi hreflang automatycznie, ale wyłącznie przy spełnieniu jednego warunku: każda wersja językowa musi mieć przypisany osobny Sales Channel z unikalną domeną. Hreflang nie działa natywnie dla konfiguracji subfolder (/de/) w ramach jednego Sales Channel. Brakujący element to zawsze hreflang=”x-default” – Shopware go nie dodaje i wymaga ręcznej implementacji w szablonie Twig lub wtyczce.

Jak skonfigurować robots.txt w Shopware 6?

Użyj wtyczki codegiganten robots.txt Manager (bezpłatna) lub edytuj plik bezpośrednio na serwerze. Kluczowe elementy do dodania: blokada parametrów trackingowych (?utm_source=, ?_sw_affiliate=), blokada /checkout/ i /account/, oraz osobne bloki Allow: / dla GPTBot, ClaudeBot i PerplexityBot. Shopware domyślnie nie zawiera wpisów dla botów AI – brak tych wpisów może skutkować blokowaniem przez WAF mimo otwartego robots.txt.

Które wtyczki SEO są niezbędne w Shopware 6?

Dla sklepu powyżej 500 produktów: SEO Professional by Dreischild (~249 EUR/rok) – rozwiązuje canonical wariantów, bulk generator meta danych i przekierowania 301. Obowiązkowo: codegiganten robots.txt + llms.txt Manager (bezpłatna) – zarządzanie dostępem botów AI. Dla dużych katalogów z filtrami: Filter SEO URL (addon do SEO Professional, ~99 EUR/rok). Dla sklepów poniżej 500 produktów – natywne funkcje Shopware 6.5+ w połączeniu z bezpłatną wtyczką robots.txt mogą wystarczyć.

Jak Shopware headless wpływa na indeksowanie przez Google?

Shopware headless (Composable Frontends, Vue Storefront) generuje treści przez JavaScript – co oznacza dwa poziomy problemu. Googlebot renderuje JS podczas drugiego crawla (z opóźnieniem), więc nowe treści mogą czekać tygodnie na zaindeksowanie. GPTBot i ClaudeBot nie renderują JS w ogóle – treści headless bez SSR są dla nich niewidoczne trwale, niezależnie od jakości i optymalizacji.

Czy GPTBot i ClaudeBot mają dostęp do sklepu Shopware?

Domyślnie – nie wiadomo. Shopware 6 nie dodaje wpisów dla GPTBot i ClaudeBot do robots.txt. Boty mogą być blokowane przez WAF na poziomie serwera mimo braku blokady w robots.txt. Weryfikacja: sprawdź logi serwera pod kątem user-agentów GPTBot i ClaudeBot – kod 200 = dostęp, kod 403/429 lub brak wpisów = WAF blokuje.

Jak zoptymalizować Core Web Vitals w Shopware 6?

Trzy obszary z największym wpływem na LCP w Shopware 6: optymalizacja obrazów (konwersja do WebP – wtyczka 21infinity lub H1 webdevelopment Cloudflare), wyłączenie nieużywanych wtyczek i modułów JS (każda wtyczka dodaje czas ładowania), i konfiguracja lazy loading dla zdjęć poniżej fold. Dla konfiguracji headless: SSR i SSG eliminują czas renderowania JS po stronie klienta – to największy pojedynczy wpływ na LCP.

Co stracę SEO-wo podczas migracji z Shopware 5 na 6?

Bez przygotowania: 30-60% widoczności organicznej w ciągu 4 tygodni. Główne ryzyko: zmiana URL-i produktów (numer produktu w domyślnym szablonie SW6), zmiana prefiksów stron producentów (/marken/ → /hersteller/), utrata przekierowań dla URL-i z parametrami. Z pełną checklistą migracyjną (4 fazy opisane w artykule) – efekt powinien być neutralny lub pozytywny.

Jak Shopware 6 obsługuje strony wariantów produktów – noindex czy canonical?

Poprawne rozwiązanie to canonical – nie noindex. Strony wariantów z noindex są nieindeksowane, ale Googlebot nadal je crawluje i marnuje crawl budget. Canonical wskazujący na produkt główny przekazuje sygnały rankingowe do URL bazowego i jednocześnie wskazuje Googlebotowi, która strona ma być indeksowana. Konfiguracja: Ustawienia → Sklep → SEO → Canonical URLs (SW6.4+) lub SEO Professional dla wersji wcześniejszych.


Więcej o linkowaniu wewnętrznym w strukturze sklepu internetowego znajdziesz w artykule o linkowaniu wewnętrznym w strategii SEO sklepów.