15%

Zaoszczędź 15% na wszystkich usługach hostingowych

Sprawdź swoje umiejętności i zdobądź Rabat na dowolny plan hostingowy

Użyj kodu:

Skills
Rozpocznij
23.10.2024

Jak przenieść stronę Drupal do WordPress: Kompletny przewodnik techniczny

Migracja z Drupal do WordPress oznacza przeniesienie zawartości bazy danych, plików multimedialnych, struktury URL i kont użytkowników z architektury CMS opartej na encjach Drupal do modelu typów postów WordPress — bez utraty wartości SEO, zerwania wewnętrznych linków ani powodowania przestojów. Proces obejmuje import treści na poziomie bazy danych za pomocą wtyczki FG Drupal to WordPress, a następnie mapowanie permalinków, konfigurację przekierowań 301 i rekonstrukcję motywu.

Ten przewodnik obejmuje każdą fazę migracji w precyzyjnych szczegółach technicznych: strategię tworzenia kopii zapasowych przed migracją, konfigurację środowiska, wyodrębnianie danych uwierzytelniających bazy danych, import oparty na wtyczkach, uzgadnianie struktury URL i walidację po uruchomieniu. Niezależnie od tego, czy korzystasz z Drupal 7, 9 czy 10, poniższy przepływ pracy ma zastosowanie.

Dlaczego warto migrować z Drupal do WordPress

Drupal to potężny framework, ale jego złożoność wiąże się z realnym kosztem operacyjnym. Aktualizacje modułów często wprowadzają przełomowe zmiany, tworzenie motywów wymaga znajomości szablonów Twig, a rutynowe edycje treści wymagają zaangażowania programistów. WordPress natomiast oferuje łagodniejszą krzywą uczenia się, znacznie większy ekosystem wtyczek i niższy całkowity koszt posiadania dla witryn z dużą ilością treści, które nie wymagają szczegółowej kontroli dostępu Drupal ani złożonego modelowania treści.

Ważny jest również argument dotyczący wydajności. Instalacja WordPress na odpowiednio skonfigurowanym środowisku VPS Hosting z LiteSpeed, buforowaniem obiektów i pamięcią masową NVMe będzie konsekwentnie przewyższać wydajnością rozbudowany stos Drupal na infrastrukturze współdzielonej.

Kluczowe motywacje do migracji według przypadku użycia:

  • Zespoły redakcyjne sfrustrowane interfejsem administratora Drupal i powolnymi przepływami pracy przy publikowaniu
  • Agencje konsolidujące witryny klientów na jednym zarządzalnym CMS
  • Programiści redukujący koszty utrzymania wynikające z łańcuchów zależności modułów Drupal
  • Zespoły SEO poszukujące ściślejszej integracji z natywnymi narzędziami WordPress, takimi jak Yoast lub Rank Math

Drupal vs. WordPress: Porównanie architektury

Zrozumienie strukturalnych różnic między obiema platformami jest niezbędne przed rozpoczęciem pracy. Błędne założenia dotyczące sposobu przechowywania treści są główną przyczyną nieudanych lub niekompletnych migracji.

WymiarDrupalWordPress
Model treściEncje (węzły, terminy taksonomii, pola)Typy postów (posty, strony, CPT)
Schemat bazy danychWysoce znormalizowany, wiele tabel na typ treściPłaski model wp_posts + wp_postmeta
Routing URLAliasy ścieżek przechowywane w tabeli path_aliasReguły przepisywania permalinków przez .htaccess
Silnik motywówSzablony Twig + hooki PreprocessHierarchia szablonów PHP + hooki
Role użytkownikówSzczegółowe uprawnienia na rolęStała hierarchia ról (Subskrybent → Administrator)
Obsługa mediówEncja zarządzanych plików z załącznikami pólBiblioteka mediów z typem postu załącznika
WielojęzycznośćPodstawowy moduł LanguageWymaga wtyczki WPML lub Polylang
REST APIModuły podstawowe JSON:API + RESTWbudowane WP REST API
Złożoność hostinguWysoka (wymaga Composer, Drush)Niska (standardowy stos LAMP/LEMP)
Ekosystem wtyczek/modułów~50 000 modułów~60 000+ wtyczek

