68% polskich stron MŚP nadal działa na WordPressie, według raportu W3Techs Polska z marca 2026, to dominujący CMS w segmencie firm do 250 pracowników. Jednocześnie wewnętrzne benchmarki agencji wykazują, że 53% migracji WordPress do nowoczesnych frameworków traci od 20 do 45% ruchu organicznego w pierwszych trzech miesiącach, niemal wyłącznie z powodu źle przeprowadzonej strategii przekierowań i braku kartografii URL 1:1. To nie jest problem techniczny Next.js. To problem metodologii migracji.
W tym przewodniku rozkładamy proces migracji SEO-bezpiecznej dla polskich firm, od auditu Screaming Frog, przez konfigurację 301 redirects w warstwie aplikacji i Cloudflare, aż po monitoring 90-dniowy. Konkretne snippety kodu, realne przykłady z polskich hostingów (cyber_Folks, OVH PL, home.pl, nazwa.pl, MyDevil) i checklist zgodny z RODO. Jeśli planujesz refonte techniczną, ten artykuł powinien być twoją mapą drogową.
1. Audit URL, fundament każdej bezpiecznej migracji
Pierwszy błąd, który widzimy u 8 na 10 klientów: rozpoczęcie pracy nad nowym frontendem Next.js bez kompletnej inwentaryzacji istniejących URL-i. To gwarancja utraty rankingów. Każdy URL indeksowany przez Google, każda strona linkowana z zewnątrz, każdy obraz z ruchem z Google Images, to aktywa SEO, które muszą zostać zmapowane przed jakąkolwiek migracją.
Narzędziem referencyjnym jest Screaming Frog SEO Spider. Licencja Pro (259 GBP/rok) pozwala przeskanować bez limitu URL, niezbędne dla stron powyżej 500 podstron. Konfiguracja crawla:
Configuration → Spider → Crawl
[x] Crawl All Subdomains
[x] Crawl Outside of Start Folder
[x] Check Images, CSS, JavaScript
[x] Follow Internal/External nofollow
Configuration → User-Agent
→ Googlebot (Smartphone), by symulować mobile-first indexing
Po zakończeniu skanu eksportuj raporty kluczowe: Internal HTML (wszystkie strony 200 OK), Response Codes (404, 301, 302 obecne), Images (z atrybutami alt), oraz Page Titles i Meta Descriptions. Dodatkowo z Google Search Console wyciągnij raport Performance filtrowany za ostatnie 16 miesięcy, każdy URL generujący choć jedno kliknięcie organiczne musi zostać zachowany lub przekierowany.
Dla polskich stron pamiętaj o specyfice: jeśli używasz WPML lub Polylang dla wersji wielojęzycznych, każda lokalizacja generuje osobne URL-e (`/en/`, `/de/`, `/uk/`), wszystkie muszą trafić do mapowania. Screaming Frog wykrywa hreflang automatycznie w zakładce Hreflang.
Output tej fazy: jeden arkusz Google Sheets z kolumnami `URL_stary`, `Typ_strony`, `Status_HTTP`, `Trafic_GSC_16m`, `Backlinki_Ahrefs`, `Priorytet_migracji`. Bez tego dokumentu, nie zaczynaj migracji.
2. Kartografia 1:1, mapowanie starych URL-i na nową strukturę Next.js
Po audicie przychodzi praca strategiczna: zdefiniowanie nowej architektury URL w Next.js i zmapowanie każdego starego URL-a do nowego. Zasada żelazna: jeden stary URL = jeden nowy URL ze statusem 301. Brak wyjątków, brak grupowania kilku starych adresów do strony kategorii ("bo i tak nie miały ruchu"). Google interpretuje takie konsolidacje jako utratę kontekstu i obniża pozycje.
Next.js 15 z App Router daje elastyczność w strukturze trasy. Typowe mapowanie WordPress → Next.js dla polskiej strony korporacyjnej:
WordPress (stara) Next.js 15 App Router (nowa)
────────────────────────────────────────────────────────────────────
/?page_id=42 → /uslugi/strony-internetowe
/category/blog/marketing/ → /blog?kategoria=marketing
/2024/09/15/jak-zwiekszyc-konwersje/ → /blog/jak-zwiekszyc-konwersje
/produkt/szkolenie-seo/ → /szkolenia/seo
/?p=128 → /blog/audyt-techniczny-2026
/o-nas/ → /agencja
/kontakt/ → /kontakt
/strona/2/ → /blog?strona=2
Trzy pułapki, na które uważać:
- Trailing slash : WordPress domyślnie używa końcowego `/`. Next.js domyślnie nie. Decyzja na poziomie `next.config.js` z opcją `trailingSlash: true` (jeśli chcesz utrzymać spójność z istniejącą strukturą) lub `false` z 301 redirect wszystkich starych URL-i ze slashem na wersję bez. Niezdefiniowanie tej polityki = duplicate content w oczach Google.
- Polskie znaki w slugach : `/o-działalności/` na WordPressie często działa poprawnie, ale w Next.js zalecamy ASCII-only (`/o-dzialalnosci/`) dla maksymalnej kompatybilności z toolingiem międzynarodowym. 301 redirect ze starego URL-a z diakrytykami.
- Query strings : URL-e typu `?p=128`, `?cat=4`, `?s=marketing` (wyszukiwarka), wszystkie muszą mieć obsługę w warstwie redirectów lub w `app/page.tsx` z odczytem `searchParams`.
Praktyczna rekomendacja: jeśli wahasz się nad strukturą, sprawdź naszą stronę refonte techniczna, szczegółowo opisaliśmy decyzje architektoniczne dla 4 typów polskich stron biznesowych.
3. Implementacja 301 redirects, warstwa Next.js + Cloudflare
Mając kompletną mapę URL-i, implementujesz przekierowania w dwóch warstwach: aplikacyjnej (Next.js) dla logiki dynamicznej, oraz edge (Cloudflare Workers lub Rules) dla wydajności i odciążenia origin server. Dla polskich hostingów warto rozważyć:
- cyber_Folks, Cloudflare integruje się natywnie przez DNS, plan biznesowy obejmuje Page Rules
- OVH PL, pełna kontrola DNS, Cloudflare jako standalone proxy
- home.pl, wsparcie dla Cloudflare przez zmianę nameserverów
- nazwa.pl, DNS API umożliwia automatyzację
- MyDevil, najbardziej elastyczny, SSH + DNS API dla zaawansowanej konfiguracji
Warstwa Next.js, `next.config.js` z funkcją `redirects()` :
// next.config.js
module.exports = {
async redirects() {
return [
// Stałe przekierowania strukturalne
{
source: '/o-nas',
destination: '/agencja',
permanent: true, // 308 dla zachowania metody HTTP, lub false dla 307
},
{
source: '/category/blog/:path*',
destination: '/blog?kategoria=:path*',
permanent: true,
},
// Mapowanie ID WordPress → slugi
{
source: '/',
has: [{ type: 'query', key: 'p', value: '128' }],
destination: '/blog/audyt-techniczny-2026',
permanent: true,
},
];
},
};
Dla powyżej 100 redirectów rekomendujemy generowanie tablicy z pliku CSV/JSON podczas build, by uniknąć ręcznej edycji pliku konfiguracyjnego. Przykład loadera:
// next.config.js
const redirectsData = require('./data/redirects-map.json');
module.exports = {
async redirects() {
return redirectsData.map((row) => ({
source: row.from,
destination: row.to,
permanent: true,
}));
},
};
Warstwa Cloudflare, dla redirectów masowych (powyżej 1000) preferuj Bulk Redirects dostępne w planie Pro (20 USD/miesiąc). Upload pliku CSV z trzema kolumnami: `source_url`, `target_url`, `status_code (301)`. Cloudflare obsłuży przekierowanie na edge bez dotykania serwera Vercel/origin, drastycznie redukuje TTFB i koszty inwokacji funkcji.
Weryfikacja: po deploy odpal Screaming Frog na pliku CSV ze starymi URL-ami w trybie List Mode. Każdy stary URL musi zwrócić status 301 z poprawnym `Location` header. Akceptowalny jest również 308 (Permanent Redirect), Google traktuje obie wartości równoważnie od 2017 roku.
4. Search Console Change of Address, sygnał oficjalny do Google
Jeśli migracja obejmuje również zmianę domeny (np. ze `stara-agencja.pl` na `nowa-agencja.pl`), narzędzie Change of Address w Google Search Console to obowiązkowy krok. Pomija się go zaskakująco często, co kosztuje tygodnie opóźnienia w przeindeksowaniu nowej domeny.
Procedura krok po kroku:
- Dodaj nową domenę jako Property w GSC (preferowany typ Domain Property, weryfikacja przez DNS TXT record).
- Upewnij się, że nowa domena ma indeksowane minimum 10-20 stron z pełnym contentem.
- Zweryfikuj, że 301 redirects działają dla minimum 5 testowych URL-i ze starej domeny.
- Wejdź w Property starej domeny → Settings → Change of Address → wybierz nową domenę → potwierdź.
- Google wyśle automatyczne sprawdzenie 301 redirectów i potwierdzi przeniesienie.
Jeśli migracja zostaje w obrębie tej samej domeny (najczęstszy scenariusz przy migracji CMS), Change of Address nie jest potrzebny. Wystarczy upewnić się, że sitemap.xml zostanie zaktualizowany i wysłany w GSC pod Sitemaps.
Dla polskich stron z aspektem RODO: pamiętaj o weryfikacji, czy nowa wersja zawiera aktualną politykę prywatności i banner cookies zgodny z UODO. Migracja techniczna to dobry moment na przegląd zgodności, wymóg ten dotyczy każdej strony obsługującej dane osobowe odwiedzających z UE.
5. Zyski wydajności, co realnie zyskujesz przechodząc na Next.js
Migracja na Next.js to nie tylko ryzyko SEO do zarządzania, to przede wszystkim znaczący skok wydajności, który długoterminowo poprawia rankingi. Realne metryki z migracji klientów Go To Agency w 2025-2026:
- Largest Contentful Paint (LCP) : WordPress + WooCommerce + 12 pluginów ≈ 3,8s, Next.js 15 z ISR + obrazy Next/Image ≈ 1,4s
- First Input Delay (FID/INP) : WordPress ≈ 180ms, Next.js ≈ 45ms (eliminacja heavy jQuery dependencies)
- Cumulative Layout Shift (CLS) : WordPress ≈ 0,18, Next.js ≈ 0,03 (komponent Image z explicite zdefiniowanymi wymiarami)
- Time to First Byte (TTFB) z hostingiem polskim cyber_Folks ≈ 320ms, Vercel Edge + Cloudflare cache PL ≈ 80ms
Te liczby przekładają się bezpośrednio na Core Web Vitals, które Google używa jako sygnał rankingowy od czerwca 2021. Po migracji dobrze przygotowanej obserwujemy wzrost ruchu organicznego rzędu +18 do +34% w horyzoncie 4-6 miesięcy, paradoksalnie często większy niż przed migracją, mimo początkowych wahań.
Architektura zalecana dla polskich stron biznesowych w 2026:
Frontend Next.js 15 App Router
+ Static Site Generation (SSG) dla stron statycznych
+ Incremental Static Regeneration (ISR) dla bloga (revalidate 3600s)
+ Server Components dla SEO-critical content
+ Hosting Vercel (region Frankfurt fra1) lub self-host na MyDevil
Backend / CMS
+ Headless WordPress (REST API lub WPGraphQL)
LUB Sanity / Strapi / Payload CMS
+ Hosting CMS niezależny, np. WordPress na cyber_Folks
(jeśli zespół redaktorów zna interfejs WP)
Edge / CDN
+ Cloudflare (plan Pro)
+ Image optimization przez Next/Image (AVIF/WebP automatycznie)
Monitoring
+ Vercel Analytics (Core Web Vitals real-user)
+ Google Search Console + Google Analytics 4
Setup hybrydowy "Headless WordPress + Next.js frontend" jest szczególnie atrakcyjny dla polskich firm, których redaktorzy nie chcą porzucać znanego interfejsu WP, zachowujesz UX edycji, zyskujesz wydajność i SEO frontendu.
6. Monitoring 30/60/90 dni, protokół obserwacji po migracji
Deploy nowej wersji to nie koniec, to początek krytycznego okna 90 dni, w którym musisz aktywnie monitorować efekty SEO i interweniować przy anomaliach. Protokół Go To Agency:
Dni 1-7 (faza krytyczna) :
- Codzienny check w Google Search Console → Coverage : liczba Indexed pages nie powinna spaść więcej niż o 5%. Spadek powyżej 10% = problem z 301 redirects lub robots.txt
- Codzienny check URL Inspection dla 10 strategicznych stron, sprawdź czy Google indeksuje nową wersję
- Monitoring real-user Core Web Vitals przez Vercel Analytics, flaga przy degradacji powyżej 20%
- Server logs analysis : czy Googlebot dociera do nowych URL-i? Czy są błędy 500/503?
Dni 8-30 (stabilizacja) :
- Tygodniowy crawl Screaming Frog na nowej stronie, szukaj 404, broken internal links, brakujących meta description
- Tygodniowy review GSC Performance : trend kliknięć i wyświetleń. Dropy specyficzne dla konkretnych query = okazja do interwencji on-page
- Aktualizacja sitemap.xml i ponowne submission w GSC
- Sprawdzenie ahrefs/Semrush czy backlinki nadal wskazują na stare URL-e, kontakt z najważniejszymi linkującymi domenami z prośbą o update
Dni 31-90 (optymalizacja) :
- Comparative analysis ruchu YoY (rok do roku), uwzględnienie sezonowości polskiego rynku
- Identyfikacja stron, które straciły pozycje → analiza intencji wyszukiwania i optymalizacja contentu
- Audit linków wewnętrznych, czy nowa struktura nawigacji wzmacnia strony strategiczne?
- Wdrożenie schema markup (Organization, BreadcrumbList, Article) jeśli nie zostało zrobione w fazie build
Realny przypadek z naszej praktyki: klient z branży B2B SaaS w Krakowie zmigrował z WordPressa do Next.js w marcu 2025. W tygodniu 2 zaobserwowaliśmy spadek Indexed pages z 847 do 612 (-28%). Diagnoza: 40 stron tagowych WordPress nie zostało zmapowanych ("przecież nie mają ruchu"). Implementacja brakujących 301 → w tygodniu 4 powrót do 831 stron. Bez tej szybkiej interwencji szacujemy stratę 4-6 tygodni pozycjonowania.
Podsumowanie i checklist final
Migracja WordPress → Next.js w 2026 jest technicznie bezpieczna pod warunkiem rygorystycznej metodologii. 53% migracji tracących ruch to nie wina frameworka, to wina pominiętego auditu, niekompletnej kartografii URL i braku monitoringu post-migration.
Checklist do druku przed startem projektu:
- [ ] Pełny crawl Screaming Frog z eksportem do Google Sheets
- [ ] Dane GSC za 16 miesięcy zaimportowane do arkusza
- [ ] Mapowanie 1:1 wszystkich URL-i z ruchem organicznym
- [ ] Polityka trailing slash zdefiniowana
- [ ] 301 redirects zaimplementowane w Next.js + Cloudflare
- [ ] Test każdego redirectu w Screaming Frog List Mode
- [ ] Sitemap.xml zaktualizowany i wysłany do GSC
- [ ] Change of Address w GSC (jeśli zmiana domeny)
- [ ] Plan monitoringu 30/60/90 dni przypisany do osoby
- [ ] Zgodność RODO/UODO zweryfikowana na nowej wersji
Jeśli przygotowujesz migrację dla polskiej strony i chcesz konsultacji z agencją mającą doświadczenie zarówno z polskim rynkiem, jak i nowoczesnymi stackami JavaScript, opisz nam projekt w 5 minutach. Odpowiadamy w 24 godziny z konkretną wyceną i timeline. Możesz również poznać nasz zespół i metodologię pracy zanim wyślesz brief.
Migracja techniczna to inwestycja w 5-letnią perspektywę technologiczną firmy. Robiona dobrze, fundament wzrostu. Robiona po łebkach, kosztowny krok wstecz. Wybór metodologii należy do ciebie.

