Drupal Web Sitesini WordPress’e Nasıl Taşırsınız: Eksiksiz Teknik Kılavuz
Drupal’dan WordPress’e geçiş, Drupal’ın entity tabanlı CMS mimarisinden WordPress’in post-type modeline veritabanı içeriği, medya dosyaları, URL yapısı ve kullanıcı hesaplarını aktarmak anlamına gelir; SEO değerini kaybetmeden, dahili bağlantıları bozmadan veya kesinti yaşatmadan. Süreç, FG Drupal to WordPress eklentisi aracılığıyla veritabanı düzeyinde içerik aktarımını, ardından permalink eşleştirmeyi, 301 yönlendirme yapılandırmasını ve tema yeniden yapılandırmasını kapsar.
Bu kılavuz, söz konusu geçişin her aşamasını ayrıntılı teknik detaylarıyla ele almaktadır: geçiş öncesi yedekleme stratejisi, ortam kurulumu, veritabanı kimlik bilgilerinin çıkarılması, eklenti tabanlı içe aktarma, URL yapısı uyumlaştırması ve yayın sonrası doğrulama. Drupal 7, 9 veya 10 kullanıyor olsanız da aşağıdaki iş akışı geçerlidir.
Drupal’dan WordPress’e Neden Geçiş Yapılır
Drupal güçlü bir çerçevedir; ancak karmaşıklığı gerçek bir operasyonel maliyet doğurur. Modül güncellemeleri sıklıkla bozucu değişiklikler getirir, tema oluşturma Twig şablon uzmanlığı gerektirir ve rutin içerik düzenlemeleri geliştirici müdahalesini zorunlu kılar. WordPress ise daha düz bir öğrenme eğrisi, çok daha geniş bir eklenti ekosistemi ve Drupal’ın ayrıntılı erişim kontrolüne ya da karmaşık içerik modellemeye ihtiyaç duymayan içerik ağırlıklı siteler için daha düşük toplam sahip olma maliyeti sunar.
Performans argümanı da önemlidir. LiteSpeed, nesne önbellekleme ve NVMe depolama ile düzgün yapılandırılmış bir VPS Hosting ortamındaki bir WordPress kurulumu, paylaşımlı altyapıdaki şişirilmiş bir Drupal yığınını sürekli olarak geride bırakacaktır.
Kullanım senaryosuna göre temel geçiş motivasyonları:
- Drupal’ın yönetici arayüzünden ve yavaş yayın iş akışlarından bıkmış editoryal ekipler
- Müşteri sitelerini tek bir yönetilebilir CMS üzerinde birleştiren ajanslar
- Drupal’ın modül bağımlılık zincirlerinden kaynaklanan bakım yükünü azaltmak isteyen geliştiriciler
- Yoast veya Rank Math gibi WordPress’e özgü araçlarla daha sıkı entegrasyon arayan SEO ekipleri
Drupal ve WordPress: Mimari Karşılaştırma
Başlamadan önce iki platform arasındaki yapısal farklılıkları anlamak şarttır. İçeriğin nasıl depolandığına dair yanlış varsayımlar, başarısız veya eksik geçişlerin birincil nedenidir.
| Boyut | Drupal | WordPress |
|---|---|---|
| İçerik modeli | Entity’ler (node’lar, taksonomi terimleri, alanlar) | Post türleri (gönderiler, sayfalar, CPT’ler) |
| Veritabanı şeması | İçerik türü başına yüksek düzeyde normalleştirilmiş, çok tablolu | Düz wp_posts + wp_postmeta modeli |
| URL yönlendirme | path_alias tablosunda depolanan yol takma adları | .htaccess aracılığıyla permalink yeniden yazma kuralları |
| Tema motoru | Twig şablonları + Ön işleme kancaları | PHP şablon hiyerarşisi + kancalar |
| Kullanıcı rolleri | Rol başına ayrıntılı izinler | Sabit rol hiyerarşisi (Abone → Yönetici) |
| Medya yönetimi | Alan eklentileriyle yönetilen dosya entity’si | Ek gönderi türüyle Medya Kitaplığı |
| Çok dilli | Çekirdek Dil modülü | WPML veya Polylang eklentisi gerektirir |
| REST API | JSON:API + REST çekirdek modülleri | Yerleşik WP REST API |
| Barındırma karmaşıklığı | Yüksek (Composer, Drush gerektirir) | Düşük (standart LAMP/LEMP yığını) |
| Eklenti/modül ekosistemi | ~50.000 modül | ~60.000+ eklenti |
En kritik mimari boşluk içerik entity modelidir. Drupal, paragrafları, özel alanları ve taksonomi referanslarını birden fazla birleştirilmiş tabloda depolar. FG Drupal to WordPress eklentisi bunları WordPress gönderi meta verilerine ve taksonomi terimlerine eşler; ancak karmaşık paragraf tabanlı düzenler manuel yeniden yapılandırma gerektirecektir.
Geçiş Öncesi Kontrol Listesi
Her iki ortama dokunmadan önce bu listedeki her öğeyi tamamlayın. Adımları atlamak, veri kaybının ve uzun kesintilerin başlıca nedenidir.
- Drupal içerik envanterinizi denetleyin: node türleri, taksonomi sözlükleri, kullanıcı sayısı, dosya sayısı ve toplam veritabanı boyutu
- WordPress karşılığı olmayan Drupal modüllerini belirleyin (örn. Rules, Webform karmaşık mantığı, Commerce)
- WordPress sunucunuzun minimum gereksinimleri karşıladığını doğrulayın: PHP 8.1+, MySQL 8.0+ veya MariaDB 10.6+, 256 MB PHP bellek sınırı
- Bir geçiş penceresi belirleyin — ideal olarak düşük trafikli bir dönem
- İçerik kaymasını önlemek için son içe aktarma geçişi sırasında Drupal’da bakım modunu etkinleştirin
- WordPress sunucusunun Drupal veritabanı ana bilgisayarına erişebildiğini doğrulayın (aynı sunucu, uzak ana bilgisayar veya SSH tüneli)
Adım 1: Drupal Web Sitenizi Yedekleyin
Tam ve doğrulanmış bir yedekleme zorunludur. Hem veritabanı dökümüne hem de dosyalar dizinine ihtiyacınız vardır.
Drush Aracılığıyla Veritabanı Yedekleme
Drush yüklüyse (Drupal 9/10 için standarttır), bu en hızlı yöntemdir:
drush sql-dump --result-file=/var/backups/drupal_backup_$(date +%Y%m%d).sql --gzipmysqldump Aracılığıyla Veritabanı Yedekleme
mysqldump -u drupal_user -p drupal_database_name | gzip > /var/backups/drupal_backup_$(date +%Y%m%d).sql.gzDosyalar Dizini Yedekleme
tar -czf /var/backups/drupal_files_$(date +%Y%m%d).tar.gz /var/www/html/drupal/sites/default/files/phpMyAdmin Yedekleme (GUI Yöntemi)
- Barındırma kontrol paneliniz aracılığıyla phpMyAdmin’e giriş yapın
- Sol kenar çubuğundan Drupal veritabanını seçin
- Dışa Aktar‘a tıklayın, Hızlı dışa aktarma yöntemini ve SQL biçimini seçin
.sql dosyasını indirmek için Git‘e tıklayın
Tüm yedek arşivlerini sunucu dışında saklayın — bunları uzak depolamaya yükleyin veya SFTP aracılığıyla yerel olarak indirin. Yalnızca geçiş yapılan siteyle aynı sunucuda bulunan bir yedek, gerçek bir yedek değildir.
Adım 2: Hedef Sunucunuzda WordPress Kurun
Hedef ortamınıza temiz bir WordPress örneği yükleyin. İçerik birleştirmeyi açıkça planlamadıkça Drupal içeriğini mevcut bir WordPress sitesine aktarmayın — içe aktarıcı yinelenenleri kaldırmaz.
Sunucu Gereksinimleri
Gereksinim
Minimum
Önerilen
PHP sürümü
7.4
8.2
MySQL/MariaDB
MySQL 5.7 / MariaDB 10.3
MySQL 8.0 / MariaDB 10.11
PHP bellek sınırı
64 MB
256 MB
max_execution_time
30s
300s
upload_max_filesize
8 MB
128 MB
Büyük Drupal siteleri (10.000+ node, çok GB’lık medya kitaplıkları) için cPanel ile VPS, PHP yapılandırmasına, MySQL ayar parametrelerine ve cron iş yönetimine doğrudan erişim sağlar; bunların tümüne yoğun bir geçiş sırasında ihtiyaç duyacaksınız.
WP-CLI Aracılığıyla WordPress Kurulumu
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
cPanel Aracılığıyla Tek Tıkla Kurulum
Barındırıcınız cPanel sağlıyorsa Softaculous Apps Installer‘a gidin, WordPress’i seçin, veritabanı ve yönetici kimlik bilgilerini doldurun ve Kur‘a tıklayın. İşlem iki dakikadan kısa sürer.
Kurulumdan sonra bu PHP ayarlarını php.ini içinde veya .htaccess aracılığıyla hemen yapılandırın:
php_value max_execution_time 300
php_value memory_limit 256M
php_value post_max_size 128M
php_value upload_max_filesize 128M
Adım 3: FG Drupal to WordPress Eklentisini Kurun ve Yapılandırın
FG Drupal to WordPress eklentisi (ücretsiz katman mevcut; büyük siteler için Premium önerilir), node’ların, taksonomi terimlerinin, kullanıcıların ve medya dosyalarının veritabanı düzeyinde geçişini gerçekleştirir.
Kurulum
WordPress yönetici panelinizde Eklentiler > Yeni Ekle‘ye gidin
FG Drupal to WordPress araması yapın
Şimdi Kur‘a, ardından Etkinleştir‘e tıklayın
Alternatif olarak WP-CLI aracılığıyla yükleyin:
wp plugin install fg-drupal-to-wp --activate
Ücretsiz ve Premium Özellik Karşılaştırması
Özellik
Ücretsiz
Premium
Drupal 6/7 desteği
Evet
Evet
Drupal 8/9/10 desteği
Kısmi
Tam
Paragraf geçişi
Hayır
Evet
Kullanıcı geçişi
Hayır
Evet
Webform geçişi
Hayır
Evet
E-ticaret (Drupal Commerce)
Hayır
Evet
Çok dilli içerik
Hayır
Evet
Öncelikli destek
Hayır
Evet
Drupal 8 veya sonrasını çalıştıran herhangi bir üretim sitesi için Premium sürüm maliyete değer. Paragraf tabanlı içeriği manuel olarak yeniden oluşturmak, geliştirici zamanı açısından çok daha pahalıdır.
Adım 4: Drupal Veritabanı Kimlik Bilgilerini Toplayın
FG Drupal to WordPress eklentisi, Drupal veritabanınıza doğrudan bağlanır. Dört değere ihtiyacınız vardır: veritabanı adı, kullanıcı adı, parola ve ana bilgisayar.
Drupal’ın settings.php Dosyasında Kimlik Bilgilerini Bulma
grep -A 20 "'database'" /var/www/html/drupal/sites/default/settings.php
Çıktı şuna benzer bir blok içerecektir:
$databases['default']['default'] = [
'database' => 'drupal_db_name',
'username' => 'drupal_db_user',
'password' => 'drupal_db_password',
'host' => 'localhost',
'port' => '3306',
'driver' => 'mysql',
];
Uzak Veritabanı Erişimi Hakkında Dikkat Edilmesi Gerekenler
WordPress ve Drupal farklı sunuculardaysa, Drupal veritabanının uzak bağlantıları kabul etmesi gerekir. Drupal veritabanı sunucusunda:
GRANT SELECT ON drupal_database.* TO 'drupal_user'@'wordpress_server_ip' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;
Ayrıca güvenlik duvarında 3306 portunun yalnızca WordPress sunucusunun IP’si için açık olduğundan emin olun — MySQL’i hiçbir zaman 0.0.0.0‘a maruz bırakmayın.
Doğrudan bir MySQL portu açamıyorsanız SSH tüneli kullanın:
ssh -L 3307:localhost:3306 user@drupal_server_ip -N -f
Ardından eklentinin veritabanı ana bilgisayarını 127.0.0.1 ve portu 3307 olarak ayarlayın.
Adım 5: İçerik Aktarımını Çalıştırın
WordPress kontrol panelinizde Araçlar > İçe Aktar‘a gidin, Drupal bölümüne kaydırın ve İçe Aktarıcıyı Çalıştır‘a tıklayın.
İçe Aktarıcı Ayarları Yapılandırması
Veritabanı bağlantısı sekmesi:
Veritabanı ana bilgisayarı: localhost (veya uzak IP / SSH tünel adresi)
Port: 3306 (veya özel portunuz)
Veritabanı adı: settings.php içindeki değer
Kullanıcı adı / Parola: settings.php içindeki değerler
Drupal dosyaları URL’si: Drupal sites/default/files/ dizininizin genel URL’si — medya indirme için gereklidir
Devam etmeden önce Bağlantıyı test et‘e tıklayın. Bu aşamada başarısız olan bir bağlantı neredeyse her zaman üç sorundan birinden kaynaklanır: yanlış kimlik bilgileri, MySQL portunu engelleyen bir güvenlik duvarı veya Drupal veritabanı kullanıcısının hedef veritabanında SELECT ayrıcalıklarının olmaması.
Davranış sekmesi — çoğu geçiş için önerilen ayarlar:
Gönderileri içe aktar: Evet
Sayfaları içe aktar: Evet
Kategorileri ve etiketleri içe aktar: Evet
Görselleri ve ekleri indir: Evet (medyayı WordPress’in yükleme dizinine kopyalamak için gereklidir)
İçe aktarmadan önce WordPress verilerini kaldır: Evet (yalnızca yeni kurulumda — bu, wp_posts ve ilgili tabloları keser)
İçe Aktarmayı Başlatma
İçe Aktarıcıyı Başlat / Devam Ettir‘e tıklayın. Eklenti içeriği toplu olarak işler. Büyük siteler için içe aktarma zaman aşımına uğrayabilir ve birden fazla devam döngüsü gerektirebilir — bu beklenen bir davranıştır, hata değildir. Her seferinde Devam Et‘e tıklamanız yeterlidir.
Ekranda görüntülenen içe aktarma günlüğünü izleyin. Şunlara dikkat edin:
Error downloading file — Drupal dosyaları URL’sinin yanlış olduğunu veya dosyalar dizininin herkese açık olmadığını gösterir
Duplicate entry hataları — genellikle zararsızdır; eklentinin devam sırasında zaten içe aktarılmış kayıtları atladığını gösterir
MySQL server has gone away — MySQL sunucusunda wait_timeout değerinin çok düşük olduğunu gösterir; en az 600 saniyeye yükseltin
SET GLOBAL wait_timeout = 600;
SET GLOBAL interactive_timeout = 600;
Adım 6: URL Yapısını Uyumlaştırın ve Yönlendirmeleri Yapılandırın
Bu, çoğu kılavuzun küçümsediği adımdır. Drupal ve WordPress arasındaki URL yapısı uyumsuzlukları, geçiş sonrası SEO sıralama düşüşlerinin birincil nedenidir.
Drupal URL Kalıpları (Yaygın)
Drupal URL kalıbı
Açıklama
/node/123
Varsayılan node yolu (takma ad yok)
/about-us
Yol takma adı (en yaygın)
/taxonomy/term/5
Taksonomi terimi sayfası
/user/1
Kullanıcı profili
/content/article-title
İçerik türü önekli takma ad
WordPress Permalink Yapılandırması
Ayarlar > Kalıcı Bağlantılar‘a gidin ve Drupal yol takma adlarınızla mümkün olduğunca eşleşen bir yapı seçin. Temiz takma adlar kullanan çoğu Drupal sitesi için /%postname%/ doğru seçimdir.
/%postname%/
Drupal siteniz /blog/article-title gibi kategori önekli URL’ler kullandıysa şunu kullanın:
/%category%/%postname%/
301 Yönlendirmelerini Uygulama
Yönlendirme kurallarını yönetmek için Redirection eklentisini (John Godley tarafından) yükleyin. Toplu yönlendirmeler için Drupal yol takma adlarınızı veritabanından dışa aktarın:
SELECT source, alias FROM path_alias WHERE langcode = 'en';
Ardından elde edilen CSV’yi Redirection eklentisine aktararak her Drupal takma adını WordPress karşılığına eşleyin. Hiçbir zaman takma ad verilmemiş /node/123 tarzı URL’ler için regex tabanlı yönlendirmeler oluşturun:
/node/([0-9]+)$ → /?p=$1
Bu, Drupal node ID’lerini WordPress gönderi ID’lerine eşler — ancak yalnızca FG eklentisinin orijinal node ID’lerini gönderi ID’leri olarak koruması durumunda çalışır; bu, varsayılan davranıştır.
Kritik: Yayına geçmeden önce her yönlendirmeyi curl -I ile test edin:
curl -I https://yourdomain.com/old-drupal-path
Yanıtın, doğru Location başlığıyla birlikte HTTP/2 301 olduğunu doğrulayın; 302 veya yumuşak yönlendirmeli bir 200 olmamalıdır.
Adım 7: Temaları Taşıyın ve Tasarımı Yeniden Oluşturun
Drupal temaları (Twig tabanlı), WordPress’te doğrudan bir karşılığa sahip değildir. Görsel tasarımı bir WordPress temasını temel alarak yeniden oluşturmanız gerekir.
Tema Seçim Stratejisi
Blok tabanlı temalar (FSE): Sayfa oluşturucular olmadan tam düzen kontrolü için WordPress Site Düzenleyicisi’ni kullanın. Blok işaretlemesine hakim geliştiriciler için en iyisidir.
Sayfa oluşturuculu klasik temalar: Elementor veya Bricks Builder ile eşleştirilmiş Astra veya GeneratePress gibi temalar, Drupal’ın Layout Builder’ına en yakın karşılığı sunar.
Özel alt tema: Drupal sitenizin yoğun biçimde özelleştirilmiş bir tasarımı varsa, minimal bir üst temaya (Underscores, Blocksy) dayalı bir alt tema oluşturun ve CSS’yi yeniden oluşturun.
Gezinme Menülerini Yeniden Oluşturma
Drupal menüleri otomatik olarak taşınmaz. Bunları Görünüm > Menüler (klasik temalar) veya Site Düzenleyicisi’nin Gezinme bloğu (FSE temaları) altında yeniden oluşturun. Drupal menü yapınızla çapraz referans yapın:
drush eval "print_r(menu_tree_all_data('main', NULL));"
Veya veritabanını doğrudan sorgulayın:
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;
Widget’lar ve Bloklar
Drupal blokları, WordPress widget’larına ve Gutenberg bloklarına gevşek biçimde karşılık gelir. Kenar çubuğu ve alt bilgi bölgelerini Görünüm > Widget’lar altında veya doğrudan Site Düzenleyicisi’nde yeniden oluşturun. PHP mantığı içeren özel Drupal blok türlerinin WordPress kısa kodları veya özel bloklar olarak yeniden oluşturulması gerekecektir.
Adım 8: Geçiş Sonrası İçerik Denetimi
Bu aşamayı atlamamayın. Otomatik geçiş araçları yapılandırılmış içeriği iyi işler; ancak uç durumlarda sessizce başarısız olur.
İçerik Bütünlüğü Kontrolleri
Gömülü medya: Drupal’ın satır içi dosya referansları özel bir token biçimi kullanır ([file:123] veya <drupal-media uuid="..."/>). Bunlar WordPress’te görüntülenmez. Veritabanında bu token’ları arayın:
SELECT ID, post_title FROM wp_posts WHERE post_content LIKE '%drupal-media%' OR post_content LIKE '%[file:%';
Kısa kodlar ve View’lar: Drupal View’larının WordPress’te karşılığı yoktur. Bir View oluşturan herhangi bir sayfa (örn. filtrelenmiş içerik listesi) boş görünecektir. Bunları WP_Query, özel gönderi türü arşivleri veya Posts Table Pro gibi bir eklenti kullanarak yeniden oluşturun.
Özel alanlar: Premium eklenti aracılığıyla taşınan Drupal alan verileri wp_postmeta içine yerleşir. Alan değerlerinin mevcut olduğunu doğrulayın:
SELECT post_id, meta_key, meta_value FROM wp_postmeta WHERE meta_key LIKE 'field_%' LIMIT 50;
Kullanıcı hesapları: Kullanıcıları taşıdıysanız rol eşleştirmesini doğrulayın. Drupal’ın authenticated user rolü WordPress Subscriber ile eşleşir. Drupal editor, WordPress Editor ile eşleşir. Drupal administrator, WordPress Administrator ile eşleşir. Eşleştirmeyi denetleyin ve gerektiği gibi ayarlayın.
Bozuk Bağlantı Tespiti
DNS geçişinden önce hazırlama ortamınıza karşı Broken Link Checker yükleyin veya Screaming Frog ile bir tarama çalıştırın. Yayına geçmeden önce tüm dahili 404’leri düzeltin — bunları yakalamak için yayın sonrası izlemeye güvenmeyin.
Adım 9: Performans ve Güvenlik Sertleştirme
Yeni taşınmış bir WordPress sitesinin üretime hazır olmadan önce sertleştirilmesi gerekir.
Önbellekleme Yapılandırması
Apache/Nginx ortamları için LiteSpeed Cache (LiteSpeed sunucusundaysa) veya W3 Total Cache / WP Rocket yükleyin. Yapılandırın:
Statik sayfalar için en az 3600 saniyelik TTL ile sayfa önbelleği
Redis veya Memcached tarafından desteklenen nesne önbelleği
.htaccess veya sunucu yapılandırması aracılığıyla tarayıcı önbellek başlıkları
SSL/HTTPS
WordPress sitenizin yalnızca HTTPS üzerinden sunulduğundan emin olun. Henüz bir sertifikanız yoksa SSL Sertifikaları hızla temin edilebilir ve otomatik yenileme için yapılandırılabilir. WordPress’in site URL ayarlarını güncelleyin:
wp option update siteurl 'https://yourdomain.com'
wp option update home 'https://yourdomain.com'
.htaccess içinde HTTPS’yi zorunlu kılın:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Güvenlik Sertleştirme Kontrol Listesi
Gerekli değilse XML-RPC’yi devre dışı bırakın: functions.php dosyasına add_filter('xmlrpc_enabled', '__return_false'); ekleyin
Varsayılan wp_ tablo önekini değiştirin (veritabanı yeniden adlandırması gerektirir — mümkünse içe aktarmadan önce yapın)
Güvenlik duvarı ve giriş koruması için Wordfence veya Solid Security yükleyin
Dosya izinlerini ayarlayın: dizinler 755, dosyalar 644, wp-config.php 600find /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.phpAdım 10: DNS Geçişi ve Yayın
DNS geçişini en düşük trafikli zaman diliminizde gerçekleştirin. İşlem 15 dakikadan kısa sürmeli; çoğu çözümleyici için genellikle 1–4 saat olan 48 saate kadar sürebilecek bir yayılma penceresiyle tamamlanmalıdır.
Geçiş Öncesi Son Kontroller
- Hazırlama URL’sinin tam taramasını çalıştırın ve sıfır 404 olduğunu doğrulayın
- Tüm 301 yönlendirmelerinin doğru
Locationbaşlıklarını döndürdüğünü doğrulayın - İletişim formlarını, arama işlevini ve tüm e-ticaret akışlarını test edin
- Google Search Console’un yeni sitede doğrulandığını onaylayın
- Yoast SEO veya Rank Math aracılığıyla yeni bir XML site haritası oluşturun ve gönderin
DNS Güncelleme Süreci
Etki alanınızı Alan Adı Kaydı aracılığıyla kaydettirdiyseniz, A kaydını doğrudan DNS yönetim panelinde güncelleyin. Yayılma gecikmesini en aza indirmek için geçişten en az 24 saat önce TTL’yi 300 saniyeye düşürün.
A record: yourdomain.com → [new WordPress server IP]
TTL: 300 (pre-cutover), restore to 3600 post-cutoverYayın Sonrası İzleme
- Etki alanının kendisi değiştiyse Google Search Console adres değişikliği aracını etkinleştirin
- Google yeniden tarama ve yeniden dizinleme yaparken geçici sıralama dalgalanması bekleyin — ilk 30 gün boyunca Search Console’daki Core Web Vitals‘ı izleyin
- Kullanılabilirlik izleme için UptimeRobot veya eşdeğerini kurun
- İlk hafta boyunca sunucu hata günlüklerini günlük olarak kontrol edin:
tail -f /var/log/apache2/error.log
# or for Nginx:
tail -f /var/log/nginx/error.logArama Motoru Yeniden Gönderimi
Güncellenmiş site haritanızı Google Search Console’a gönderin:
- Search Console > Site Haritaları‘na gidin
sitemap.xmlgirin (veya büyük siteler içinsitemap_index.xml)- Gönder‘e tıklayın
Bing Webmaster Tools’a da gönderin ve siteyi orada bağımsız olarak doğrulayın — Bing’in dizini, Copilot dahil birçok yapay zeka arama motoru tarafından kullanılmaktadır.
Barındırma Altyapısı Önerileri
Taşınan WordPress sitenizin performansı büyük ölçüde temel altyapıya bağlıdır. Drupal’dan WordPress’e geçiş, barındırma yığınınızı modernize etmek için de ideal bir fırsattır.
Orta düzey trafikli siteler (aylık 10.000–100.000 ziyaret) için en az 2 vCPU, 4 GB RAM ve NVMe depolama içeren bir VPS Hosting planı, tam sayfa önbelleklemeyle WordPress için yeterli alan sağlar. Yüksek trafikli veya kaynak yoğun siteler için Dedicated Servers, gürültülü komşu sorununu tamamen ortadan kaldırır ve çekirdek parametreleri, MySQL yapılandırması ve ağ yığını ayarlaması üzerinde tam kontrol sağlar.
Birden fazla müşteri sitesi yönetiyorsanız veya GUI tabanlı bir sunucu yönetim deneyimini tercih ediyorsanız, VPS Control Panels cPanel, Plesk ve DirectAdmin dahil çeşitli seçenekler sunar; her biri tek bir arayüzden çok siteli WordPress yönetimini, otomatik yedeklemeleri ve SSL sağlamayı destekler.
Teknik Karar Matrisi: Her Geçiş Yaklaşımı Ne Zaman Kullanılır
| Senaryo | Önerilen Yaklaşım | Temel Araç |
|---|---|---|
| Drupal 7, küçük site (<500 node) | FG eklentisi ücretsiz katman, aynı sunucu | FG Drupal to WordPress (ücretsiz) |
| Drupal 9/10, paragraf ağırlıklı içerik | FG eklentisi Premium, hazırlama sunucusu | FG Drupal to WordPress Premium |
| Drupal Commerce → WooCommerce | FG Premium + WooCommerce eklentisi | FG + WooCommerce geçiş modülü |
| Çok dilli Drupal sitesi | FG Premium + WPML | FG + WPML eklentisi |
| Karmaşık View’lara sahip Drupal | Manuel yeniden yapılandırma gerekli | WP_Query + CPT UI |
| Farklı sunucu geçişi | Veritabanı erişimi için SSH tüneli | SSH port yönlendirme |
| Sıfır kesinti gereksinimi | Mavi-yeşil dağıtım | DNS TTL azaltma + hazırlama |
Temel Teknik Çıkarımlar
- Her şeyden önce yedek alın. Sıkıştırılmış bir SQL dökümü ve
sites/default/files/dizininin bir tar arşivi güvenlik ağınızdır. Başlamadan önce her ikisinin de eksiksiz ve geri yüklenebilir olduğunu doğrulayın. - İçe aktarıcıyı çalıştırmadan önce veritabanı bağlantısını test edin. Başarısız geçişlerin büyük çoğunluğu, güvenlik duvarı kuralları veya eksik
SELECTizinleri nedeniyle bağlantı testinde takılır. - Paragraf tabanlı Drupal içeriği Premium eklentiyi gerektirir. Ücretsiz katman, paragraf alanlarını sessizce atlayacak ve içeriği hata mesajı vermeden eksik bırakacaktır.
- 301 yönlendirmeleri isteğe bağlı değildir. Harici geri bağlantıları veya arama motoru dizinlemesi olan her Drupal URL’si, kalıcı bir 301 ile WordPress karşılığına yönlendirilmelidir. Eksik bir yönlendirme, kaybedilen bir sıralama sinyalidir.
- DNS TTL’yi geçişten 24 saat önce düşürün. A kaydını değiştirdiğinizde yayılmanın saatler değil dakikalar içinde tamamlanması için 300 saniyeye ayarlayın.
- Eşlenmemiş Drupal alanları için
wp_postmetadenetleyin. Özel alan verileri içe aktarmadan sonra oraya yerleşir — Drupal örneğini devre dışı bırakmadan önce mevcut olduğunu ve doğru anahtarlandığını doğrulayın. - Drupal’ı hemen devre dışı bırakmayın. Drupal ortamını yayından sonra en az 30 gün boyunca çalışır durumda tutun (bakım modunda, herkese açık değil) — referans ve geri alma seçeneği olarak.
- Site haritanızı yayına geçtiğiniz gün yeniden gönderin. Googlebot’un yeni yapıyı organik olarak keşfetmesini beklemeyin — aktif gönderim yeniden taramayı hızlandırır.
SSS
Drupal çoklu site kurulumunu WordPress’e taşıyabilir miyim?
Evet; ancak her Drupal alt sitesi ayrı ayrı taşınmalıdır. FG Drupal to WordPress eklentisi, Drupal çoklu siteyi tek bir geçişte yerel olarak işlemez. Mimarinize bağlı olarak bir WordPress Çoklu Site ağını veya bağımsız WordPress kurulumlarını hedefleyerek her alt site için ayrı bir içe aktarma çalıştırın.
Drupal kullanıcı parolaları WordPress’e aktarılacak mı?
Hayır. Drupal, WordPress’in phpass tabanlı karma sistemiyle uyumsuz olan tuzlanmış SHA-512 karması (veya daha yeni sürümlerde bcrypt) kullanır. FG Premium eklentisi kullanıcı hesaplarını taşır ancak parolaları sıfırlar ve her kullanıcıya parola sıfırlama e-postası gönderir. Kullanıcı iletişimini buna göre planlayın.
WordPress karşılığı olmayan Drupal içerik türlerini nasıl ele alırım?
İçe aktarmayı çalıştırmadan önce WordPress’te eşdeğer Özel Gönderi Türleri (CPT’ler) kaydedin. FG Premium eklentisi, Drupal içerik türlerini WordPress CPT’lerine eşlemenize olanak tanır. Bu eşleme olmadan tüm node’lar varsayılan olarak post gönderi türüne düşer ve içerik taksonominizi çöküştürür.
Geçiş sırasında Drupal taksonomi terimlerine ne olur?
Drupal sözlükleri WordPress taksonomilerine eşlenir. Varsayılan eşleme, Drupal tags terimlerini WordPress etiketlerine ve Drupal categories terimlerini WordPress kategorilerine dönüştürür. Özel sözlükler, içe aktarmadan önce WordPress’te manuel taksonomi kaydı gerektirir; aksi takdirde silinecektir.
Büyük bir Drupal sitesi için geçiş ne kadar sürer?
5.000 node ve 2 GB medya içeren bir site için iyi donanımlı bir sunucuda 2–4 saatlik içe aktarma süresi bekleyin; buna ek olarak 4–8 saatlik geçiş sonrası içerik denetimi ve yönlendirme yapılandırması ekleyin. Gerçek DNS geçişi 15 dakikadan kısa sürer. Kapsamlı, üretim kalitesinde bir geçiş için başlangıçtan yayına kadar geçen toplam süre genellikle bir ila iki iş günüdür.