Najważniejszą luką architektoniczną jest model encji treści. Drupal przechowuje akapity, pola niestandardowe i odwołania do taksonomii w wielu połączonych tabelach. Wtyczka FG Drupal to WordPress mapuje je na metadane postów WordPress i terminy taksonomii, ale złożone układy oparte na akapitach będą wymagały ręcznej rekonstrukcji.

Lista kontrolna przed migracją

Przed dotknięciem któregokolwiek środowiska wykonaj każdy element na tej liście. Pomijanie kroków jest główną przyczyną utraty danych i przedłużonych przestojów.

  • Przeprowadź audyt inwentarza treści Drupal: typy węzłów, słowniki taksonomii, liczba użytkowników, liczba plików i całkowity rozmiar bazy danych
  • Zidentyfikuj moduły Drupal, które nie mają odpowiednika w WordPress (np. Rules, złożona logika Webform, Commerce)
  • Upewnij się, że serwer WordPress spełnia minimalne wymagania: PHP 8.1+, MySQL 8.0+ lub MariaDB 10.6+, limit pamięci PHP 256 MB
  • Zdecyduj o oknie migracji — najlepiej w okresie niskiego ruchu
  • Włącz tryb konserwacji w Drupal podczas ostatniego przebiegu importu, aby zapobiec dryfowi treści
  • Sprawdź, czy serwer WordPress może dotrzeć do hosta bazy danych Drupal (ten sam serwer, zdalny host lub tunel SSH)

Krok 1: Utwórz kopię zapasową swojej witryny Drupal

Pełna, zweryfikowana kopia zapasowa jest niezbędna. Potrzebujesz zarówno zrzutu bazy danych, jak i katalogu plików.

Kopia zapasowa bazy danych przez Drush

Jeśli masz zainstalowany Drush (standardowy dla Drupal 9/10), jest to najszybsza metoda:

drush sql-dump --result-file=/var/backups/drupal_backup_$(date +%Y%m%d).sql --gzip

Kopia zapasowa bazy danych przez mysqldump

mysqldump -u drupal_user -p drupal_database_name | gzip > /var/backups/drupal_backup_$(date +%Y%m%d).sql.gz

Kopia zapasowa katalogu plików

tar -czf /var/backups/drupal_files_$(date +%Y%m%d).tar.gz /var/www/html/drupal/sites/default/files/

Kopia zapasowa przez phpMyAdmin (metoda GUI)

  1. Zaloguj się do phpMyAdmin przez panel sterowania hostingu
  2. Wybierz bazę danych Drupal z lewego paska bocznego
  3. Kliknij Eksportuj, wybierz metodę eksportu Szybki, format SQL
  4. Kliknij Wykonaj, aby pobrać plik .sql

Przechowuj wszystkie archiwa kopii zapasowych poza serwerem — prześlij je do zdalnego magazynu lub pobierz lokalnie przez SFTP. Kopia zapasowa, która istnieje tylko na tym samym serwerze co migrowana witryna, nie jest prawdziwą kopią zapasową.

Krok 2: Skonfiguruj WordPress na docelowym serwerze

Zainstaluj czystą instancję WordPress w docelowym środowisku. Nie importuj treści Drupal do istniejącej witryny WordPress, chyba że wyraźnie zaplanowałeś scalanie treści — importer nie będzie deduplikować.

Wymagania serwera

WymaganieMinimalneZalecane
Wersja PHP7.48.2
MySQL/MariaDBMySQL 5.7 / MariaDB 10.3MySQL 8.0 / MariaDB 10.11
Limit pamięci PHP64 MB256 MB
max_execution_time30s300s
upload_max_filesize8 MB128 MB

W przypadku dużych witryn Drupal (ponad 10 000 węzłów, wielogigabajtowe biblioteki mediów), VPS z cPanel zapewnia bezpośredni dostęp do konfiguracji PHP, parametrów dostrajania MySQL i zarządzania zadaniami cron — wszystkich elementów, które będą potrzebne podczas intensywnej migracji.

