Bir web sitesi büyüdükçe, üzerinde kurulduğu platformun sınırları da görünür hâle gelir. WordPress ile başlayan birçok kurumsal proje; çok dilli yapı, gelişmiş yetkilendirme, sistem entegrasyonları ve multisite ihtiyacı devreye girdiğinde Drupal'a geçişi gündemine alır. Buradaki asıl soru çoğu zaman "geçilmeli mi?" değil, "yıllarca üretilmiş içerik, kullanıcı ve medya arşivi kayıpsız nasıl taşınır?" sorusudur.
Bu sorunun cevabı Drupal'ın çekirdeğinde yer alan Migrate API'dir. Migrate API, dış kaynaklardaki veriyi okuyup Drupal varlıklarına dönüştüren; geri alınabilir (rollback) ve tekrarlanabilir bir göç altyapısı sunar. Bu rehberde WordPress'ten Drupal'a geçişin neden yapıldığını, Migrate API'nin nasıl çalıştığını, kullanılan modülleri, üç farklı geçiş yöntemini, adım adım süreci ve SEO'yu koruyarak geçişin püf noktalarını ele alıyoruz.
WordPress'ten Drupal'a Neden Geçilir?
WordPress, küçük ve orta ölçekli siteler için hızlı ve pratik bir başlangıç sunar; bu yüzden dünyanın en yaygın CMS'idir. Ancak proje kurumsal ölçeğe ulaştığında bazı yapısal sınırlar geçiş kararını tetikler.
- İçerik mimarisi karmaşıklaştığında: Onlarca farklı içerik tipi, alan (field) yapısı ve içerikler arası ilişki gerektiğinde Drupal'ın yapısal içerik mimarisi belirgin avantaj sağlar.
- Çok dilli yapı ihtiyacında: Drupal çekirdeği 110'u aşkın dili eklentisiz destekler; WordPress'te çoklu dil ancak üçüncü parti eklentilerle yönetilebilir.
- Gelişmiş yetkilendirme gerektiğinde: Fakülte editörü, birim yöneticisi, içerik onaylayıcı gibi çok katmanlı rol yapıları Drupal'da çekirdek seviyesinde tanımlanır.
- Multisite hedefi olduğunda: Dağınık WordPress kurulumlarını tek bir Drupal multisite çatısında birleştirmek, bakım ve güvenlik yükünü ciddi ölçüde azaltır.
- Güvenlik ve entegrasyon önceliklerinde: Eklenti kaynaklı güvenlik riskleri yerine denetlenebilir bir çekirdek devreye girer; OBS, CRM, LDAP/CAS gibi kurumsal sistemlerle API tabanlı entegrasyon kurulur.
Bu karşılaştırmanın detaylarını Drupal, WordPress, Joomla Karşılaştırması ve CMS Seçimi yazımızda ele almıştık. Geçiş kararı verildiyse, sıradaki konu bu geçişin teknik olarak nasıl yönetileceğidir.
Drupal Migrate API Nedir?
Migrate API, Drupal çekirdeğinin bir parçası olan ve dış kaynaklardaki veriyi Drupal varlıklarına (node, kullanıcı, taksonomi, medya, yorum) dönüştüren göç çerçevesidir. Yalnızca WordPress için değil; eski Drupal sürümlerinden, CSV, JSON, XML dosyalarından veya başka bir veritabanından yapılacak her türlü içerik göçünde aynı altyapı kullanılır.
Migrate API'yi basit bir "içe aktarma aracından" ayıran üç temel özellik vardır. Birincisi, göçler yapılandırma dosyalarıyla (YAML) tanımlanır; yani süreç belgelenebilir ve tekrarlanabilirdir. İkincisi, her göç geri alınabilir: bir sorun tespit edildiğinde rollback komutuyla aktarılan içerik temiz biçimde geri çekilir; göç, düzeltilmiş eşleştirmeyle yeniden çalıştırılır. Üçüncüsü, göç sırasında veri dönüştürülebilir; örneğin WordPress'teki kısa kodlar (shortcode) temizlenebilir, tarih formatları düzeltilebilir, yazar hesapları eşleştirilebilir.
Source – Process – Destination: Üç Aşamalı ETL Mantığı
Migrate API, yazılım dünyasında ETL (Extract – Transform – Load) olarak bilinen modeli uygular ve her göçü üç katmanda tanımlar.
- Source (Kaynak): Verinin nereden okunacağı. WordPress senaryosunda bu, WXR export dosyası veya doğrudan WordPress veritabanıdır.
- Process (İşleme): Kaynak verinin Drupal'ın beklediği yapıya dönüştürülmesi. Alan eşleştirmeleri, format dönüşümleri ve veri temizliği bu katmanda yapılır.
- Destination (Hedef): Dönüştürülen verinin hangi Drupal varlığı olarak kaydedileceği; içerik node olarak, kategoriler taksonomi terimi olarak, yazarlar kullanıcı hesabı olarak oluşturulur.
Bu mimarinin pratik anlamı şudur: geçiş, tek seferlik riskli bir "kopyala-yapıştır" operasyonu değil; test edilebilen, geri alınabilen ve kademeli ilerleyen kontrollü bir mühendislik sürecidir.
Geçişte Kullanılan Temel Modüller
WordPress'ten Drupal'a geçişte tek bir modül değil, birbirini tamamlayan bir modül seti kullanılır.
| Modül | Görevi | Konumu |
|---|---|---|
| Migrate | Göç altyapısının temelini oluşturan API. | Drupal çekirdeği |
| Migrate Plus | Göç tanımlarını genişletir; grup yönetimi ve ek kaynak eklentileri sağlar. | Topluluk modülü |
| Migrate Tools | Drush üzerinden göçleri çalıştırma, durum izleme ve rollback komutları sunar. | Topluluk modülü |
| WordPress Migrate | WXR (XML) dosyalarını okuyup yazı, sayfa, yorum, etiket ve kategorileri Drupal varlıklarına eşler. | Topluluk modülü |
| Pathauto + Redirect | Yeni URL'lerin üretilmesi ve eski WordPress URL'lerinin 301 ile yönlendirilmesi. | Topluluk modülleri |
WordPress Migrate modülü, WXR formatındaki WordPress dışa aktarım dosyalarını çekirdekteki Migrate API üzerinden Drupal'a taşır; yazı, sayfa, yorum, ek dosya, etiket ve kategori aktarımını destekler ve göçler tamamen geri alınabilir. Modülün güncel sürümleri Drupal 10 ve 11 ile uyumlu şekilde geliştirilmektedir; kurulum öncesinde hedef Drupal sürümünüzle uyumlu sürümün seçilmesi önemlidir.
WordPress'ten Drupal'a Üç Farklı Geçiş Yöntemi
Her proje aynı yöntemle taşınmaz. Sitenin büyüklüğü, WordPress veritabanına erişim imkânı ve hedef Drupal kurulumunun türü, hangi yolun seçileceğini belirler.
WXR (XML Export) Dosyası ile Geçiş
En yaygın ve en erişilebilir yöntemdir. WordPress yönetim panelindeki Araçlar → Dışa Aktar adımıyla sitenin tüm içeriği WXR adı verilen bir XML dosyası olarak indirilir; WordPress Migrate modülü bu dosyayı okuyarak içerikleri Drupal'a aktarır. Veritabanı erişimi gerektirmediği için, hosting kısıtları olan veya farklı sunucularda barınan projelerde ideal çözümdür. Küçük ve orta ölçekli sitelerde süreç oldukça hızlı ilerler; ancak çok büyük medya arşivlerinde XML dosyası hantallaşabilir.
Doğrudan Veritabanı Bağlantısı ile Geçiş
Büyük ölçekli sitelerde daha performanslı olan yöntem, Drupal'ın WordPress veritabanına doğrudan bağlanarak veriyi canlı okumasıdır. Bu yaklaşımda kullanıcılar, yazılar, sayfalar, kategoriler, etiketler, medya ve yorumlar XML aktarımıyla uğraşmadan doğrudan WordPress MySQL veritabanından okunur ve eşdeğer Drupal varlıklarına dönüştürülür. Yöntemin ön koşulu, geçiş süresince WordPress veritabanına güvenli erişimin sağlanabilmesidir.
Drupal CMS için WordPress Migrate Recipe
2025'te yayımlanan Drupal CMS dağıtımı, "Recipes" mimarisiyle kurulum süreçlerini radikal biçimde sadeleştirdi. Drupal CMS kullanan projeler için WordPress Migrate Recipe, geçiş için gereken modül ve yapılandırmayı hazır bir paket olarak sunar. Küçük ölçekli, hızlı başlangıçlı projelerde teknik ekip ihtiyacını azaltan bu seçenek, Drupal'ın "kurulumu zor" algısını geçiş senaryolarında da kırmaktadır.
Adım Adım WordPress'ten Drupal'a Geçiş Süreci
Profesyonel bir geçiş projesi, içe aktarma butonuna basmaktan çok önce başlar. Aşağıdaki çerçeve, kurumsal ölçekte uygulanabilir bir yol haritası sunar.
- İçerik envanteri çıkarın: Kaç yazı, sayfa, kategori, kullanıcı ve medya dosyası var? Hangileri taşınacak, hangileri arşivlenecek? Geçiş, aynı zamanda içerik temizliği için en doğru andır.
- Tam yedek alın: Geçiş öncesinde WordPress veritabanı, medya dosyaları ve tema/eklenti yapısının eksiksiz yedeği alınmalıdır. Bu adımın metodolojisi için Drupal Yedekleme ve Felaket Kurtarma Stratejileri rehberimize göz atabilirsiniz.
- Hedef Drupal mimarisini tasarlayın: İçerik tipleri, alanlar, taksonomiler ve roller WordPress'in birebir kopyası olarak değil, kurumun gerçek ihtiyaçlarına göre kurgulanmalıdır.
- Göç modüllerini kurun ve eşleştirmeyi tanımlayın: Migrate Plus, Migrate Tools ve WordPress Migrate kurulur; kaynak-hedef eşleştirmeleri yapılandırılır.
- Staging ortamında test göçü çalıştırın: İlk göç asla canlı sitede yapılmaz. Test ortamında içerik bütünlüğü, görseller, yazar eşleşmeleri ve Türkçe karakterler tek tek doğrulanır.
- Sorunları düzeltin, rollback yapın, tekrarlayın: Migrate API'nin geri alma yeteneği sayesinde eşleştirme hataları maliyetsiz biçimde düzeltilir.
- URL yönlendirmelerini kurun: Eski WordPress URL'leri Redirect modülüyle 301 olarak yeni adreslere eşlenir.
- Canlıya geçin ve izleyin: Son içerik farkı (delta) aktarılır, DNS yönlendirilir; ilk haftalarda 404 raporları ve Search Console yakından takip edilir.
İçerik Eşleştirme: WordPress Kavramlarının Drupal Karşılıkları
Geçiş projelerinde ekiplerin en çok zorlandığı konu teknik komutlar değil, iki platformun kavram dünyası arasındaki çeviridir. Aşağıdaki tablo bu çeviriyi özetler.
| WordPress | Drupal Karşılığı | Not |
|---|---|---|
| Post (Yazı) | Node (Article içerik tipi) | Özel yazı tipleri ayrı içerik tiplerine eşlenir. |
| Page (Sayfa) | Node (Basic Page içerik tipi) | Hiyerarşik yapı menü ve Pathauto ile kurulur. |
| Category / Tag | Taxonomy (Vocabulary + Term) | Drupal'da taksonomi çok daha esnek ilişkiler kurar. |
| Custom Field (ACF) | Field API alanları | Alan tipleri birebir değil, işlevsel olarak eşlenir. |
| Media Library | Media varlıkları | Görseller yeniden kullanılabilir medya öğelerine dönüşür. |
| User / Author | User hesabı ve rolleri | Roller Drupal'ın gelişmiş yetki modeline göre yeniden tasarlanır. |
| Plugin | Module | Eklentiler taşınmaz; işlevin Drupal'daki karşılığı kurulur. |
| Theme | Theme | Tema taşınamaz; tasarım Drupal tema katmanında yeniden inşa edilir. |
Tablodaki en kritik satırlar son ikisidir: WordPress eklentileri ve temaları Drupal'a "taşınmaz". Taşınan şey içeriktir; işlevsellik ve tasarım, Drupal ekosisteminin kendi araçlarıyla — çoğu zaman daha sağlam biçimde — yeniden kurulur.
SEO'yu Kaybetmeden Geçiş: URL, Redirect ve Metadata Yönetimi
CMS değişiminde kurumların en büyük endişesi, yıllar içinde kazanılmış organik trafiğin kaybıdır. Bu endişe haklıdır; ancak yönetilebilir bir risktir. Doğru planlanan bir geçişte sıralama kaybı geçici ve minimal olur.
- URL haritası çıkarın: Geçiş öncesi tüm WordPress URL'lerinin listesi alınır; her eski URL'nin yeni Drupal karşılığı bir eşleştirme tablosunda tanımlanır.
- 301 yönlendirmeleri kurun: Redirect modülüyle eski URL'ler kalıcı olarak yeni adreslere yönlendirilir. Yıllar içinde harici sitelerde birikmiş backlink değeri bu sayede korunur.
- Metadata'yı taşıyın: Yoast veya Rank Math ile üretilmiş meta başlık ve açıklamalar, Drupal tarafında Metatag modülüne aktarılır.
- Sitemap'i yenileyin: Simple XML Sitemap ile üretilen yeni site haritası Google Search Console'a gönderilir; eski sitemap kaldırılır.
- İlk 4-6 haftayı izleyin: 404 hataları, tarama istatistikleri ve sıralama hareketleri düzenli raporlanır; gözden kaçan yönlendirmeler hızla eklenir.
Bu katmanın modül bazlı detaylarını Drupal SEO: Arama Motoru Uyumu İçin Bilmeniz Gerekenler yazımızda kapsamlı biçimde ele almıştık.
Üniversiteler İçin WordPress'ten Drupal'a Geçiş: Farklı Olan Ne?
Eğitim kurumlarında geçiş, tek bir sitenin taşınmasından daha büyük bir dönüşümdür. Tipik senaryo şudur: yıllar içinde fakülteler, araştırma merkezleri ve etkinlikler için açılmış onlarca bağımsız WordPress sitesi vardır; her biri farklı sürümde, farklı eklentilerle ve farklı güvenlik seviyelerinde çalışır. Geçiş projesi bu dağınık yapıyı tek bir Drupal multisite çatısında birleştirme fırsatıdır.
Bu senaryoda dikkat edilmesi gereken başlıca farklar şunlardır:
- Konsolidasyon planı: Hangi WordPress siteleri bağımsız alt site olarak kalacak, hangileri ana sitenin bölümü hâline gelecek? Bu karar, göç haritasından önce verilmelidir.
- Çok dilli içerik göçü: WordPress'te eklentiyle yönetilen Türkçe-İngilizce içerik çiftleri, Drupal'ın çekirdek çeviri sistemine doğru eşlenmelidir; aksi hâlde dil sürümleri kopuk içerikler olarak taşınır.
- Akademik arşiv değeri: Yıllara yayılan haber, duyuru ve yayın arşivi hem kurumsal hafıza hem de Webometrics görünürlüğü açısından değerlidir; "eski içerikleri taşımayalım" kolaycılığı uzun vadeli SEO değerini yok eder.
- Kullanıcı ve rol dönüşümü: Onlarca sitedeki dağınık editör hesapları, Drupal tarafında LDAP/CAS entegrasyonlu merkezi kimlik yönetimiyle birleştirilebilir.
- Zamanlama: Geçişin canlıya alınması kayıt dönemi, tercih haftaları veya sınav sonuç ilanları gibi yoğun trafik pencerelerinin dışında planlanmalıdır.
Geçiş Projelerinde Sık Yapılan Hatalar
- WordPress yapısını birebir kopyalamak: Geçiş, mevcut karmaşayı yeni platforma taşımak için değil, içerik mimarisini yeniden kurmak için bir fırsattır.
- Test göçü yapmadan canlıya geçmek: İlk göç her zaman staging ortamında çalıştırılmalı; içerik, medya ve karakter kodlaması doğrulanmalıdır.
- URL yönlendirmelerini ihmal etmek: 301 haritası olmayan bir geçiş, yılların organik trafiğini ve backlink değerini birkaç haftada eritebilir.
- Medya dosyalarını unutmak: İçerik metni taşınır ama görseller eski sunucuda kalırsa, site kırık görsellerle yayına girer.
- Geçişi yalnızca teknik proje olarak görmek: Editör ekiplerinin Drupal arayüzüne dair eğitim almaması, en başarılı teknik geçişi bile verimsiz kılar.
WordPress'ten Drupal'a Geçiş Hakkında Merak Edilenler
WordPress'ten Drupal'a geçiş ne kadar sürer?
Sitenin ölçeğine bağlıdır. Standart içerik yapısına sahip bir kurumsal blog birkaç hafta içinde taşınabilirken; çok dilli, çok siteli ve özel alan yapıları içeren üniversite ölçeğindeki projelerde planlama, göç, test ve canlıya geçiş süreci toplamda 2–4 ayı bulabilir. Süreyi belirleyen ana faktör içerik hacmi değil, içerik yapısının karmaşıklığıdır.
Geçiş sırasında içeriklerim kaybolur mu?
Doğru planlanan bir geçişte hayır. Migrate API'nin en güçlü yanı, göçlerin geri alınabilir ve tekrarlanabilir olmasıdır: bir eşleştirme hatası tespit edildiğinde rollback yapılır, düzeltilir ve göç yeniden çalıştırılır. Ayrıca geçiş öncesi alınan tam yedek, her senaryoda güvenlik ağı işlevi görür.
CMS değiştirince SEO sıralamalarım düşer mi?
URL haritalama ve 301 yönlendirmeleri doğru kurulduğunda kalıcı bir düşüş yaşanmaz; geçiş sonrası ilk haftalarda küçük dalgalanmalar normaldir ve genellikle hızla toparlanır. Hatta Drupal'ın güçlü önbellek mimarisi ve yapılandırılmış içerik mimarisi, orta vadede Core Web Vitals ve indexlenme performansını iyileştirerek SEO'ya pozitif katkı sağlayabilir.
WordPress temam ve eklentilerim Drupal'a taşınır mı?
Hayır; iki platformun tema ve eklenti mimarileri birbirinden tamamen farklıdır. Taşınan şey içerik, kullanıcılar, medya ve taksonomidir. Tasarım, Drupal tema katmanında yeniden inşa edilir; eklentilerin sağladığı işlevlerin ise Drupal modül ekosisteminde karşılıkları kurulur. Bu, çoğu projede tasarımı ve işlevleri modernize etmek için doğal bir fırsata dönüşür.
WXR ile mi yoksa veritabanı bağlantısıyla mı geçmeliyim?
Küçük ve orta ölçekli sitelerde WXR dosyasıyla geçiş pratik ve yeterlidir; veritabanı erişimi gerektirmez. Büyük içerik arşivine sahip, yüksek hacimli sitelerde ise doğrudan veritabanı bağlantısı daha hızlı ve güvenilirdir. Drupal CMS üzerine kurulan yeni projelerde WordPress Migrate Recipe, süreci en az teknik bilgiyle yönetilebilir hâle getirir. Doğru tercih; içerik hacmi, erişim imkânları ve hedef mimariye göre keşif aşamasında netleştirilmelidir.