Modelowane listy odbiorców nie zawierają konkretnych osób, tylko prawdopodobieństwa. Wyjaśniam, jak powstają, gdzie ich szukać w panelu i jak czytać ich raporty.
Pytanie „co lepsze pod SEO, Shopify czy WooCommerce” słyszę na pierwszym spotkaniu z klientem e-commerce częściej niż jakiekolwiek inne. Odpowiedź, którą daję, rzadko kogoś zadowala, bo brzmi: obie platformy da się dobrze wypozycjonować, tylko trzeba wiedzieć, gdzie każda z nich stawia opór.
Nie ma tu prostego zwycięzcy i nie zamierzam go wskazywać. Są natomiast bardzo konkretne różnice techniczne, które przekładają się na to, ile pracy trzeba wykonać, żeby sklep był poprawnie indeksowany, i czego w danym silniku po prostu nie zrobisz, choćbyś chciał.
Piszę o tym z perspektywy osoby, która dostaje do ręki gotowy sklep i ma z nim coś zrobić. Wybór platformy zwykle jest już za mną — decyzja padła w oparciu o koszty, magazyn i księgowość, nie o SEO. Warto więc rozumieć, na co się piszemy w jednym i drugim wypadku.
Porównuję to, co wynika z architektury platformy, a nie z konkretnego motywu czy wtyczki. Dobry i zły motyw znajdziesz po obu stronach, tak samo jak dobry i zły programista.
Interesują mnie cztery obszary, w których platforma narzuca zasady: struktura adresów URL, kontrola nad plikami technicznymi, wydajność i dane strukturalne. To one decydują, czy praca SEO polega na optymalizacji, czy na obchodzeniu ograniczeń.
Pomijam natomiast dyskusję o kosztach, integracjach z hurtowniami i wygodzie obsługi zamówień. To ważne rzeczy, ale nie mają wpływu na widoczność w wyszukiwarce, a mieszanie ich do jednej rozmowy sprawia, że nikt nie wychodzi z niej z konkretną wiedzą.
Zasadnicza różnica sprowadza się do jednego zdania: Shopify to zamknięta usługa, w której nie masz dostępu do serwera, a WooCommerce to wtyczka do WordPressa, gdzie masz dostęp do wszystkiego, wraz z odpowiedzialnością za wszystko.
Na Shopify struktura adresów jest sztywna. Produkt zawsze siedzi pod prefiksem `/products/`, kategoria pod `/collections/`, strona informacyjna pod `/pages/`, a blog pod `/blogs/`. Nie skrócisz tego, nie usuniesz prefiksu i nie zbudujesz zagnieżdżonej ścieżki typu kategoria nadrzędna w adresie produktu.
Przez lata uważałem to za poważną wadę i dziś już tak nie uważam. Sztywna struktura ma jedną ogromną zaletę: jest przewidywalna i nikt jej przypadkiem nie zepsuje. Nie widziałem sklepu na Shopify, w którym połowa produktów wisiałaby pod jednym schematem adresów, a druga połowa pod innym, bo ktoś pół roku temu zmienił ustawienie. W WooCommerce widuję to regularnie.
WooCommerce daje w tym miejscu pełną swobodę. W ustawieniach bezpośrednich odnośników możesz wybrać bazę produktu, zdecydować, czy w adresie ma być kategoria, i praktycznie dowolnie ułożyć hierarchię. To bardzo przyjemne przy projektowaniu serwisu od zera i bardzo groźne później.
Praktyczny wniosek: na WooCommerce decyzję o strukturze adresów podejmij raz, na początku, i traktuj ją jako nieodwracalną. Na Shopify tej decyzji po prostu nie masz i to oszczędza sporo problemów.
Tu obie platformy generują problemy, tylko zupełnie inne.
Shopify wystawia ten sam produkt pod dwoma adresami: kanonicznym `/products/nazwa` i dodatkowym w kontekście kolekcji, `/collections/nazwa-kolekcji/products/nazwa`. Platforma poprawnie ustawia w tym drugim przypadku znacznik kanoniczny na wersję podstawową, więc z punktu widzenia wyszukiwarki sprawa jest zaadresowana. Problem robi się wtedy, gdy motyw linkuje wewnętrznie wyłącznie do wersji z kolekcją — wtedy Googlebot chodzi po adresach, które i tak nie mają być indeksowane, a linkowanie wewnętrzne rozprasza się na duplikaty. Sprawdzenie, do której wersji linkują listingi w motywie, to jedna z pierwszych rzeczy, które robię na nowym sklepie.
Druga rzecz specyficzna dla Shopify to filtrowanie i tagi. Adresy typu `/collections/nazwa/tag` potrafią rozmnożyć się w setki kombinacji, a same w sobie nie wnoszą treści.
W WooCommerce śmieci są bardziej różnorodne. Do koszyka prowadzą adresy z parametrem dodania produktu, sortowanie generuje własne parametry, a filtry atrybutów — zwłaszcza te z widgetów i wtyczek filtrujących — tworzą kombinacje, które w dużym sklepie liczą się w tysiącach. Dochodzą do tego archiwa taksonomii atrybutów, które przy nieuważnej konfiguracji stają się osobnymi, publicznie dostępnymi listingami.
Do niedawna część tego dało się zgłosić Google przez narzędzie do obsługi parametrów URL w Search Console. Nie ma już takiej możliwości, więc jedyna droga to robota po stronie sklepu: znaczniki kanoniczne, reguły w robots.txt tam, gdzie chodzi o oszczędzenie budżetu indeksowania, i `noindex` tam, gdzie strona musi być dostępna dla użytkownika, ale nie ma trafiać do indeksu.
Tutaj różnica jest największa i najczęściej niedoceniana przy wyborze platformy.
Na WooCommerce masz wszystko. Własny plik robots.txt, dostęp do konfiguracji serwera, przekierowania dowolnego typu, nagłówki HTTP, logi serwera do analizy zachowania Googlebota. Jeśli potrzebujesz zrobić coś niestandardowego, po prostu to robisz.
Shopify jest tu znacznie bardziej ograniczony, choć w ostatnim czasie sporo się poprawiło. Od czerwca 2021 możesz nadpisać domyślne reguły robots.txt przez szablon `robots.txt.liquid` w motywie — wcześniej ten plik był całkowicie poza Twoim zasięgiem i była to jedna z najczęściej zgłaszanych bolączek specjalistów SEO. Mapa witryny nadal generuje się automatycznie i nie da się jej edytować ani wykluczyć z niej wybranych typów stron. Przekierowania ustawiasz z panelu i są to przekierowania stałe, bez możliwości wyboru typu ani użycia wyrażeń regularnych. Logów serwera nie dostaniesz w żadnej formie, więc analiza tego, jak Googlebot faktycznie chodzi po sklepie, sprowadza się do raportów w Search Console i własnego crawlera.
Dla większości sklepów to wystarcza. Kłopot pojawia się przy migracjach, gdzie sensowne przekierowanie kilku tysięcy starych adresów po wzorcu jest na Shopify realnym wyzwaniem, a na WooCommerce kwestią jednej reguły.
Page Experience jest sygnałem rankingowym zarówno na urządzeniach mobilnych, jak i na komputerach, więc trzy wskaźniki Core Web Vitals — czas załadowania największego elementu, opóźnienie po pierwszym działaniu użytkownika i przesunięcia układu — trzeba mieć na oku niezależnie od platformy.
Shopify startuje z lepszej pozycji, bo infrastruktura jest jego zadaniem. Serwery, sieć dostarczania treści, kompresja obrazów i skalowanie przy skoku ruchu nie są Twoim problemem i to naprawdę widać w czasie odpowiedzi serwera. Sklep na Shopify rzadko jest wolny z powodu hostingu.
Bywa natomiast wolny z powodu aplikacji. Każda kolejna wtyczka z App Store wstrzykuje własne skrypty do szablonu, a te skrypty zostają w kodzie nawet po odinstalowaniu aplikacji, jeśli motyw był przez nią modyfikowany. Sklep obwieszony dwudziestoma aplikacjami do opinii, wyskakujących okienek i podpowiedzi rozmiaru będzie miał kiepskie wyniki i nie ma na to prostego lekarstwa poza usunięciem części z nich.
WooCommerce jest odwrotnie: masz pełną kontrolę i pełną odpowiedzialność. Na dobrym hostingu, z sensownym cache’owaniem stron, zoptymalizowanymi obrazami i motywem, który nie ładuje pół biblioteki JavaScriptu na stronie produktu, potrafi być bardzo szybki. Na współdzielonym hostingu za kilkadziesiąt złotych rocznie, z motywem uniwersalnym i kilkudziesięcioma wtyczkami — nie będzie.
Jedna pułapka specyficzna dla WooCommerce warta osobnej wzmianki: domyślny mechanizm odświeżania fragmentów koszyka wykonuje zapytanie na każdej stronie i skutecznie psuje działanie cache’a. W sklepach, które zgłaszają mi się z problemem wolnego ładowania, to jedna z pierwszych rzeczy, które sprawdzam.
WooCommerce wystawia dane strukturalne produktu samodzielnie, bez dodatkowych wtyczek. Nie zawsze są kompletne — brakuje w nich zwykle ocen, dostępności w pełnym zakresie czy informacji o wariantach — ale podstawa jest.
Na Shopify odpowiada za to motyw i różnice między motywami są duże. Nowe, oficjalne motywy generują poprawny znacznik produktu, starsze i te kupione na rynku wtórnym potrafią nie generować go wcale albo wystawiać niekompletny. Weryfikuję to zawsze ręcznie, testerem wyników z elementami rozszerzonymi, na kilku różnych produktach.
Zarządzanie tytułami i opisami meta wygląda odwrotnie. Shopify daje proste pola w panelu przy każdym produkcie i kolekcji, i na tym koniec — do budowania szablonów tytułów dla całego katalogu potrzebna jest aplikacja. WooCommerce w połączeniu z wtyczką SEO daje w tym miejscu znacznie więcej: szablony na poziomie typu treści, warunkowe reguły, masową edycję.
Osobna sprawa to treść na kategoriach. W WooCommerce opis kategorii to normalne pole z edytorem i możesz w nim umieścić rozbudowany tekst, a przy odrobinie pracy nad motywem — także rozwijaną sekcję pod listingiem. Na Shopify opis kolekcji jest w praktyce jednym blokiem nad listą produktów, co ogranicza to, co da się zrobić bez ingerencji w szablon.
Shopify polecam wtedy, gdy sklep ma być prowadzony bez stałego wsparcia technicznego, asortyment jest w miarę stabilny, a priorytetem jest to, żeby nic się nie psuło. Dostajesz przewidywalną strukturę, sensowną wydajność bez pracy i mniej rzeczy, które można nieumyślnie zepsuć. Płacisz za to brakiem dostępu do warstwy technicznej i zależnością od aplikacji.
WooCommerce wybrałbym przy dużym i zmiennym katalogu, złożonym filtrowaniu, treściowej strategii SEO opartej na rozbudowanych kategoriach i poradnikach, a także wszędzie tam, gdzie potrzebne są niestandardowe rozwiązania techniczne. Warunek jest jeden i jest twardy: musi być ktoś, kto tym sklepem opiekuje się technicznie. WooCommerce bez opieki degraduje się sam, przez aktualizacje, narastające wtyczki i hosting, który przestał wystarczać dwa lata temu.
Sam wybór silnika nie wypozycjonuje sklepu i nie ma platformy, która robi SEO za Ciebie. Zestaw problemów do rozwiązania jest w każdej z nich inny, ale liczba godzin, którą trzeba na nie przeznaczyć, wychodzi zaskakująco podobna.
Używamy plików cookies, aby ułatwić Ci nawigację oraz wykonywanie określonych funkcji. Szczegółowe informacje o wszystkich plikach cookies znajdziesz w każdej kategorii zgody poniżej.
Pliki cookies oznaczone jako "Niezbędne" są przechowywane w Twojej przeglądarce, ponieważ są one kluczowe dla zapewnienia podstawowych funkcji strony.
Używamy również plików cookies firm trzecich, które pomagają nam analizować, w jaki sposób korzystasz z tej strony, zapamiętują Twoje preferencje oraz dostarczają treści i reklamy odpowiednie dla Ciebie. Te pliki cookies będą przechowywane w Twojej przeglądarce tylko za Twoją uprzednią zgodą.
Możesz zdecydować, czy chcesz włączyć lub wyłączyć niektóre bądź wszystkie te pliki cookies, jednak wyłączenie niektórych z nich może wpłynąć na Twoje doświadczenia podczas przeglądania strony.
| Cookie | Czas przechowywania | Opis |
|---|---|---|
| __cf_bm | 13 minutes | Cloudflare bot management — distinguishes humans from bots. |
| rc::* | Persistent | Google reCAPTCHA — localStorage holding anti-bot challenge state. |
| Cookie | Czas przechowywania | Opis |
|---|---|---|
| wpEmojiSettingsSupports | Session | WordPress — sessionStorage flag caching whether the browser can render emoji (feature detection). |
| ytidb* | Persistent | YouTube — IndexedDB storing playback/search state for embedded videos. |
| Cookie | Czas przechowywania | Opis |
|---|---|---|
| _ga_* | 400 days | Google Analytics 4 — persists session state per property. |
| _ga | 400 days | Google Analytics — distinguishes unique users via a client id. |
| Cookie | Czas przechowywania | Opis |
|---|---|---|
| NID | 183 days | Google — stores preferences for personalized ads. |
| fr | 90 days | Meta — encrypted Facebook id and browser id for ads. |
| _gcl_au | 90 days | Google AdSense/Ads — experiments with advertising efficiency (conversion linker). |
| Cookie | Czas przechowywania | Opis |
|---|---|---|
| __Secure-YNID | 180 days | |
| YSC | Session | |
| __Secure-ROLLOUT_TOKEN | 180 days | |
| VISITOR_INFO1_LIVE | 180 days | |
| VISITOR_PRIVACY_METADATA | 180 days | |
| datr | 400 days | |
| sb | 400 days | |
| wd | 7 days |