Jak przenieśliśmy sklep 40 000 produktów z Magento na WooCommerce bez utraty SEO
Case study: migracja sklepu z Magento 2 na WooCommerce. 40 000 produktów, 200 000 zamówień historycznych, 1200+ URL-i. Plan przekierowań, import, weryfikacja SEO po 90 dniach.

Klient przyszedł do nas z typowym problemem: sklep na Magento 2, 40 000 produktów, 18 kategorii, 200 000 zamówień historycznych, stała miesięczna faktura za hosting + licencje 8 500 zł netto. Chciał tańszej infrastruktury (docelowo ~2 000 zł/mies.), ale bał się stracić pozycje SEO (sklep miał ~12 000 organicznych odwiedzin miesięcznie).
Trzymiesięczny projekt, całość migracji na WooCommerce + Hyvä theme (lekki front). Po 90 dniach od start na produkcji: ruch organiczny +4% vs. punkt odniesienia, przychód +8%, koszty infrastruktury -72%. Poniżej dokładny plan, co mogło się zepsuć, i jak to przetestowaliśmy.
Dlaczego migracja z Magento — rzeczywiste powody
Klient nie uciekał od Magento „bo nieładne”. Magento 2 to świetny stack dla dużych enterprise sklepów z zespołem deweloperskim. Ale:
- Koszt utrzymania — dedykowany hosting optymalizowany pod Magento (Elastic, Magento Cloud, SwiftOtter) = 5 000-15 000 zł/mies.
- Zespół rozwojowy — Magento wymaga certyfikowanych deweloperów (~200 zł/godz.). WooCommerce deweloper = 100-150 zł/godz.
- Społeczność — Magento traci popularność, Adobe Commerce staje się SaaS, własna instalacja „community edition” mniej aktywnie wspierana.
- Wtyczki — Magento marketplace ma wtyczki po 500-2000 €, WooCommerce ekwiwalenty często darmowe lub 100-300 $.
Klient szacował oszczędność: 6 500 zł/mies. przez 5 lat = 390 000 zł. Migracja kosztowała 55 000 zł. ROI = 7 miesięcy.
Plan — 4 fazy na 12 tygodni
Faza 1 (tygodnie 1-3): Audyt + mapowanie
- Full export Magento: produkty, kategorie, klienci, zamówienia, tax rules, shipping, content pages.
- URL inventory: Screaming Frog crawl całego sklepu → 1247 unikalnych URL-i (bez filter pages). Eksport do CSV.
- SEO punkt odniesienia: pozycje top 500 fraz w GSC, top 100 stron docelowych po ruchu, struktura linków wewnętrznych.
- Mapowanie atrybutów Magento → WooCommerce: atrybuty „configurable product” (Magento) = „variable product” (Woo). Custom attributes → product meta lub taxonomies. Duża robota mapowania na papierze przed kodem.
Faza 2 (tygodnie 4-8): Build na staging
- Świeży WordPress 6.5 + WooCommerce 8.7 + Hyvä-like lightweight theme (custom szablon blokowy).
- Import produktów przez WP All Import Pro + custom PHP dla przypadków brzegowych (products with 20+ variants).
- Import klientów bez haseł (Magento hashuje inaczej niż WP). Klient przy pierwszym logowaniu dostaje „reset hasła” email.
- Import zamówień jako historyczne (read-only, bez statusu przepływ pracy). Dla goszczenia faktury + reklamacje.
- SEO redirects — kluczowa robota. O tym niżej.
Faza 3 (tygodnie 9-10): Testing + optymalizacja
- Performance tuning: cache Redis, WP Rocket, CDN Bunny, image lazy load.
- Load test: 500 concurrent users, checkout flow. Simulator k6.
- Backup & rollback plan — jeśli pierwsze 24h pokażą katastrofę, wrócamy na Magento w 2h.
Faza 4 (tydzień 11-12): Uruchomienie produkcyjne + monitoring
- Uruchomienie w piątek wieczorem (low traffic).
- DNS cutover (ustawienie TTL na 300s dzień wcześniej, więc propagacja < 10 min).
- 24h intensywny monitoring (uptime, zamówienia flow).
- Komunikacja z Google (resubmit sitemap w GSC, request indexing top pages).
SEO redirects — najważniejszy element
Magento i WooCommerce używają różnych URL structures:
- Magento:
/catalog/product/view/id/1234/s/nazwa-produktu/lub/nazwa-kategorii/nazwa-produktu.html - WooCommerce:
/produkt/nazwa-produktu/(configurable przez permalinks)
Każdy jeden URL z Magento musi mieć 301 na odpowiedni URL w WooCommerce. 1247 URLi × jeden błąd = 1247 stron 404 = SEO disaster.
Jak to zrobiliśmy:
CSV z mappingiem: kolumny
old_url | new_url | http_status (301). Wygenerowane przez Screaming Frog + ręcznie zweryfikowane dla kluczowych (top 100 po ruchu).Wtyczka Redirection dla importu:
wp redirection import --input=redirects.csv --group=magento-migrationDodatkowe pułapki:
- Magento
.htmlextension na kategoriach → WooCommerce bez. Osobna reguła regex^(.*)\.html$→$1/. - Filtry Magento (
?color=red&size=L) → WooCommerce nie ma identycznej URL struktury. 410 Gone dla filter URLs (Google zrozumie że content zniknął). - Paginacja: Magento
?p=2→ WooCommerce/page/2/. Osobne reguły.
- Magento
Testing 301s przed uruchomieniem produkcyjnym:
# test 100 starych URLi
for url in $(cat top100-magento-urls.txt); do
status=$(curl -s -o /dev/null -w "%{http_code}→%{redirect_url}" "$url")
echo "$url → $status"
done- Po uruchomieniu produkcyjnym monitoring w GSC: Coverage → pages with redirect. Dzień po dniu liczba 404-ek powinna spadać do zera.
Czym okazały się największe problemy
1. Atrybuty configurable product
Magento configurable = master SKU + child SKUs per kombinacja. WooCommerce variable product = 1 master + n variations. Mapping 1:1 teoretycznie prosty, ale Magento pozwala na „configurable of configurables” (master → configurable A → simple variants) — WooCommerce nie. Dla 42 produktów z taką strukturą przepisaliśmy na flat variable products.
2. Customer groups / B2B tiers
Magento miał 5 customer groups z różnymi cenami. WooCommerce w vanilla nie ma — użyliśmy Wholesale Prices + custom meta fields + modyfikacja woocommerce_product_get_price filter dla logiki.
3. Historical orders performance
200 000 zamówień w wp_posts table (post_type=‘shop_order’) zabija performance’u admina. Przeszliśmy na High-Performance Order Storage (HPOS) — WooCommerce 7.1+ ma natywne tabele wc_orders, wc_order_stats. Import trafił od razu do HPOS, klasyczne posts nigdy się nie napełniły.
4. Email templates
Magento miał własne templates maili (zamówienie, shipping, invoice). Woo używa własnych. Przepisaliśmy 12 maili — każdy po polsku + angielsku, z brandingiem sklepu.
5. Tax configuration
Polski VAT 23% / 8% / 5% / 0% na różne kategorie. Magento tax rules były skomplikowane (custom + overwrites per customer group). Zbudowaliśmy od nowa w WooCommerce zamiast importować — prostsze, czystsze.
Co pokazały dane po 90 dniach
Ruch organiczny (GSC):
- Dzień 0 (start na produkcji): punkt odniesienia 12 000 visits/mies.
- Tydzień 1-2: -18% (Google recalibracja, tzw. „SEO sandbox”)
- Tydzień 3-4: powrót do punkt odniesienia
- Tydzień 5-8: +2 do +5% above punkt odniesienia
- Tydzień 9-12: +4% vs punkt odniesienia
Pozycje top 500 fraz:
- 78% fraz: bez zmian lub poprawa
- 15% fraz: spadek 1-3 pozycje (akceptowalne)
- 7% fraz: spadek > 5 pozycji (naprawione przez dodatkowe redirects + content uzupełnienia)
Konwersja (Google Analytics):
- Dzień 0: punkt odniesienia 2.1%
- Tydzień 1-2: 1.8% (pusty koszyk, klienci się uczą nowego checkoutu)
- Tydzień 3+: 2.3-2.5% (wzrost — lepsza UX/performance)
Przychód:
- Q1 po migracji: +8% vs poprzednie Q (z uwzględnieniem sezonowości)
Infrastruktura:
- Magento hosting + licencje: 8 500 zł/mies.
- WooCommerce hosting (VPS + Redis): 480 zł/mies.
- CDN + misc: 200 zł/mies.
- Wtyczki premium: 100 zł/mies. (amortyzacja rocznej subskrypcji)
- Opieka techniczna (my): 1 500 zł/mies.
- Razem: 2 280 zł/mies. vs 8 500 wcześniej.
Kiedy NIE migrować z Magento
Jeśli Twoja firma:
- Ma > 100 000 SKU + > 1000 zamówień/dzień → Magento Commerce (paid) może być lepszy mimo kosztu.
- Ma integracje z ERP typu SAP / Oracle Commerce → Magento ma lepsze komponenty.
- Ma zespół z Magento certification inwestowany w stack.
- Ma custom moduły Magento (100+) których nikt nie udokumentował.
W tych case’ach koszt migracji może przekroczyć oszczędności 5-letnie. Każdy projekt jest indywidualny — audyt przed decyzją.
Rozważasz migrację z Magento, PrestaShop, Shopify na WooCommerce? Zaczynamy od darmowej konsultacji, gdzie szacujemy koszt migracji i realistyczny ROI. Skontaktuj się — odpowiadamy w ciągu 4 godzin.

Doświadczony WordPress Developer z ponad 14-letnim stażem w tworzeniu zaawansowanych stron i sklepów internetowych. Specjalizuje się w WordPressie, dedykowanych wtyczkach i motywach.
Więcej o autorze

