Migracja z WordPress do Next.js — redirecty 301 i pozycje SEO
Jak przenieść stronę z WordPress na Next.js bez utraty pozycji w Google? Eksport treści, mapowanie URL, redirecty 301, migracja obrazów i weryfikacja indeksacji.
Migracja z WordPress na Next.js to dobra i przyszłościowa inwestycja — szybsza strona, lepsze Core Web Vitals, zmniejszenie ryzyka narażenia na ataki i pełna kontrola nad kodem. O tym, czy zachowasz pozycje w Google, decyduje przemyślany, dobry plan SEO. Z dobrym planem przejście jest niemal niewidoczne dla wyszukiwarki, a bez niego ryzykujesz to, na co pracowałeś latami.
Cały ciężar spoczywa na URL-ach, które Google zaindeksował, przypisał im autorytet i rankuje na konkretne frazy. Zabezpieczysz je — migracja jest niewidoczna dla algorytmu. Pominiesz je — konsekwencje są cztery:
utracone pozycje — Google widzi nowe URL-e jako nowe strony, bez wieloletniej historii,
błędy 404 — stare adresy przestają działać,
utratę backlinków — linki zewnętrzne prowadzą donikąd,
spadek ruchu organicznego na tygodnie lub długie miesiące.
Migracja krok 1: Inwentaryzacja tego co aktualnie masz w WordPress
Przed migracją zrób pełną, dokładną listę zaindeksowanych stron:
Code
# Pobierz wszystkie zaindeksowane URL-e z Google Search Console# GSC → Performance → Pages → Eksportuj do CSV# Lub użyj screaming frog / sitemapcurl -s https://twoj-wordpress.pl/sitemap_index.xml
Następnie stwórz arkusz z czterema kolumnami: stary URL, nowy URL, status (migruj/Redirect 301 to stałe przekierowanie informujące przeglądarkę i wyszukiwarki, że zasób został trwale przeniesiony pod nowy adres./usuń) oraz priorytet (ruch organiczny).
Migracja krok 2: Eksport treści z WordPress
Code
# WP-CLI — eksport do JSON (najlepsze do programowej migracji)wp post list --post_type=post --format=json --fields=ID,post_title,post_name,post_content,post_date,post_excerpt > posts.jsonwp post list --post_type=page --format=json --fields=ID,post_title,post_name,post_content > pages.json# Eksport mediówwp media list --format=json --fields=ID,guid,post_title,alt_text > media.json
Alternatywą jest użycie WordPress REST API to interfejs udostępniający dane przez standardowe metody HTTP (GET, POST...) pod adresami zasobów — w WordPressie domyślnie pod /wp-json/.:
Code
// scripts/export-wordpress.tsasync function exportPosts() { let page = 1 let allPosts: any[] = [] while (true) { const res = await fetch( `https://twoj-wordpress.pl/wp-json/wp/v2/posts?per_page=100&page=${page}&_embed`, ) if (!res.ok) break const posts = await res.json() if (posts.length === 0) break allPosts = [...allPosts, ...posts] page++ } // Zapisz do pliku const fs = require('fs') fs.writeFileSync('wordpress-posts.json', JSON.stringify(allPosts, null, 2)) console.log(`Wyeksportowano ${allPosts.length} postów`)}
Migracja krok 3: Konwersja treści na MDX (lub import do CMS)
Kluczowym zadaniem jest zapewnienie, że każdy stary URL ma swój odpowiednik w nowej witrynie, dlatego jeśli jest taka możliwość - zachowaj strukturę URL. Jeśli zmiany nie da się uniknąć, musisz skonfigurować przekierowania 301 (permanent redirect) ze starych adresów na nowe.
Po pobraniu kolejny krok to zaktualizowanie lokalnych linków do obrazków w MDX to format Markdown rozszerzony o komponenty JSX, dzięki czemu w treści można używać interaktywnych lub niestandardowych komponentów.:
Code
# Zamień stare URL-e mediów na lokalne ścieżkised -i 's|https://twoj-wordpress.pl/wp-content/uploads/|/images/blog/|g' content/blog/*.mdx
Migracja krok 6: Weryfikacja przed przełączeniem
Lista działań do odchaczenia przed przełączeniem:
Każdy stary URL posiada redirect 301 lub odpowiednik w nowej strukturze
Sitemap zawiera wszystkie zmigrowane strony
Meta tagi (title, description) są poprawnie zachowane z WordPressa
Obrazy zostały przeniesione i są dostępne
Schema.org /
JSON-LD to format zapisu danych strukturalnych, który pomaga wyszukiwarkom lepiej zrozumieć treść strony.
zostały poprawnie zachowane lub odtworzone
Canonical URL-e są poprawne
robots.txt nie blokuje ważnych ścieżek
Google Search Console zostało poprawnie zweryfikowane na nowej stronie
Krok 7: Przełączenie i monitoring
Pierwszym krokiem jest wdrożenie nowej strony Next.js,
Monitoruj uważnie ruch w GA4, czyli Google Analytics 4, to aktualna wersja platformy analitycznej Google do pomiaru zdarzeń i zachowań użytkowników. przez 4-6 tygodni.
Spadek ruchu o 10–20% w pierwszym tygodniu jest normalny — Google musi przeindeksować nową strukturę. Sytuacja stabilizuje się w ciągu kolejnych 2–6 tygodni.
Często zadawane pytania
O autorze
Maciej Sala
Maciej Sala — project manager i frontendowiec z doświadczeniem w marketingu internetowym. Na co dzień pracuję z Reactem, Next.js i TypeScriptem, łącząc perspektywę produktową z praktycznym podejściem do kodu. Przez kilka lat związany z branżą gier wideo jako project manager i game designer.
Absolwent historii na Uniwersytecie Jagiellońskim i studiów podyplomowych z marketingu internetowego na Akademii Górniczo-Hutniczej w Krakowie. Poza pracą trenuje na siłowni, maluje figurki i realizuje własne projekty.
Kompletny przewodnik po migracji bloga z WordPress na Astro. Eksport przez REST API i WXR, mapowanie URL, przekierowania 301, migracja obrazów do astro:assets i monitoring pozycji w Google.
Jak korzystać z Google Search Console dla strony Next.js? Weryfikacja, sitemap, indeksacja, Core Web Vitals, crawl budget i najczęstsze problemy — praktyczny poradnik.
Zanim zaczniesz migrację, musisz wiedzieć dokąd. Matryca pięciu zmiennych (rozmiar serwisu, wydajność, e-commerce, model edycji treści, częstotliwość zmian) pokazuje, czy Twój następny stack to Astro, Next.js, czy nadal WordPress — zanim wydasz złotówkę na przepisywanie strony.