Shoper, IdoSell, Selly, Sky-Shop, PrestaShop, WooCommerce — punkt wyjścia jest zawsze ten sam. Najtrudniejsze nie są produkty, tylko adresy: Twój sklep ma w Google setki linków w formacie, którego nowy sklep nie zna, a po przełączeniu każdy z nich zwraca 404. Mój silnik rozpoznaje stare formaty i kieruje je na nowe adresy — a tam, gdzie da się odtworzyć stary kształt, adresy zostają identyczne.
Punkt wyjścia
Shoper, IdoSell czy Selly to wygodny start. Problem pojawia się po dwóch, trzech latach — abonament urósł, a sklep dalej nie jest Twój.
Wyższy plan, dodatkowe moduły, płatne integracje. Koszt stały, który trzeba wypracować, zanim zarobisz cokolwiek — a rachunek przychodzi też w miesiącach, w których sprzedaż stoi.
Zmiana, która zajmuje godzinę, nie jest możliwa, bo nie ma jej w panelu. Zostaje czekanie, aż producent uzna, że to dobry pomysł dla wszystkich swoich klientów naraz. Na własnym silniku dopisanie funkcji jest kwestią wyceny, nie cudzej roadmapy.
Certyfikat SSL. Na platformach abonamentowych bywa osobną pozycją: pierwszy rok w cenie promocyjnej, odnowienie wyraźnie droższe. Warto wiedzieć, za co się płaci — szyfrowanie i kłódka w przeglądarce są dziś darmowe. Certyfikaty Let's Encrypt wystawia się bez opłat, odnawiają się same, a przeglądarka traktuje je identycznie jak płatne. Opłata dotyczy certyfikatu komercyjnego z gwarancją finansową, której mały sklep nigdy nie wykorzysta.
Przyjazne adresy URL. Linki bez numerów potrafią być płatnym dodatkiem w rocznej subskrypcji — rzędu kilkuset złotych za coś, co gdzie indziej jest standardem. Jest w tym drugie dno: włączenie ich w działającym sklepie zmienia wszystkie adresy, więc stare i tak trzeba przekierować kodem 301. Płacisz co roku za zmianę, która sama w sobie jest małą migracją.
U mnie jedno i drugie jest domyślne. SSL siedzi w rocznym utrzymaniu i nie ma osobnej pozycji na fakturze. Adresy są czyste od pierwszego dnia — nie da się ich dokupić, bo nie ma za co.
Im dłużej zwlekasz, tym więcej zaindeksowanych adresów masz do uratowania i tym większe ryzyko, że nigdy nie odejdziesz. To nie przypadek, tylko model biznesowy.
Zanim wypowiesz umowę
To jest część, na której ludzie tracą najwięcej — nie na samej migracji, tylko na wypowiedzeniu umowy w złym momencie. Cztery rzeczy, które trzeba zrobić przed rezygnacją, a nie po niej.
Produkty, kategorie, opisy, klienci, historia zamówień. Po wygaszeniu konta panel przestaje być dostępny i nie ma skąd tych danych wziąć. Eksport zajmuje kwadrans, odtworzenie katalogu z niczego — tygodnie.
Plik eksportu zwykle nie zawiera zdjęć, tylko adresy, pod którymi leżą na serwerach platformy. Import zaciąga je po tych adresach — więc musi się odbyć, dopóki stary sklep jeszcze działa. Po wyłączeniu konta zostaje katalog bez ani jednego zdjęcia i nie ma ich skąd odzyskać. To najczęstszy nieodwracalny błąd przy wyprowadzce.
Jeśli domenę rejestrowała za Ciebie platforma, to ona może figurować jako abonent. Zanim wypowiesz umowę, sprawdź to w panelu domeny i — jeśli trzeba — wystąp o przeniesienie do własnego rejestratora. Domena to jedyna rzecz, której nie da się odtworzyć: bez niej tracisz adres, pocztę firmową i cały dorobek w Google.
Abonamenty bywają płatne z góry za rok i nie zawsze przewidują zwrot za niewykorzystaną część — sprawdź to w swojej umowie, bo warunki różnią się między dostawcami. Niezależnie od tego, stary sklep utrzymany jeszcze przez miesiąc po przełączeniu domeny jest tani w stosunku do tego, co daje: możliwość natychmiastowego cofnięcia się, gdyby coś nie zagrało.
Sedno sprawy
To jest pytanie, przez które większość sprzedawców zostaje na platformie. Rozłóżmy je na części.
Każda platforma buduje adresy po swojemu. Shoper wstawia w link identyfikator produktu i zostawia wielkie litery: /pl/p/Nazwa-Produktu/1234. PrestaShop robi /12-nazwa-produktu.html, IdoSell /product-pol-1234-nazwa.html, WooCommerce /produkt/nazwa/.
Jeżeli nowy sklep nie zna starego kształtu, Google przy pierwszym przejściu robotem dostaje 404 na każdym zaindeksowanym adresie. Efekt: wypadnięcie z wyników, a do tego klienci lądujący na pustej stronie błędu — z zakładek, z linków w mediach społecznościowych i z porównywarek.
Najprostsze wyjście to ustawić w nowym sklepie format Shopera i udawać, że nic się nie zmieniło. Tylko wtedy zostajesz z numerem w każdym adresie na zawsze — czyli dokładnie z tym, od czego uciekasz. To nie migracja, tylko przeprowadzka z tymi samymi meblami.
W silniku są to dwie osobne, niezależnie ustawiane rzeczy:
/produkt/, ale ustawiasz go sam. Świadomie bez identyfikatorów — adres ma być czytelny dla człowieka.Ten podział daje trzy rzeczy naraz. Ładne adresy od pierwszego dnia. Stare linki działają. I zero duplikatów w Google, bo stary wzorzec nigdy nie wyświetla strony — zawsze robi przekierowanie, więc każda treść ma jeden adres kanoniczny.
Wariant pierwszy: adresy zostają identyczne. Jeśli Twoja platforma buduje adres z samej nazwy produktu — tak działa na przykład WooCommerce — ustawiam ten sam prefiks i nowy sklep generuje linki co do znaku takie same jak stare. Nie ma wtedy żadnych przekierowań, bo nie ma czego przekierowywać. Z punktu widzenia Google sklep w ogóle nie zmienił adresów.
Wariant drugi: adresy zostają uporządkowane. Jeśli stary adres zawiera numer produktu — Shoper /pl/p/Nazwa/1234, PrestaShop /12-nazwa.html, IdoSell /product-pol-12-nazwa.html — nowy sklep daje czysty adres bez numeru, a stary kieruje na niego przekierowaniem 301. Ten wariant wybiera większość, bo numer w linku to jedna z rzeczy, od których się ucieka.
Niezależnie od wariantu nazwy w adresach przepisuję ze starego sklepu jeden do jednego — import przyjmuje je wprost z pliku eksportu, zamiast generować własne z nazwy produktu. Dzięki temu dopasowanie starych adresów jest pełne, a nie „prawie pełne". To ta jedna decyzja przy imporcie, która decyduje, czy przekierowania trafią w komplet linków, czy w dziewięćdziesiąt procent.
Wokół 301 narosło sporo lęku, więc warto to odczarować: to jest rutynowa operacja, za którą na platformie prawdopodobnie już kiedyś zapłaciłeś. Przyjazne adresy bez numerów bywają tam płatnym dodatkiem w rocznej subskrypcji — a ich włączenie w sklepie, który już działa, zmienia wszystkie linki i uruchamia dokładnie ten sam mechanizm: stary adres oddaje ruch nowemu kodem 301.
Innymi słowy: gdybyś kupił przyjazne adresy u siebie na platformie, przeszedłbyś przez to samo przekierowanie co przy migracji — tylko zapłaciłbyś za to co roku i został tam, gdzie jesteś. Przekierowanie 301 nie jest kosztem migracji, tylko normalnym sposobem, w jaki internet obsługuje zmianę adresu. Google zna ten mechanizm od dwudziestu lat i przenosi po nim wartość strony; kłopot pojawia się dopiero wtedy, gdy przekierowania nie ma i adres zwraca 404.
Dopasowanie idzie po nazwie, nigdy po numerze. Identyfikator ze Shopera nie ma nic wspólnego z numeracją w nowym sklepie — dopasowanie po nim wysłałoby klienta na przypadkowy produkt. Klient oglądający nie ten towar, po który przyszedł, to gorszy wynik niż uczciwe 404, więc silnik szuka wyłącznie po nazwie z adresu. Rozpoznaje przy tym zapis Shopera z wielkimi literami i przecinkami oraz kodowane polskie znaki.
Przekierowania zapisują się same. Rozpoznany stary adres ląduje w tabeli przekierowań z licznikiem trafień. Po miesiącu widzisz w panelu czarno na białym, które stare linki naprawdę żyją i ile ruchu przynoszą. Te, które przez pół roku nie zebrały ani jednego wejścia, można spokojnie usunąć.
/pl/p/Nazwa/1234. Wzorzec gotowy w panelu, razem z obsługą wielkich liter i przecinków, które ta platforma zostawia w linkach./product-pol-1234-nazwa.html. Wzorzec gotowy, dopasowanie po nazwie z pominięciem numeru./12-nazwa-produktu.html. Wzorzec gotowy. Dotyczy też sklepów na własnym serwerze, nie tylko abonamentowych..html. Wzorzec gotowy w panelu.Sklep może mieć wpisanych kilka starych formatów naraz — jeśli przenosił się już wcześniej, adresy z obu poprzednich platform będą działać.
Przebieg
Przy sklepie do kilkuset produktów całość zajmuje od kilku dni do dwóch tygodni. Kolejność jest ta sama niezależnie od tego, czy przenosisz dane sam, czy zlecasz mi całość — zmienia się tylko to, kto klika. Twój obecny sklep pracuje przez ten czas normalnie i przyjmuje zamówienia.
Produkty, kategorie, zdjęcia i opisy z panelu platformy do pliku CSV lub XML. Do tego lista zaindeksowanych adresów z Google Search Console i mapy witryny — to podstawa do ustawienia przekierowań.
Ważna kolejność: zdjęcia zaciągam po adresach ze starego sklepu, więc import musi się odbyć, zanim wyłączysz abonament platformy. Po wygaszeniu konta zdjęcia znikają razem z nim i nie ma ich skąd odzyskać. To pierwsza rzecz, którą ustalam przy każdej migracji.
Nowy sklep powstaje pod adresem typu test.twojadomena.pl. Twój obecny sklep nie jest w tym momencie dotykany w żaden sposób. Możesz klikać, testować i zgłaszać uwagi na spokojnie.
Dane przechodzą przez konwerter, który dopasowuje kolumny do formatu silnika i radzi sobie z krzakami w polskich znakach. Zdjęcia są przy wgrywaniu kompresowane — mniejszy transfer i szybsze karty produktów.
Nazwy w adresach przepisuję z eksportu jeden do jednego, potem ustawiam prefiksy własne i wzorce starej platformy, a na koniec sprawdzam je testerem na kilkudziesięciu prawdziwych adresach z Search Console. To moment, w którym rozstrzyga się, czy migracja będzie bolesna, czy nie.
Podpięcie bramki płatniczej, metod dostawy, paczkomatów InPost z mapą w koszyku oraz regulaminu i polityki prywatności. Paczkomaty wymagają Twojego bezpłatnego konta w InPoście — dostęp jest przypisany do domeny i nie da się go współdzielić.
Prawdziwe zamówienie z prawdziwą płatnością na małą kwotę: koszyk, wybór paczkomatu, płatność, e-mail potwierdzający, status w panelu. Dopiero po tym ruszamy domenę.
Zmiana DNS na nowy serwer. Stary sklep zostaw aktywny do końca opłaconego okresu — jeśli cokolwiek pójdzie nie tak, cofnięcie kierowania domeny to kwestia minut, a nie odbudowy sklepu.
Nowa mapa witryny do Search Console, obserwacja raportu błędów indeksowania i licznika trafień na przekierowaniach. Jeśli wyjdzie format adresu, którego nie przewidzieliśmy, dopisanie wzorca to jedna zmiana w panelu — działa od razu i wstecz, dla wszystkich adresów tego kształtu.
Ryzyko
Cztery rzeczy, które sprawiają, że nie ma tu momentu bez odwrotu.
Do przełączenia DNS sprzedajesz na starej platformie bez żadnych zmian. Nowy sklep stoi obok, na subdomenie. Nie ma dnia, w którym sklep jest wyłączony.
Każda aktualizacja struktury sklepu robi najpierw zrzut bazy. Nieudany zrzut oznacza, że aktualizacja w ogóle nie startuje — celowo w tej kolejności.
Twoje zamówienia i dane klientów nie leżą we wspólnej tabeli z cudzymi sklepami. Eksport całości to jeden plik, który dostajesz na żądanie, bez pytania o powód.
Dopóki konto na starej platformie żyje, powrót to przestawienie DNS. Dlatego radzę nie wypowiadać abonamentu przed migracją, tylko po miesiącu spokojnej pracy nowego sklepu.
Po migracji
Bez planów taryfowych i bez modułów do dokupienia. To pełen zakres, który wchodzi do każdego sklepu.
Koszty
Silnik ma wszystkie narzędzia migracyjne w panelu, więc nie musisz zlecać mi całości. Możesz kupić sam sklep i przenieść dane własnymi rękami — albo oddać mi robotę i dostać gotowe.
Utrzymanie: 499 zł rocznie — hosting, certyfikat SSL, kopie zapasowe i aktualizacje silnika, w tym te wynikające ze zmian w przepisach albo w API płatności. Bez prowizji od sprzedaży i bez opłat za liczbę produktów.
Co robię ja: stawiam sklep, podpinam domenę i certyfikat, przekazuję panel. Co robisz Ty: eksport ze starej platformy, dopasowanie kolumn, import, konfiguracja płatności i wysyłki, ustawienie wzorców adresów i sprawdzenie ich testerem.
499 zł i nic więcej — także w pierwszym roku. Płacisz tyle, bo część pracy bierzesz na siebie. Hosting, certyfikat SSL, kopie zapasowe i aktualizacje są w tej kwocie, a cena nie rośnie przy odnowieniu.
Sam poradzisz sobie, jeśli umiesz wyciągnąć eksport ze swojej platformy, ogarniasz plik CSV w arkuszu i wiesz, jak wygląda adres Twojego produktu. Reszta jest w panelu: import pokazuje podgląd przed zapisem, wzorce adresów masz gotowe do wyboru, a tester mówi wprost, gdzie trafi stary link — jeszcze zanim ruszysz domenę. Nie trzeba do tego programisty.
Oddaj mi to, jeśli masz kilkaset produktów z wariantami, eksport wychodzi porozrywany, albo po prostu nie chcesz brać na siebie odpowiedzialności za moment przełączenia domeny. Przy sklepie, który realnie zarabia, dzień przestoju kosztuje więcej niż cała migracja.
Można też pośrodku: kupujesz sklep, przenosisz produkty sam, a mnie zostawiasz sam moment przełączenia i ustawienie przekierowań. Wycenę takiej pomocy podaję po zobaczeniu, ile zostało do zrobienia.
Migracji nie da się uczciwie wycenić z cennika, bo dwa sklepy o tej samej liczbie produktów potrafią różnić się pracą o kilka dni. Patrzę na cztery rzeczy:
Wystarczy, że wyślesz mi adres sklepu i plik eksportu. Przejrzę je i podam jedną stałą kwotę za całość razem z zakresem na piśmie. Jeśli w trakcie okaże się, że doszła praca, o której nie było mowy, ustalamy to osobno — kwota z wyceny nie rośnie sama.
Abonament w planie pozwalającym na normalną sprzedaż to rząd 300 zł netto miesięcznie, w planach wyższych 700 zł i więcej. Do tego dochodzą pozycje, o których łatwo zapomnieć przy podpisywaniu — certyfikat SSL i przyjazne adresy URL bywają płatne osobno, w rocznych subskrypcjach. I jeszcze jedno: kwoty z cenników to zwykle stawki na pierwszy rok. Przy odnowieniu rosną, czasem znacząco.
Sklep na własnym silniku to 499 zł rocznie — w tej kwocie mieści się hosting, certyfikat SSL, kopie zapasowe i aktualizacje, a czyste adresy są domyślne. Tyle kosztuje rok, nie miesiąc. Kwoty orientacyjne, netto, stan na sierpień 2026 — cenniki platform zmieniają się często, sprawdź aktualne przed decyzją.
Pytania
Sprawdźmy Twój sklep, zanim wypowiesz umowę
Napisz, ile masz produktów i na jakiej platformie stoisz. Odpiszę, jak wyglądałyby adresy po migracji — a jeśli uznam, że przenoszenie się nie opłaca, powiem to wprost.