Instalacja WordPress przez WP-CLI

cd /var/www/html/wordpress
wp core download
wp config create --dbname=wp_database --dbuser=wp_user --dbpass=secure_password --dbhost=localhost
wp core install --url="https://yourdomain.com" --title="Site Title" --admin_user=admin --admin_password=strongpassword --admin_email=admin@yourdomain.com

Instalacja jednym kliknięciem przez cPanel

Jeśli Twój host udostępnia cPanel, przejdź do Softaculous Apps Installer, wybierz WordPress, wypełnij dane bazy danych i dane uwierzytelniające administratora, a następnie kliknij Zainstaluj. Proces zajmuje mniej niż dwie minuty.

Po instalacji natychmiast skonfiguruj te ustawienia PHP w php.ini lub przez .htaccess:

php_value max_execution_time 300
php_value memory_limit 256M
php_value post_max_size 128M
php_value upload_max_filesize 128M

Krok 3: Zainstaluj i skonfiguruj wtyczkę FG Drupal to WordPress

Wtyczka FG Drupal to WordPress (dostępna bezpłatna wersja; Premium zalecana dla dużych witryn) obsługuje migrację na poziomie bazy danych węzłów, terminów taksonomii, użytkowników i plików multimedialnych.

Instalacja

  1. W panelu administracyjnym WordPress przejdź do Wtyczki > Dodaj nową
  2. Wyszukaj FG Drupal to WordPress
  3. Kliknij Zainstaluj teraz, a następnie Aktywuj

Alternatywnie zainstaluj przez WP-CLI:

wp plugin install fg-drupal-to-wp --activate

Porównanie funkcji wersji bezpłatnej i Premium

FunkcjaBezpłatnaPremium
Obsługa Drupal 6/7TakTak
Obsługa Drupal 8/9/10CzęściowaPełna
Migracja akapitówNieTak
Migracja użytkownikówNieTak
Migracja WebformNieTak
E-commerce (Drupal Commerce)NieTak
Treści wielojęzyczneNieTak
Wsparcie priorytetoweNieTak

W przypadku każdej witryny produkcyjnej działającej na Drupal 8 lub nowszym, wersja Premium jest warta swojej ceny. Ręczna rekonstrukcja treści opartych na akapitach jest znacznie droższa pod względem czasu programisty.

Krok 4: Zbierz dane uwierzytelniające bazy danych Drupal

Wtyczka FG Drupal to WordPress łączy się bezpośrednio z bazą danych Drupal. Potrzebujesz czterech wartości: nazwy bazy danych, nazwy użytkownika, hasła i hosta.

Znajdowanie danych uwierzytelniających w settings.php Drupal

grep -A 20 "'database'" /var/www/html/drupal/sites/default/settings.php

Wynik będzie zawierał blok podobny do tego:

$databases['default']['default'] = [
  'database' => 'drupal_db_name',
  'username' => 'drupal_db_user',
  'password' => 'drupal_db_password',
  'host' => 'localhost',
  'port' => '3306',
  'driver' => 'mysql',
];

Uwagi dotyczące zdalnego dostępu do bazy danych

Jeśli WordPress i Drupal znajdują się na różnych serwerach, baza danych Drupal musi akceptować zdalne połączenia. Na serwerze bazy danych Drupal:

GRANT SELECT ON drupal_database.* TO 'drupal_user'@'wordpress_server_ip' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;

Upewnij się również, że port 3306 jest otwarty w zaporze sieciowej tylko dla IP serwera WordPress — nigdy nie wystawiaj MySQL na 0.0.0.0.

Jeśli nie możesz otworzyć bezpośredniego portu MySQL, użyj tunelu SSH:

ssh -L 3307:localhost:3306 user@drupal_server_ip -N -f

Następnie ustaw hosta bazy danych wtyczki na 127.0.0.1 i port na 3307.

