WordPress'ten React'e Geçiş: Domain, Sunucu ve Mimari Rehberi
WordPress, kurumsal sitelerin büyük bölümü için iyi bir başlangıç noktası. Ancak site büyüdükçe eklenti yığını, çok dilli içerik yönetimi, güvenlik güncellemeleri ve performans sorunları bakım yükünü artırıyor. Yakın zamanda dört dilde yayın yapan, 200'den fazla sayfası ve onlarca blog yazısı bulunan kurumsal bir siteyi WordPress'ten modern bir mimariye taşıdık. Bu yazıda, benzer bir geçişi planlayan ekipler için kararlarımızı ve dikkat edilmesi gereken noktaları paylaşıyoruz.
Müşterimiz Neden WordPress'ten Ayrıldı?
Eklenti bağımlılığı: Çok dillilik, formlar, SEO ve önbellek için ayrı eklentiler kullanılıyordu. Her güncelleme ayrı bir risk demekti.
Performans: Sayfalar her istekte PHP ve veritabanı üzerinden üretiliyordu. Önbellek eklentileri de sorunu tam çözmüyordu.
Güvenlik yüzeyi: Açık yönetim paneli, eski eklentiler ve tema dosyaları sürekli takip gerektiriyordu.
İçerik yapısı: Sayfa oluşturucuların ürettiği karmaşık HTML, içeriği farklı kanallarda yeniden kullanmayı zorlaştırıyordu.
Yeni Mimari: Üç Parça, Tek Veritabanı
Yeni yapıyı birbirinden bağımsız üç parça olarak tasarladık:
Web sitesi (Next.js / React): Sayfalar derleme anında statik HTML olarak üretiliyor. Ziyaretçiye sunucuda hiçbir kod çalıştırmadan, doğrudan hazır dosya gidiyor.
İçerik API'si (ASP.NET Core + SQL Server): Sayfa, blog, form ve ayar verilerinin tek kaynağı. Herkese açık uçlar kısa süreli önbellekle çalışıyor.
Yönetim paneli (Next.js): Editörler sayfaları, yazıları, çevirileri ve belgeleri buradan yönetiyor. Rol bazlı yetkilendirme ve işlem kaydı var.
Bu yapının en büyük kazancı, statik sitenin hızı ile dinamik içerik yönetiminin birleşmesi. Panelde yapılan bir değişiklik, yeniden derleme beklemeden sayfa açıldığında API'den tazeleniyor. Düzenli derlemeler ise arama motorlarının her zaman tam içeriği görmesini sağlıyor.
İçerik Blokları
WordPress'teki serbest HTML yerine içeriği yapılandırılmış bloklar olarak saklıyoruz: başlık, paragraf, liste, tablo ve görsel. Böylece içerik doğrulanabiliyor, içindekiler tablosu otomatik oluşuyor ve aynı veri farklı tasarımlarda sorunsuz kullanılabiliyor.
Çok Dillilik
Her sayfa ve yazının dillerdeki karşılıkları tek kayıt altında tutuluyor. Bir dilde çeviri yoksa ziyaretçiye varsayılan dildeki içerik bir bilgi notuyla gösteriliyor. Dil değiştirildiğinde kullanıcı ana sayfaya değil, aynı içeriğin çevirisine gidiyor. hreflang etiketleri ve site haritası da buna göre otomatik üretiliyor.
Tek Panelden Birden Fazla Site
Veritabanını baştan çoklu site destekleyecek şekilde kurduk. Aynı panelden farklı alan adlarına sahip birden fazla site yönetilebiliyor. Kullanıcıların hangi siteye erişebileceği ayrıca yetkilendiriliyor.
İçerik Aktarımı: WordPress'ten Veritabanına
Yüzlerce sayfayı elle taşımak hem yavaş hem hataya açık olurdu. Bu yüzden bir aktarım aracı yazdık:
WordPress REST API üzerinden sayfa, yazı, kategori ve dil eşleşmeleri çekildi.
Sayfa oluşturucunun ürettiği HTML temizlenerek içerik bloklarına dönüştürüldü.
Farklı dillerdeki içerikler çeviri ilişkilerine göre aynı kayda bağlandı.
Görseller kendi sunucumuza alındı, içerikteki adresler güncellendi.
Aktarım sonrası otomatik kontrollerle bozulmuş tablolar, artık etiketler ve yanlış dilde kalmış metinler tespit edilip düzeltildi.
Önemli ders: Aktarım aracını tekrar çalıştırılabilir (idempotent) yazın. Canlı sitede içerik girişi devam ederken birkaç kez aktarım yapmanız gerekecek.
SEO'yu Kaybetmeden Geçiş
Geçişin en kritik başarı ölçütü, arama motoru sıralamalarının korunmasıydı. Bunun için:
Adresleri birebir koruduk: Mevcut sayfa ve yazı adresleri, sondaki eğik çizgi dahil aynı bırakıldı.
Değişen adresler için 301 yönlendirme tanımladık. Eski kategori ve arşiv sayfaları en yakın yeni sayfaya yönlendirildi.
Meta başlık ve açıklamalar aktarıldı. Eksik olanlar panelden tamamlanabilir hâle getirildi.
Site haritası ve hreflang her derlemede otomatik üretiliyor.
Geçiş sonrası Search Console üzerinden yeni site haritası gönderildi, tarama hataları takip edildi.
Sunucu ve Barındırma
Mevcut altyapıyı değiştirmemek için yeni sistemi aynı Windows sunucuda, Plesk ve IIS üzerinde çalıştırdık. .NET uygulaması hem API'yi hem de statik site ile yönetim paneli dosyalarını sunuyor. Bu sayede tek bir uygulama havuzu ve tek bir yayın paketi var.
Gizli bilgiler koddan ayrı: Veritabanı bağlantısı, oturum anahtarları ve bot koruması anahtarları yalnızca sunucudaki ortam ayarlarında tutuluyor, depoya girmiyor.
Tek paketle yayın: API, site ve panel tek bir zip dosyası olarak yükleniyor. Sunucudaki ayar dosyalarına dokunulmuyor.
Veritabanı güncellemeleri betikle: Canlı veritabanı kopyalanmıyor. Değişiklikler, tekrar çalıştırılabilir ve daha önce elle yapılmış düzenlemeleri ezmeyen SQL betikleriyle uygulanıyor.
Domain ve DNS Geçişi
Burada iki farklı işlemi birbirine karıştırmamak gerekiyor:
Siteyi yeni sunucuya yönlendirmek yalnızca DNS kayıtlarını (A / CNAME) değiştirmek demektir. Domain aynı kayıt firmasında kalır.
Domaini başka bir kayıt firmasına taşımak ise ayrı bir süreçtir: domain kilidi açılır, transfer (EPP) kodu alınır, yeni firmada transfer başlatılır. Bu sırada DNS kayıtlarının kaybolmaması için önce mevcut kayıtların yedeği alınmalıdır.
Kesintisiz bir geçiş için izlediğimiz adımlar:
Geçişten birkaç gün önce DNS kayıtlarının TTL süresini kısalttık (ör. 300 saniye).
Yeni siteyi geçici bir adreste yayına alıp tüm sayfaları ve formları test ettik.
SSL sertifikasını yeni yapı için önceden hazırladık.
E-posta kayıtlarına (MX, SPF, DKIM, DMARC) dokunmadık. Yalnızca web kayıtları değişti.
Geçiş anında DNS kaydını güncelledik, eski siteyi bir süre yedek olarak açık tuttuk.
Geçişten sonra 404 kayıtlarını izleyerek eksik yönlendirmeleri tamamladık.
Güvenlik ve KVKK
Formlarda görünmez bot koruması ve istek sınırlaması kullanılıyor.
Analitik ve üçüncü taraf içerikler yalnızca ziyaretçi çerez onayı verdikten sonra yükleniyor.
Form ve başvuru verileri, belirlenen saklama süresi dolunca otomatik olarak imha ediliyor.
Ziyaret istatistikleri çerezsiz ve maskelenmiş IP ile tutuluyor.
Sonuç
WordPress'ten ayrılmak her proje için doğru karar olmayabilir. Ancak çok dilli, sık güncellenen ve güvenlik beklentisi yüksek kurumsal sitelerde statik ön yüz + API + özel panel mimarisi; hız, güvenlik ve bakım kolaylığı açısından belirgin avantaj sağlıyor. Başarının anahtarı teknolojiden çok planlamada: adresleri korumak, içeriği temiz aktarmak ve geçişi geri alınabilir adımlarla yapmak.
Benzer bir geçiş planlıyorsanız, mevcut sitenizin analizinden yayın sonrası takibe kadar tüm süreçte destek olmaktan memnuniyet duyarız.