SEO podczas migracji sklepu - jak nie stracić rankingów
Najczęstszy bolesny scenariusz migracji: technika gładka, dane przeniesione, klient szczęśliwy w pierwszym tygodniu. Trzy miesiące później Search Console pokazuje -40% organicznego ruchu. Klient dzwoni, pyta „co się stało". Co się stało - Google przestał ufać domenie, bo migracja zerwała wszystkie sygnały SEO budowane latami. Przy dobrym planie to się nie dzieje. Przy braku planu - prawie zawsze.
Spis treści (10)
W skrócie
- 1. Mapa redirectów 301 obowiązkowa - każdy stary URL → odpowiadający nowy
- 2. Zachowaj URL wherever possible - najmniej zmian = najmniej ryzyka
- 3. Sitemap.xml submit do Search Console w cutover day
- 4. Schema.org structured data - przenieś wszystkie istniejące
- 5. Monitorowanie 4-12 tygodni po migracji - Google potrzebuje czasu
- 6. 301 nie 302 - permanent, nie temporary
Co Google widzi przy migracji
Google wie, że twój sklep istnieje od lat. Ma w indeksie:
- 10 000+ URL produktów
- 200+ URL kategorii
- 50+ URL CMS pages (about, contact, polityki)
- Backlinki do wielu z tych URL
- Authority domeny (zbudowane latami)
Każdy URL ma swoją „wartość" SEO (PageRank, authority, ranking dla konkretnych keywordów).
Migracja może zerwać to wszystko, jeśli:
- URL się zmienia
- Brak 301 redirectów
- Sitemap.xml nieaktualne
- Schema.org zerwane
Mapa redirectów - klucz wszystkiego
301 (Moved Permanently) mówi Google: „ten URL teraz jest tutaj, przenieś authority i ranking".
Co musisz zmapować:
1. Produkty.
Stary URL: /sklep/kategoria/srubokret-magnetyczny-12345.html
Nowy URL: /produkt/srubokret-magnetyczny
Wszystkie 10k+ produktów × redirect.
2. Kategorie.
/sklep/kategoria/narzedzia-reczne/
/kategoria/narzedzia-reczne
3. Strony CMS.
/o-nas.html → /o-nas
/regulamin → /regulamin (może zostać taki sam)
4. Stare promocje, archiwa.
/promocja/black-friday-2024 → /promocje (lub 404 jeśli zupełnie nieaktualne)
Format mapy redirectów:
CSV / TSV file z kolumnami old_url, new_url, status (301 / 302 / 410).
/sklep/kategoria/srubokret-magnetyczny-12345.html,/produkt/srubokret-magnetyczny,301
/sklep/kategoria/narzedzia-reczne/,/kategoria/narzedzia-reczne,301
/promocja/black-friday-2024,/promocje,301
/stara-strona-bez-zamiennika,,410
Implementacja:
- Magento / Shopware mają tabelę URL rewrite - wgrywa się CSV
- Nginx / Apache config z mapą redirectów
- Edge functions w CDN (Cloudflare Workers)
Zachowaj URL wherever possible
Najmniej ryzyka = najmniej zmian.
Możesz zachować:
- Strukturę URL produktów (
/produkt/{slug}) - Strukturę kategorii (
/kategoria/{slug}) - Strony CMS
Musisz zmienić:
- URL produktów ze starymi sufiksami (
.html) - URL z dziwnymi parametrami (
?p=1234) - URL z numerami ID (
/sklep?id=12345)
Rule of thumb: jeśli nowa platforma pozwala na taki sam URL - zachowaj. Jeśli wymaga zmiany - zaplanuj redirect.
Sitemap.xml - must update
sitemap.xml to deklaracja dla Google „te URL-e istnieją i są ważne".
W cutover day:
- Wygeneruj nowy sitemap.xml dla nowej platformy
- Submit do Google Search Console
- Wskaż w robots.txt:
Sitemap: https://twoja-domena.pl/sitemap.xml - Stary sitemap.xml (jeśli był) - pozostaw lub przekieruj na nowy
Crawl rate Google'a wzrośnie w pierwszych dniach po nowym sitemap.xml - wykrywa zmiany.
Schema.org structured data
Stary sklep miał:
Productschema na każdym PDPOrganizationna homepageBreadcrumbListna nawigacjiArticlena blog (jeśli był)FAQPage(jeśli FAQ)
Nowy sklep MUSI mieć te same schemata. Jeśli nie - utraty Rich Snippets w SERP.
Sprawdzenie:
- Google Rich Results Test
- Schema Markup Validator
- Crawl strony przez Screaming Frog z extraction strukturyzowanych danych
Robots.txt
W cutover day sprawdź:
# robots.txt
User-agent: *
Disallow: /admin/
Disallow: /checkout/
Disallow: /cart/
Sitemap: https://twoja-domena.pl/sitemap.xml
NIE zablokuj nowego sklepu (czasem deweloperzy zostawiają Disallow: / z dev environment).
Canonical URLs
Każda strona powinna mieć <link rel="canonical">:
- Produkt: canonical to ten produkt (jego URL)
- Filtered PLP: canonical do bazowej kategorii (NIE indeksuj filtra)
- Paginacja: canonical do pierwszej strony (lub osobno per page)
Stary sklep miał ten setup - nowy musi mieć ten sam.
Monitoring po migracji
Pierwsze 4 tygodnie:
- Google Search Console codziennie
- Organicznych URL: które się indeksują, które tracą pozycje
- Coverage report: jakie błędy 404/500
- Sitemap status
Tygodnie 4-12:
- Tygodniowy monitoring
- Porównanie rankings (Ahrefs, Senuto, Senuto)
- Backlinks check (czy nie tracimy)
Po 3 miesiącach:
- Pełen audit SEO
- Decyzje o korektach (które URL'e wymagają interwencji)
Typowy timeline odbudowy (jeśli migracja gładka):
- Tydzień 1-2: spadek ruchu 5-20% (Google się dostosowuje)
- Tydzień 3-4: ruch wraca do baseline'u
- Miesiąc 2-3: ruch przekracza baseline (nowa platforma lepsze Core Web Vitals)
Timeline odbudowy (jeśli migracja źle):
- Spadek 30-60% przez 2-6 miesięcy
- Odbudowa 6-12 miesięcy
Core Web Vitals po migracji
Nowy sklep często ma lepsze CWV (Hyvä, Shopware modern, etc.). To plus dla SEO w średnim terminie.
Ale w pierwszych tygodniach po cutover field data (CrUX) wciąż pokazuje stare wartości (28-dniowe okno). Google reaguje na to z opóźnieniem.
Najczęstsze błędy SEO migracji
1. Brak mapy redirectów dla all URL. Mapują 80% URL, reszta → 404. Google traci 20% indeksu.
2. 302 zamiast 301. 302 (temporary) NIE przenosi authority. 301 (permanent) - tak. Klasyczny błąd.
3. Chained redirects. URL A → URL B → URL C → URL final. Każdy hop = utrata ~10% authority. Powinno być A → final direct.
4. Brak monitoringu po migracji. Cutover → cisza przez 3 miesiące → klient pyta „czemu spadek".
5. Sitemap nieaktualne miesiącami. Stara sitemap z URL-ami które już nie istnieją. Google się gubi.
6. Brak schema migration. Nowy sklep bez struktury Product. Rich Snippets znikają.
7. Maintenance page bez 503. Cutover ma downtime. Strona maintenance powinna zwracać HTTP 503 (service unavailable) - Google przeczeka i wróci. Bez 503 → traktuje jako 404 i deindeksuje.
FAQ
Jak długo trzymać redirecty 301? Co najmniej 1 rok. Realnie - minimum 2-3 lata. Niektóre projekty trzymają forever (mała koszt, duża wartość).
Czy mogę używać 302 dla testów? Tak, jeśli przekierowanie jest temporary (np. cutover gradual). Po stabilizacji - zmień na 301.
Co z URL produktów out-of-stock? Nie usuwaj. Zostaw URL, dodaj „nie dostępne" + sugerowane alternatywy. URL nie ginie, Google wciąż go indeksuje.
Czy migracja zawsze obniża SEO? Nie. Z dobrym planem - utrzymuje lub poprawia (lepsze CWV, lepsze schemata, lepsza struktura).
Co z hreflang i multi-language podczas migracji? Hreflang musi być zachowany. Każda wersja językowa = osobna mapa redirectów.
Co dalej
- Pillar migracji: Migracje e-commerce
- Plan cutover: Plan cutover
- Mapowanie danych: Mapowanie danych
- Core Web Vitals: Core Web Vitals
O autorze
Jakub Owsianka
Architekt rozwiązania w WiseB2B - silniku platform B2B. Zaczynał po stronie biznesu (własne sklepy), potem deweloper, dziś projektuje wdrożenia dla sklepów z katalogami w dziesiątkach tysięcy SKU. W ostatnich latach wdrożył AI-development w zespole i funkcjonalności oparte o AI bezpośrednio w silniku sklepu.
Czytaj dalej w temacie wydajności
Wszystkie wpisyMasz pytanie do tego artykułu?
Dodatkowy kontekst, problem z własnym wdrożeniem, druga opinia - napisz wprost. Odpowiadam osobiście w 1-2 dni robocze.