Krok 5: Uruchom import treści

Przejdź do Narzędzia > Importuj w panelu WordPress, przewiń do sekcji Drupal i kliknij Uruchom importer.

Konfiguracja ustawień importera

Zakładka połączenia z bazą danych:

  • Host bazy danych: localhost (lub zdalny IP / adres tunelu SSH)
  • Port: 3306 (lub Twój niestandardowy port)
  • Nazwa bazy danych: wartość z settings.php
  • Nazwa użytkownika / Hasło: wartości z settings.php
  • URL plików Drupal: publiczny URL katalogu sites/default/files/ Drupal — wymagany do pobierania mediów

Kliknij Testuj połączenie przed kontynuowaniem. Nieudane połączenie na tym etapie jest prawie zawsze spowodowane jednym z trzech problemów: nieprawidłowymi danymi uwierzytelniającymi, zaporą sieciową blokującą port MySQL lub brakiem uprawnień SELECT użytkownika bazy danych Drupal do docelowej bazy danych.

Zakładka zachowania — zalecane ustawienia dla większości migracji:

  • Importuj posty: Tak
  • Importuj strony: Tak
  • Importuj kategorie i tagi: Tak
  • Pobierz obrazy i załączniki: Tak (wymagane do skopiowania mediów do katalogu przesyłania WordPress)
  • Usuń dane WordPress przed importem: Tak (tylko przy świeżej instalacji — powoduje to obcięcie wp_posts i powiązanych tabel)

Uruchamianie importu

Kliknij Uruchom / Wznów importer. Wtyczka przetwarza treści partiami. W przypadku dużych witryn import może przekroczyć limit czasu i wymagać wielu cykli wznawiania — jest to oczekiwane zachowanie, a nie błąd. Po prostu klikaj Wznów za każdym razem.

