Bir ajans olarak on beş farklı müşteri sitesi mi yürütüyorsunuz, yoksa bir üniversite kampüsünde her bölümün kendi bloğunu açması mı gerekiyor? Her site için ayrı bir WordPress kurulumu, ayrı bir veritabanı ve tek tek güncelleme derdine girmek yerine, tek bir kurulumdan onlarca (hatta yüzlerce) siteyi birden yönetmek mümkün. Bu yazıda WordPress'in Multisite (çoklu site ağı) özelliğinin ne işe yaradığını, hangi senaryolarda gerçek bir fayda sağladığını, subdomain ile subdirectory yapısı arasındaki farkı ve kurulumu wp-config.php ile .htaccess üzerinden nasıl etkinleştireceğinizi adım adım ele alıyoruz.
WordPress Multisite Nedir?#
Multisite, standart bir WordPress kurulumunun üzerine eklenen bir ağ katmanıdır. Tek bir WordPress çekirdeği, tek bir veritabanı ve ortak bir eklenti/tema deposu kullanarak birden fazla bağımsız site (WordPress terminolojisinde "site", eski adıyla "blog") çalıştırmanızı sağlar. Her site kendi içeriğine, kendi kullanıcılarına ve kendi ayarlarına sahip olabilir; ama hepsi aynı çekirdek dosyaları üzerinden, aynı temalar ve eklentilerle çalışır.
Bu, teknik olarak aynı veritabanı içinde ek tablo setleri oluşturularak sağlanır. Sıradan bir WordPress kurulumunda wp_posts, wp_options gibi tablolar bulunurken, Multisite'ta her yeni site için wp_2_posts, wp_3_options gibi site'a özel tablolar eklenir. Kullanıcı tabloları (wp_users, wp_usermeta) ise ağ genelinde ortaktır — yani tek bir kullanıcı hesabı, izin verildiği takdirde ağdaki birden fazla sitede aynı anda oturum açabilir, her sitede farklı bir rolle (yönetici, yazar, abone vb.) görünebilir.
Ne Zaman Multisite Kullanmalısınız?#
Multisite her senaryo için doğru çözüm değildir; asıl gücünü şu durumlarda gösterir:
- Çok dilli kurumsal siteler: Aynı markanın
tr.example.com,en.example.com,de.example.comgibi dil bazlı alt sitelerini tek merkezden yönetmek istediğinizde. - Ajans/bayi (reseller) modeli: Bir ajans, her müşteri için ayrı WordPress kurmak yerine tek panelden onlarca müşteri sitesini yönetmek istediğinde. Bu modelde ajanslar genellikle bir reseller hosting paketiyle birlikte Multisite kurar.
- Kampüs/kurum ağları: Bir üniversitenin her fakültesine, her bölümüne kendi blogunu/sitesini açması gerektiğinde (WordPress.com'un altyapısı da temelde böyle işler).
- Marka aileleri: Aynı şirketin birden fazla markası veya ürün hattı için görünüm olarak farklı ama altyapı olarak ortak siteler gerektiğinde.
Buna karşılık, birbiriyle ilgisi olmayan, farklı müşterilere ait, tamamen bağımsız güvenlik ve performans gereksinimleri olan projelerde Multisite yerine ayrı WordPress hosting kurulumları ya da bağımsız bir VDS üzerinde birbirinden yalıtılmış kurulumlar genellikle daha sağlıklı bir tercihtir. Tek bir sitedeki güvenlik açığı veya ani trafik patlaması, aynı ağdaki diğer tüm siteleri de etkileyebilir; bu riski göze almadan önce ihtiyacınızı iyi tartmanızda fayda var.
Subdomain mı, Subdirectory mi?#
Multisite kurulumunda iki yapı seçeneğiniz var ve bu seçim kurulumdan sonra kolayca değiştirilemediği için baştan doğru karar vermek gerekiyor.
Subdomain Yapısı#
Her site kendi alt alan adıyla yayınlanır: site1.example.com, site2.example.com gibi. Alt alan adlarının nasıl çalıştığı hakkında daha fazla bilgi için subdomain nedir yazımıza bakabilirsiniz. Subdomain yapısının başlıca avantajları:
- Google Analytics ve arama motoru optimizasyonu açısından siteler birbirinden daha net ayrışır.
- İleride bir siteyi tamamen bağımsız bir alan adına (ör.
site1.com) taşımak istediğinizde domain eşleme (domain mapping) daha sorunsuz çalışır. - Bazı üçüncü parti servisler (analytics, CDN, e-posta doğrulama gibi) subdomain bazlı yapılandırmayı subdirectory'e göre daha kolay tanır.
Dezavantajı ise DNS tarafında her subdomain için bir joker (wildcard) kaydı gerektirmesidir:
*.example.com. IN A 203.0.113.10
(Yukarıdaki IP adresi yalnızca örnek amaçlıdır; kendi sunucunuzun gerçek IP adresini kullanmalısınız.) Bu kaydı domain yönetim panelinizden ya da DNS sağlayıcınız üzerinden eklemeniz gerekir.
Subdirectory Yapısı#
Her site aynı alan adının altında bir klasör gibi yayınlanır: example.com/site1, example.com/site2. Wildcard DNS gerektirmediği için kurulumu daha sadedir ve genellikle küçük ölçekli, tek sunucuda kalacak projelerde tercih edilir. Ancak URL yapısı biraz daha "iç içe" göründüğü için kurumsal markaların bir kısmı yine de subdomain'i tercih eder.
Pratik ipucu: İleride siteleri farklı alan adlarına ayırma ihtimaliniz varsa subdomain yapısını seçin. Tek alan adı altında kalmayı planlıyorsanız subdirectory daha az DNS bakımı gerektirir ve kuruluşu hızlandırır.
Kurulum Öncesi Hazırlık#
Multisite'ı etkinleştirmeden önce birkaç ön koşulu tamamlamanız gerekir:
- Temiz bir WordPress kurulumu — Multisite'ı, üzerinde aktif eklentiler ve özelleştirmeler bulunan mevcut bir siteye eklemek yerine, mümkünse sıfır bir kurulumda başlatmak sorun çıkma ihtimalini büyük ölçüde azaltır.
- Tam yedek alın — Var olan bir siteye Multisite ekliyorsanız veritabanı ve dosya yedeğini mutlaka önceden alın. Clou.TR panelindeki yedekleme hizmeti bu adımı kolaylaştırır.
- Tüm eklentileri geçici olarak devre dışı bırakın — Ağ etkinleştirme sırasında eklenti çakışması yaşamamak için bu adım önerilir; kurulum tamamlandıktan sonra eklentileri tek tek geri açabilirsiniz.
- Sunucu/hosting desteği — Wildcard subdomain kullanacaksanız hosting sağlayıcınızın buna izin verdiğinden emin olun. Kendi VDS veya sanal sunucunuzda tam kontrol sizde olduğu için bu genelde bir engel teşkil etmez.
wp-config.php ile Multisite'ı Etkinleştirme#
Multisite özelliğini açmak için wp-config.php dosyasına aşağıdaki satırı, /* That's all, stop editing! */ satırından önce eklemeniz gerekir:
define('WP_ALLOW_MULTISITE', true);
Bu satırı ekleyip kaydettikten sonra yönetim panelinde Araçlar > Ağ Kur (Tools > Network Setup) menüsü görünür hale gelir. Bu ekrandan subdomain ya da subdirectory yapısını seçer, ağın başlığını girer ve "Kur" düğmesine basarsınız.
WordPress bu adımın ardından size iki kod bloğu sunar: biri wp-config.php için, diğeri .htaccess için. Bu kodları uygulamadan ağ aktif hale gelmez.
wp-config.php dosyasına eklenecek örnek blok şuna benzer:
define('MULTISITE', true);
define('SUBDOMAIN_INSTALL', false); // subdirectory için false, subdomain için true
define('DOMAIN_CURRENT_SITE', 'example.com');
define('PATH_CURRENT_SITE', '/');
define('SITE_ID_CURRENT_SITE', 1);
define('BLOG_ID_CURRENT_SITE', 1);
SUBDOMAIN_INSTALL değerini yukarıda anlattığımız tercihinize göre true ya da false yapmanız gerekir — bu ayar sonradan pratik olarak değiştirilemez, bu yüzden kurulum öncesi karar netleşmiş olmalı.
.htaccess Ayarları#
Apache tabanlı bir kurulumda, WordPress'in Ağ Kur ekranı size aşağıdakine benzer bir .htaccess bloğu sunar (subdirectory yapısı için örnek):
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
# add a trailing slash to /wp-admin
RewriteRule ^wp-admin$ wp-admin/ [R=301,L]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^(wp-(content|admin|includes).*) $1 [L]
RewriteRule ^(.*\.php)$ $1 [L]
RewriteRule . index.php [L]
Bu bloğu, mevcut .htaccess dosyanızdaki standart WordPress kurallarının yerine koymanız gerekir; iki farklı kural setini aynı anda tutmayın, çakışmaya yol açar. .htaccess ile URL yönlendirme mantığı hakkında daha ayrıntılı bilgi için .htaccess ile yönlendirme yazımıza göz atabilirsiniz.
Değişikliklerin ardından WordPress sizden yeniden giriş yapmanızı ister — bu normaldir, çünkü oturum çerezleri ağ yapısına uygun şekilde yeniden ayarlanır.
Ağ Yöneticisi (Network Admin) Panelini Tanımak#
Multisite etkinleştikten sonra üst menüde yeni bir bölüm belirir: Ağ Yöneticisi (My Sites > Network Admin). Bu panelden yönetebilecekleriniz şunlardır:
- Siteler: Ağdaki tüm siteleri listeler; yeni site ekleme, silme, arşivleme işlemlerini buradan yaparsınız.
- Kullanıcılar: Ağ genelindeki tüm kullanıcı hesaplarını yönetir; bir kullanıcıyı birden fazla siteye ekleyebilir, rollerini site bazında farklılaştırabilirsiniz.
- Temalar: Yüklenen temaları "Ağ Etkinleştir" (Network Enable) ile tüm sitelerin kullanımına açabilir ya da yalnızca belirli sitelere izin verebilirsiniz.
- Eklentiler: Eklentileri ağ genelinde etkinleştirebilir (tüm sitelerde otomatik aktif olur) ya da site yöneticilerinin kendi sitelerinde ayrı ayrı etkinleştirmesine izin verebilirsiniz.
- Ayarlar: Yeni kayıt kuralları, varsayılan dil, medya yükleme limitleri gibi ağ genelindeki ortak ayarlar.
Yeni Site Ekleme#
Ağ Yöneticisi > Siteler > Yeni Ekle yolundan yeni bir site oluşturmak birkaç saniye sürer: site adresini (subdomain ya da subdirectory), başlığı ve yönetici e-postasını girmeniz yeterlidir. WordPress gerekli veritabanı tablolarını otomatik olarak oluşturur.
Tema ve Eklentilerin Ağ Genelinde Yönetimi#
Multisite'ın en somut pratik faydalarından biri budur: bir eklentiyi bir kez güncellersiniz, ağdaki tüm siteler güncel sürümü kullanır. Ancak dikkat edilmesi gereken nokta, her sitenin farklı eklenti ihtiyaçları olabileceğidir — bu yüzden çoğu ajans, eklentileri ağ genelinde zorunlu olarak etkinleştirmek yerine bir "kullanılabilir eklenti havuzu" oluşturur ve her site yöneticisinin kendi sitesinde ihtiyaç duyduğunu seçmesine izin verir.
Bir site özelinde farklı bir tema/eklenti davranışı gerekiyorsa, wp-content/themes ve wp-content/plugins klasörleri ağ genelinde ortak olduğu için bu tür ayrımlar genellikle kod seviyesinde is_multisite() ve get_current_blog_id() fonksiyonlarıyla yapılır.
Multisite'ın Artıları ve Eksileri#
| Artılar | Eksiler |
|---|---|
| Tek çekirdek güncellemesi tüm siteleri kapsar | Bir sitedeki güvenlik ihlali potansiyel olarak tüm ağı etkileyebilir |
| Ortak eklenti/tema yönetimi zaman kazandırır | Bazı eklentiler Multisite ile tam uyumlu çalışmaz |
| Merkezi kullanıcı yönetimi sağlar | Kaynak paylaşımı nedeniyle bir sitenin yoğun trafiği diğerlerini yavaşlatabilir |
| Yeni site açmak saniyeler sürer | Subdomain/subdirectory kararı sonradan pratik olarak değiştirilemez |
| Ajans/bayi modeli için ölçeklenebilir | Yedekleme ve taşıma standart WordPress'e göre daha karmaşıktır |
Dikkat Edilmesi Gereken Noktalar#
- Yedekleme karmaşıklığı: Standart bir yedekleme eklentisi bazen yalnızca ana siteyi yedekler, alt siteleri atlayabilir. Multisite'a özel yedekleme eklentileri kullanın ya da sunucu seviyesinde tam veritabanı + dosya yedeği alın. Yedekleme hizmetinizin Multisite'ı eksiksiz kapsadığından emin olun.
- Güvenlik: Ağdaki tüm sitelerin güvenliği, zincirin en zayıf halkası kadar güçlüdür. Bir alt sitedeki güvenlik açığı tüm ağı riske atabilir. Bir SSL sertifikası kullanmak ve WAF (web uygulama güvenlik duvarı) katmanı eklemek Multisite kurulumlarında özellikle önem kazanır.
- Performans ve DDoS riski: Ağdaki bir sitenin ani trafik artışı ya da kötü amaçlı bir saldırı, aynı sunucudaki diğer siteleri de yavaşlatabilir. Büyük ölçekli Multisite ağları için yeterli kaynağa sahip bir VDS ya da özel sunucu tercih edin; ayrıca bir DDoS koruma katmanı eklemeyi değerlendirin.
- Site sayısında teknik bir sınır yok ama pratik sınırlar var: WordPress teorik olarak binlerce siteyi destekleyebilir, ama disk alanı, RAM ve veritabanı sorgu performansı gerçek sınırlayıcı unsurlardır.
- Domain eşleme (mapping): Subdomain yapısında bile bir siteyi tamamen farklı bir alan adına bağlamak mümkündür ("domain mapping" eklentileriyle), ama bu ekstra DNS ve SSL yönetimi gerektirir; her eşlenen alan adı için ayrı bir SSL sertifikası düşünmeniz gerekebilir.
- Site taşıma zorluğu: Bir alt siteyi ağdan çıkarıp bağımsız bir WordPress kurulumuna taşımak, düz bir WordPress sitesini taşımaktan daha fazla adım gerektirir (tablo öneki değişimi, URL güncellemeleri, medya yollarının yeniden düzenlenmesi gibi). Böyle bir taşıma planlıyorsanız site taşıma hizmetinden destek almak süreci ciddi ölçüde kolaylaştırabilir.
- PHP ve bellek limitleri: Ağ büyüdükçe her istek daha fazla eklenti/tema dosyasını yükleyebileceğinden,
php.iniiçindekimemory_limitdeğerini standart bir tekil siteye göre daha cömert tutmak gerekebilir; özellikle çok sayıda ağ genelinde etkin eklentiniz varsa bu ayarı gözden geçirin.
Sıkça Sorulan Sorular#
Multisite kurulduktan sonra subdomain ve subdirectory yapısı arasında geçiş yapabilir miyim?#
Hayır, bu karar ağı kurduğunuz anda SUBDOMAIN_INSTALL sabiti ile kilitlenir ve resmi olarak desteklenen bir geçiş yolu yoktur. Yapıyı değiştirmek isterseniz, pratikte ağı sıfırdan yeniden kurup siteleri manuel olarak taşımanız gerekir.
Her eklenti Multisite ile uyumlu mudur?#
Hayır. Özellikle site-özel önbellekleme veya kullanıcı yönetimi yapan bazı eklentiler, "Network Compatible" etiketiyle işaretlenmemişse beklenmedik sorunlara yol açabilir. Kurulum öncesinde eklenti sayfasındaki uyumluluk notlarını kontrol etmeniz önerilir.
Multisite kullanmak SEO'yu olumsuz etkiler mi?#
Doğru yapılandırıldığında hayır. Her site kendi URL yapısına, kendi meta verilerine ve kendi site haritasına (sitemap) sahip olabilir. Subdomain yapısı kullanıyorsanız Google Search Console'a her subdomain'i ayrı bir mülk olarak eklemeniz gerektiğini unutmayın.
Kaç site açarsam sunucum yetersiz kalır?#
Kesin bir rakam vermek mümkün değil; bu tamamen trafik yoğunluğuna, eklenti yüküne ve veritabanı sorgu sıklığına bağlıdır. On-yirmi düşük trafikli kurumsal site paylaşımlı bir pakette rahatça çalışabilirken, yüksek trafikli onlarca site için özel kaynaklara sahip bir VDS gerekebilir.
Multisite yerine ayrı WordPress kurulumları mı yapmalıyım?#
Siteleriniz birbirinden tamamen bağımsız yönetilecekse, farklı ekiplerin erişimi olacaksa ya da güvenlik izolasyonu kritikse ayrı kurulumlar daha güvenlidir. Ortak yönetim, ortak marka kimliği ve merkezi kontrol öncelikliyse Multisite ciddi zaman kazandırır.
Mevcut tek bir WordPress sitesini sonradan Multisite'a çevirebilir miyim?#
Evet, WP_ALLOW_MULTISITE sabitini ekleyip Ağ Kur adımlarını izleyerek mevcut bir kurulumu ağa dönüştürebilirsiniz; mevcut siteniz ağın ana sitesi (site ID 1) haline gelir. Ancak bu işlemden önce mutlaka tam yedek almanızı öneririz, çünkü geri dönüş kolay değildir.
Multisite, doğru senaryoda kurulduğunda ciddi bir zaman tasarrufu sağlar; ama gereksinimlerinizi netleştirmeden aceleyle kurulmamalıdır. Kurulum, yedekleme ya da performans tarafında destek almak isterseniz Clou.TR'nin WordPress hosting paketleri Multisite kurulumlarını destekleyecek şekilde yapılandırılabilir.