Monitoruj dziennik importu wyświetlany na ekranie. Zwróć uwagę na:

    Error downloading file — wskazuje, że URL plików Drupal jest nieprawidłowy lub katalog plików nie jest publicznie dostępny
    Błędy Duplicate entry — zazwyczaj nieszkodliwe, wskazujące, że wtyczka pomija już zaimportowane rekordy podczas wznawiania
    MySQL server has gone away — wskazuje, że wait_timeout jest zbyt niski na serwerze MySQL; zwiększ go do co najmniej 600 sekund
    
    SET GLOBAL wait_timeout = 600;
    SET GLOBAL interactive_timeout = 600;
    Krok 6: Uzgodnij strukturę URL i skonfiguruj przekierowania
    To jest krok, który większość przewodników niedocenia. Niezgodności struktury URL między Drupal a WordPress są główną przyczyną spadków pozycji SEO po migracji.
    Wzorce URL Drupal (typowe)
    
    
    
    
    Wzorzec URL Drupal
    Opis
    
    
    
    
    /node/123
    Domyślna ścieżka węzła (bez aliasu)
    
    
    /about-us
    Alias ścieżki (najczęstszy)
    
    
    /taxonomy/term/5
    Strona terminu taksonomii
    
    
    /user/1
    Profil użytkownika
    
    
    /content/article-title
    Alias z prefiksem typu treści
    
    
    
    
    Konfiguracja permalinków WordPress
    Przejdź do Ustawienia > Bezpośrednie odnośniki i wybierz strukturę, która jak najbardziej odpowiada aliasem ścieżek Drupal. W przypadku większości witryn Drupal używających czystych aliasów, /%postname%/ jest właściwym wyborem.
    /%postname%/
    Jeśli Twoja witryna Drupal używała URL z prefiksem kategorii, takich jak /blog/article-title, użyj:
    /%category%/%postname%/
    Implementacja przekierowań 301
    Zainstaluj wtyczkę Redirection (autorstwa Johna Godleya) do zarządzania regułami przekierowań. W przypadku masowych przekierowań wyeksportuj aliasy ścieżek Drupal z bazy danych:
    SELECT source, alias FROM path_alias WHERE langcode = 'en';
    Następnie zaimportuj wynikowy plik CSV do wtyczki Redirection, mapując każdy alias Drupal na jego odpowiednik w WordPress. W przypadku URL w stylu /node/123, które nigdy nie miały aliasu, utwórz przekierowania oparte na wyrażeniach regularnych:
    /node/([0-9]+)$ → /?p=$1
    Mapuje to ID węzłów Drupal na ID postów WordPress — ale działa tylko wtedy, gdy wtyczka FG zachowała oryginalne ID węzłów jako ID postów, co robi domyślnie.
    Ważne: Przetestuj każde przekierowanie za pomocą curl -I przed uruchomieniem:
    curl -I https://yourdomain.com/old-drupal-path
    Sprawdź, czy odpowiedź to HTTP/2 301 z prawidłowym nagłówkiem Location, a nie 302 ani 200 z miękkim przekierowaniem.
    Krok 7: Migruj motywy i odbuduj projekt
    Motywy Drupal (oparte na Twig) nie mają bezpośredniego odpowiednika w WordPress. Musisz odbudować projekt wizualny, używając motywu WordPress jako podstawy.
    Strategia wyboru motywu
    
    Motywy blokowe (FSE): Użyj Edytora witryny WordPress do pełnej kontroli układu bez kreatorów stron. Najlepsze dla programistów zaznajomionych z znacznikami bloków.
    Klasyczne motywy z kreatorem stron: Motywy takie jak Astra lub GeneratePress w połączeniu z Elementor lub Bricks Builder oferują najbliższy odpowiednik Layout Builder Drupal.
    Niestandardowy motyw potomny: Jeśli Twoja witryna Drupal miała mocno dostosowany projekt, zbuduj motyw potomny oparty na minimalnym motywie nadrzędnym (Underscores, Blocksy) i odtwórz CSS.
    
    Odbudowa menu nawigacyjnych
    Menu Drupal nie migrują automatycznie. Odbuduj je w Wygląd > Menu (motywy klasyczne) lub w bloku Nawigacja Edytora witryny (motywy FSE). Odwołaj się do struktury menu Drupal:
    drush eval "print_r(menu_tree_all_data('main', NULL));"
    Lub zapytaj bazę danych bezpośrednio:
    SELECT ml.link_path, ml.link_title, ml.weight, ml.depth
    FROM menu_links ml
    WHERE ml.menu_name = 'main-menu' AND ml.hidden = 0
    ORDER BY ml.weight;
    Widżety i bloki
    Bloki Drupal luźno odpowiadają widżetom WordPress i blokom Gutenberg. Odbuduj regiony paska bocznego i stopki w Wygląd > Widżety lub bezpośrednio w Edytorze witryny. Niestandardowe typy bloków Drupal z logiką PHP będą musiały zostać przebudowane jako shortcody WordPress lub niestandardowe bloki.
    Krok 8: Audyt treści po migracji
    Nie pomijaj tej fazy. Automatyczne narzędzia migracji dobrze radzą sobie ze strukturyzowanymi treściami, ale po cichu zawodzą w przypadkach brzegowych.
    Kontrole integralności treści
    
    Osadzone media: Wbudowane odwołania do plików Drupal używają niestandardowego formatu tokenów ([file:123] lub <drupal-media uuid="..."/>). Nie będą renderowane w WordPress. Przeszukaj bazę danych pod kątem tych tokenów:
    
    SELECT ID, post_title FROM wp_posts WHERE post_content LIKE '%drupal-media%' OR post_content LIKE '%[file:%';
    
    Shortcody i Views: Drupal Views nie ma odpowiednika w WordPress. Każda strona, która renderowała widok (np. filtrowana lista treści), będzie pusta. Odbuduj je za pomocą WP_Query, archiwów niestandardowych typów postów lub wtyczki takiej jak Posts Table Pro.
    
    
    Pola niestandardowe: Dane pól Drupal zmigrowane przez wtyczkę Premium trafiają do wp_postmeta. Sprawdź, czy wartości pól są obecne:
    
    SELECT post_id, meta_key, meta_value FROM wp_postmeta WHERE meta_key LIKE 'field_%' LIMIT 50;
    
    Konta użytkowników: Jeśli migrowałeś użytkowników, sprawdź mapowanie ról. Rola authenticated user Drupal mapuje się na Subscriber WordPress. Drupal editor mapuje się na Editor WordPress. Drupal administrator mapuje się na Administrator WordPress. Przeprowadź audyt mapowania i dostosuj je w razie potrzeby.
    
    Wykrywanie uszkodzonych linków
    Zainstaluj Broken Link Checker lub uruchom przeszukiwanie za pomocą Screaming Frog na środowisku testowym przed przełączeniem DNS. Napraw wszystkie wewnętrzne błędy 404 przed uruchomieniem — nie polegaj na monitorowaniu po uruchomieniu, aby je wykryć.
    Krok 9: Utwardzanie wydajności i bezpieczeństwa
    Świeżo zmigrowana witryna WordPress wymaga utwardzenia przed przejściem do środowiska produkcyjnego.
    Konfiguracja buforowania
    Zainstaluj LiteSpeed Cache (jeśli na serwerze LiteSpeed) lub W3 Total Cache / WP Rocket dla środowisk Apache/Nginx. Skonfiguruj:
    
    Pamięć podręczna stron z TTL wynoszącym co najmniej 3600 sekund dla stron statycznych
    Pamięć podręczna obiektów wspierana przez Redis lub Memcached
    Nagłówki pamięci podręcznej przeglądarki przez .htaccess lub konfigurację serwera
    
    SSL/HTTPS
    Upewnij się, że Twoja witryna WordPress jest serwowana wyłącznie przez HTTPS. Jeśli nie masz jeszcze certyfikatu, Certyfikaty SSL można szybko udostępnić i skonfigurować do automatycznego odnawiania. Zaktualizuj ustawienia URL witryny WordPress:
    wp option update siteurl 'https://yourdomain.com'
    wp option update home 'https://yourdomain.com'
    Wymuś HTTPS w .htaccess:
    RewriteEngine On
    RewriteCond %{HTTPS} off
    RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
    Lista kontrolna utwardzania bezpieczeństwa
    
    Wyłącz XML-RPC, jeśli nie jest potrzebny: dodaj add_filter('xmlrpc_enabled', '__return_false'); do functions.php
  • Zmień domyślny prefiks tabeli wp_ (wymaga zmiany nazwy bazy danych — zrób to przed importem, jeśli to możliwe)
  • Zainstaluj Wordfence lub Solid Security dla zapory sieciowej i ochrony logowania
  • Ustaw uprawnienia plików: katalogi 755, pliki 644, wp-config.php 600
  • find /var/www/html/wordpress -type d -exec chmod 755 {} ;
    find /var/www/html/wordpress -type f -exec chmod 644 {} ;
    chmod 600 /var/www/html/wordpress/wp-config.php

    Krok 10: Przełączenie DNS i uruchomienie

    Wykonaj przełączenie DNS podczas okna najniższego ruchu. Proces powinien zająć mniej niż 15 minut rzeczywistej pracy, z oknem propagacji do 48 godzin (zazwyczaj 1–4 godziny dla większości resolverów).

    Ostatnie sprawdzenia przed przełączeniem

    • Uruchom pełne przeszukiwanie URL testowego i potwierdź zero błędów 404
    • Sprawdź, czy wszystkie przekierowania 301 zwracają prawidłowe nagłówki Location
    • Przetestuj formularze kontaktowe, funkcjonalność wyszukiwania i wszelkie przepływy e-commerce
    • Potwierdź, że Google Search Console jest zweryfikowane na nowej witrynie
    • Wygeneruj i prześlij świeżą mapę witryny XML przez Yoast SEO lub Rank Math

    Proces aktualizacji DNS

    Jeśli zarejestrowałeś swoją domenę przez Rejestrację domen, zaktualizuj rekord A bezpośrednio w panelu zarządzania DNS. Obniż TTL do 300 sekund co najmniej 24 godziny przed przełączeniem, aby zminimalizować opóźnienie propagacji.

    A record: yourdomain.com → [new WordPress server IP]
    TTL: 300 (pre-cutover), restore to 3600 post-cutover

    Monitorowanie po uruchomieniu

    • Włącz narzędzie zmiany adresu Google Search Console, jeśli sama domena uległa zmianie
    • Monitoruj Core Web Vitals w Search Console przez pierwsze 30 dni — spodziewaj się tymczasowych wahań pozycji, gdy Google ponownie przeszukuje i indeksuje
    • Skonfiguruj UptimeRobot lub odpowiednik do monitorowania dostępności
    • Sprawdzaj dzienniki błędów serwera codziennie przez pierwszy tydzień:
    tail -f /var/log/apache2/error.log
    # or for Nginx:
    tail -f /var/log/nginx/error.log

    Ponowne zgłoszenie do wyszukiwarek

    Prześlij zaktualizowaną mapę witryny w Google Search Console:

    1. Przejdź do Search Console > Mapy witryn
    2. Wprowadź sitemap.xml (lub sitemap_index.xml dla dużych witryn)
    3. Kliknij Prześlij

    Prześlij również do Bing Webmaster Tools i niezależnie zweryfikuj tam witrynę — indeks Bing jest używany przez kilka wyszukiwarek AI, w tym Copilot.

    Zalecenia dotyczące infrastruktury hostingowej

    Wydajność zmigrowanej witryny WordPress w dużej mierze zależy od podstawowej infrastruktury. Migracja z Drupal do WordPress to idealny moment na modernizację stosu hostingowego.

    W przypadku witryn o umiarkowanym ruchu (10 000–100 000 wizyt miesięcznie), plan VPS Hosting z co najmniej 2 vCPU, 4 GB RAM i pamięcią masową NVMe zapewnia wystarczający margines dla WordPress z pełnym buforowaniem stron. W przypadku witryn o dużym ruchu lub wymagających dużych zasobów, Serwery dedykowane całkowicie eliminują problem hałaśliwego sąsiada i dają pełną kontrolę nad parametrami jądra, konfiguracją MySQL i dostrajaniem stosu sieciowego.

    Jeśli zarządzasz wieloma witrynami klientów lub preferujesz zarządzanie serwerem przez GUI, Panele sterowania VPS oferują szereg opcji, w tym cPanel, Plesk i DirectAdmin — każdy obsługujący zarządzanie wieloma witrynami WordPress, automatyczne kopie zapasowe i udostępnianie SSL z jednego interfejsu.

    Macierz decyzji technicznych: kiedy stosować każde podejście do migracji

    ScenariuszZalecane podejścieKluczowe narzędzie
    Drupal 7, mała witryna (<500 węzłów)Bezpłatna wersja wtyczki FG, ten sam serwerFG Drupal to WordPress (bezpłatna)
    Drupal 9/10, treści oparte na akapitachFG Plugin Premium, serwer testowyFG Drupal to WordPress Premium
    Drupal Commerce → WooCommerceFG Premium + dodatek WooCommerceFG + moduł migracji WooCommerce
    Wielojęzyczna witryna DrupalFG Premium + WPMLFG + wtyczka WPML
    Drupal ze złożonymi ViewsWymagana ręczna przebudowaWP_Query + CPT UI
    Migracja na inny serwerTunel SSH dla dostępu do bazy danychPrzekierowanie portów SSH
    Wymaganie zerowego przestojuWdrożenie blue-greenRedukcja TTL DNS + środowisko testowe

    Kluczowe wnioski techniczne

    • Najpierw utwórz kopię zapasową. Skompresowany zrzut SQL i archiwum tar sites/default/files/ to Twoja siatka bezpieczeństwa. Sprawdź, czy oba są kompletne i możliwe do przywrócenia przed rozpoczęciem.
    • Przetestuj łączność z bazą danych przed uruchomieniem importera. Większość nieudanych migracji zatrzymuje się na teście połączenia z powodu reguł zapory sieciowej lub brakujących uprawnień SELECT.
    • Treści Drupal oparte na akapitach wymagają wtyczki Premium. Bezpłatna wersja po cichu pomija pola akapitów, pozostawiając treści niekompletne bez komunikatu o błędzie.
    • Przekierowania 301 nie są opcjonalne. Każdy URL Drupal, który ma zewnętrzne linki zwrotne lub indeksowanie przez wyszukiwarki, musi przekierowywać do swojego odpowiednika w WordPress za pomocą stałego przekierowania 301. Brakujące przekierowanie to utracony sygnał rankingowy.
    • Obniż TTL DNS 24 godziny przed przełączeniem. Ustaw go na 300 sekund, aby propagacja zakończyła się w minutach, a nie godzinach, gdy zmienisz rekord A.
    • Przeprowadź audyt wp_postmeta pod kątem niemapowanych pól Drupal. Dane pól niestandardowych trafiają tam po imporcie — sprawdź, czy są obecne i poprawnie oznaczone kluczami przed likwidacją instancji Drupal.
    • Nie likwiduj Drupal natychmiast. Utrzymuj środowisko Drupal działające (w trybie konserwacji, niedostępne publicznie) przez co najmniej 30 dni po uruchomieniu jako punkt odniesienia i opcja wycofania.
    • Prześlij mapę witryny tego samego dnia, w którym przechodzisz na żywo. Nie czekaj, aż Googlebot organicznie odkryje nową strukturę — aktywne przesyłanie przyspiesza ponowne przeszukiwanie.

    FAQ

    Czy mogę zmigrować instalację Drupal multisite do WordPress?

    Tak, ale każda podwitryna Drupal musi być migrowana osobno. Wtyczka FG Drupal to WordPress nie obsługuje natywnie Drupal multisite w jednym przebiegu. Uruchom osobny import dla każdej podwitryny, kierując go do sieci WordPress Multisite lub samodzielnych instalacji WordPress w zależności od architektury.

    Czy hasła użytkowników Drupal zostaną przeniesione do WordPress?

    Nie. Drupal używa solowanego hasha SHA-512 (lub bcrypt w nowszych wersjach), który jest niezgodny z hashowaniem opartym na phpass w WordPress. Wtyczka FG Premium migruje konta użytkowników, ale resetuje hasła, wysyłając e-mail z resetem hasła do każdego użytkownika. Zaplanuj odpowiednią komunikację z użytkownikami.

    Jak obsługiwać typy treści Drupal bez odpowiednika w WordPress?

    Zarejestruj równoważne niestandardowe typy postów (CPT) w WordPress przed uruchomieniem importu. Wtyczka FG Premium umożliwia mapowanie typów treści Drupal na CPT WordPress. Bez tego mapowania wszystkie węzły domyślnie przyjmują typ postu post, co powoduje zapaść taksonomii treści.

    Co dzieje się z terminami taksonomii Drupal podczas migracji?

    Słowniki Drupal mapują się na taksonomie WordPress. Domyślne mapowanie konwertuje tags Drupal na tagi WordPress, a categories Drupal na kategorie WordPress. Niestandardowe słowniki wymagają ręcznej rejestracji taksonomii w WordPress przed importem, w przeciwnym razie zostaną pominięte.

    Jak długo trwa migracja dużej witryny Drupal?

    W przypadku witryny z 5000 węzłami i 2 GB mediów, spodziewaj się 2–4 godzin czasu importu na dobrze wyposażonym serwerze, plus 4–8 godzin audytu treści po migracji i konfiguracji przekierowań. Samo przełączenie DNS zajmuje mniej niż 15 minut. Całkowity czas od początku do uruchomienia wynosi zazwyczaj jeden do dwóch dni roboczych dla dokładnej, produkcyjnej migracji.

    15%

    Zaoszczędź 15% na wszystkich usługach hostingowych

    Sprawdź swoje umiejętności i zdobądź Rabat na dowolny plan hostingowy

    Użyj kodu:

    Skills
    Rozpocznij