WordPress

    WordPress'i Alt Dizinden Kok Dizine Tasima

    Alt klasordeki WordPress'i kok dizine sorunsuz tasima yontemi

    11 dk okuma Güncellendi: 10 Temmuz 2026

    WordPress kurulumları çoğu zaman aceleyle yapılır: yeni bir alan adı alınır, sitenin bir köşesinde denemek için site.com/blog ya da site.com/wordpress gibi bir alt klasöre kurulur, sonra da o geçici görünen kurulum kalıcıya döner. Aradan aylar geçtiğinde ise ziyaretçilerinizin ana sayfanıza site.com yazarak değil, site.com/blog yazarak ulaşması hem görsel olarak hem de arama motoru sıralaması açısından sizi rahatsız etmeye başlar. Ana alan adının kök dizini boş dururken tüm içeriğinizin bir alt klasörde yaşaması, ne profesyonel bir görüntü verir ne de en temiz URL yapısını sunar.

    İyi haber şu ki WordPress'i alt dizinden kök dizine taşımak, sanılanın aksine tüm dosyaları taşıyıp yeniden kurulum yapmayı gerektirmez. WordPress'in kendi mimarisi bu senaryoyu düşünerek tasarlanmıştır: "WordPress dosyalarının bulunduğu yer" ile "ziyaretçinin adres çubuğunda gördüğü adres" birbirinden ayrı iki kavramdır. Bu ayrımı doğru kullandığınızda, dosyalarınızın büyük kısmını yerinde bırakıp sadece iki küçük dosyayı kopyalayarak ve birkaç satır yönlendirme kuralı yazarak, ziyaretçilerinizin ve Google'ın gözünde sitenizi kök dizine "taşımış" olursunuz. Bu rehberde bu ayrımı, adım adım taşıma sürecini, SEO değerini koruyan 301 yönlendirmeleri ve taşıma sonrası kontrol listesini uygulamalı olarak ele alacağız.

    WordPress Adresi ile Site Adresi Arasındaki Fark#

    Taşıma işlemini kavramanın anahtarı, WordPress panelinde Ayarlar → Genel ekranındaki iki alanı doğru anlamaktan geçer. İlki WordPress Adresi (URL), ikincisi ise Site Adresi (URL)'dir. Veritabanında bu iki değer wp_options tablosunda sırasıyla siteurl ve home satırlarında saklanır.

    WordPress Adresi (siteurl), WordPress'in çekirdek dosyalarının (yani wp-admin, wp-includes klasörlerinin ve wp-login.php gibi dosyaların) fiziksel olarak nerede durduğunu belirtir. Site Adresi (home) ise ziyaretçilerin sitenize erişmek için tarayıcıya yazdığı adrestir. Çoğu standart kurulumda bu iki değer aynıdır; ama WordPress bunların farklı olmasına özellikle izin verir. İşte alt dizinden köke taşıma tam olarak bu esneklikten faydalanır: WordPress dosyaları site.com/blog içinde kalmaya devam ederken, ziyaretçilere sitenin adresi site.com olarak sunulur.

    AlanVeritabanı satırıNe belirtirTaşıma sonrası değer
    WordPress AdresisiteurlÇekirdek dosyaların yerihttps://site.com/blog
    Site AdresihomeZiyaretçinin gördüğü adreshttps://site.com

    Dikkat edin: en yaygın hatalardan biri, panik halinde her iki alanı da aynı anda https://site.com yaparak dosyalar hâlâ blog klasöründeyken WordPress'in kendini bulamaz hale gelmesidir. Bu durumda panele giriş dahi yapamayabilirsiniz. Bu yüzden sıralamaya sadık kalmak kritik önemdedir. WordPress'in kurulum mantığını ve bu alanların ilk nasıl oluştuğunu hatırlamak isterseniz WordPress kurulumu rehberimize göz atabilirsiniz.

    Taşımadan Önce Yedek Almak ve Hazırlık#

    Adres alanlarına dokunan her işlem, bir hata durumunda sizi doğrudan siteye erişimden koparabilecek risktedir. Bu yüzden ilk adım her zaman eksiksiz bir yedektir: hem dosyalar hem veritabanı. cPanel kullanıyorsanız Dosya Yöneticisi üzerinden blog klasörünü sıkıştırıp indirin ve phpMyAdmin'den veritabanının bir .sql dışa aktarımını alın. Komut satırı erişiminiz varsa aşağıdaki gibi tek seferde her ikisini de arşivleyebilirsiniz:

    # Dosyalari arsivle
    cd ~/public_html
    tar -czf blog-yedek.tar.gz blog/
    
    # Veritabanini disa aktar (utf8mb4 ile Turkce karakter guvende)
    mysqldump --default-character-set=utf8mb4 -u db_kullanici -p db_adi > blog-veritabani.sql
    

    Yedeği aldıktan sonra iki noktayı not edin. Birincisi, kök dizininizin (genellikle public_html) gerçekten boş ya da en azından WordPress'le çakışmayacak durumda olması gerekir; kökte başka bir index.html ya da tanıtım sayfası varsa taşıma sonrası bu dosya sitenizin önüne geçer. İkincisi, blog klasörünüzdeki kalıcı bağlantı (permalink) yapısının "Sade" (Plain) değil, "Yazı adı" (Post name) gibi yeniden yazma kuralı gerektiren bir yapıda olup olmadığını kontrol edin; çünkü .htaccess kopyalama adımı yalnızca bu durumda anlam taşır. Düzenli otomatik yedekleme alışkanlığınız yoksa, bu tür kritik işlemler öncesinde güven altına almak için yedekleme hizmetimiz devreye girebilir.

    Adım 1: Genel Ayarlardan WordPress Adresini Ayarlama#

    Şimdi asıl işleme geçiyoruz. WordPress panelinize site.com/blog/wp-admin adresinden girin ve Ayarlar → Genel ekranını açın. Burada:

    • WordPress Adresi (URL) alanına dokunmayın; https://site.com/blog olarak kalsın. Çünkü dosyalarınız hâlâ bu klasörde duruyor.
    • Site Adresi (URL) alanını https://site.com olarak değiştirin (sondaki blog kısmını silin).

    Değişiklikleri kaydedin. Bu noktada beklenen bir tuhaflık yaşarsınız: kaydettikten sonra ana sayfanız muhtemelen kırık görünecek ya da hâlâ eski adrese gidiyor olacaktır. Panik yapmayın, çünkü sürecin ikinci yarısını, yani dosya kopyalama ve yönlendirme adımlarını henüz tamamlamadık. Bu ara durumda wp-admin paneline erişiminiz site.com/blog/wp-admin üzerinden devam eder; yönetim adresi taşıma sonrasında da bu şekilde kalabilir, bu tamamen normaldir.

    Eğer bir hata yapıp panele giremez hale gelirseniz, çözüm dosyalarda değil wp-config.php içindedir. Aşağıdaki iki satırı ekleyerek veritabanındaki değerleri geçici olarak geçersiz kılabilir ve erişimi geri kazanabilirsiniz:

    define('WP_HOME', 'https://site.com');
    define('WP_SITEURL', 'https://site.com/blog');
    

    Bu satırlar aktifken Genel Ayarlar ekranındaki iki alan grileşip düzenlenemez hale gelir; çünkü artık değer koddan gelmektedir. Bu, taşıma sırasında en güvenli yöntemdir: değerler koda yazıldığı için yanlışlıkla bozma riski ortadan kalkar.

    Adım 2: index.php ve .htaccess Dosyalarını Köke Taşıma#

    WordPress'in kök dizinden çalışabilmesi için, ziyaretçi site.com adresine geldiğinde onu karşılayacak bir giriş noktasına ihtiyacı vardır. Bu giriş noktası index.php dosyasıdır. Yapmamız gereken, blog klasöründeki index.php dosyasının bir kopyasını kök dizine almak ve içindeki tek bir satırı düzeltmektir.

    Önce blog/index.php dosyasını public_html/index.php konumuna kopyalayın (taşımayın, orijinali klasörde kalsın). Ardından kökteki yeni kopyayı düzenleyin. Dosyanın en altında şuna benzer bir satır bulacaksınız:

    require __DIR__ . '/wp-blog-header.php';
    

    Bu satır, WordPress'in çekirdeğine kendi dizininde işaret eder. Kök dizine kopyaladığımız için, yolun artık blog klasörünü göstermesi gerekir. Satırı şu şekilde güncelleyin:

    require __DIR__ . '/blog/wp-blog-header.php';
    

    blog yerine gerçek klasör adınızı yazdığınızdan emin olun. Orijinal blog/index.php dosyasına hiç dokunmayın; o yerinde kalmalı.

    Sıra .htaccess dosyasında. Eğer sitenizde "Yazı adı" gibi güzel bir kalıcı bağlantı yapısı kullanıyorsanız, blog/.htaccess içinde mod_rewrite kuralları vardır. Bu dosyayı da kök dizine kopyalayın ve RewriteBase ile son yönlendirme satırındaki yolu köke uyacak biçimde düzeltin:

    # public_html/.htaccess (kok dizin)
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
    </IfModule>
    

    Bu aşamadan sonra site.com adresini tarayıcıda test edin. Ana sayfanız artık kök dizinden açılıyor olmalı. Açılmıyorsa, en sık neden ya kökte kalmış eski bir index.html dosyasıdır (silin ya da yeniden adlandırın) ya da index.php içindeki require yolunun yanlış yazılmasıdır. .htaccess yeniden yazma kurallarının mantığını derinlemesine merak ediyorsanız htaccess ile yönlendirme rehberimiz tüm bu direktifleri örneklerle açıklıyor.

    Adım 3: 301 Yönlendirmelerle Eski URL'leri Korumak#

    Şu ana kadar sitenizin yeni adresten açılmasını sağladık. Ancak arama motorları, dış siteler ve kayıtlı yer imleri hâlâ site.com/blog/kategori/yazi gibi eski adreslerinizi biliyor. Hiçbir şey yapmazsanız bu eski bağlantılar çalışmaya devam eder (çünkü dosyalar orada) ama bu durumda aynı içerik iki farklı adresten erişilebilir hale gelir; bu da arama motoru gözünde yinelenen içerik ve dağılmış otorite anlamına gelir. Çözüm, eski /blog/... adreslerini yeni köksüz karşılıklarına 301 (kalıcı) yönlendirme ile göndermektir.

    Bunu kök dizindeki .htaccess dosyasına, WordPress kurallarının üstüne ekleyeceğiniz birkaç satırla yaparsınız:

    # Eski /blog/ adreslerini koke kalici yonlendir
    RewriteEngine On
    RewriteCond %{REQUEST_URI} ^/blog/(.*)$ [NC]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^blog/(.*)$ /$1 [R=301,L]
    

    Buradaki RewriteCond %{REQUEST_FILENAME} !-f satırı önemlidir: gerçek bir dosya isteğini (örneğin blog/wp-admin altındaki yönetim dosyaları) yönlendirme dışında bırakır, böylece paneliniz çalışmaya devam eder. R=301 ise bunun kalıcı bir taşıma olduğunu tarayıcıya ve arama motoruna bildirir; 301, sıralama değerinin (link juice) büyük ölçüde yeni adrese aktarılmasını sağlayan koddur. Geçici bir taşımada kullanılan 302'nin aksine, kalıcı taşımalarda mutlaka 301 kullanmalısınız.

    Yönlendirmeyi kurduktan sonra birkaç eski bağlantıyı elle test edin. Tarayıcının ağ sekmesinde ya da komut satırında yanıt kodunun gerçekten 301 olduğunu doğrulayın:

    curl -I https://site.com/blog/ornek-yazi/
    # Beklenen: HTTP/2 301
    # location: https://site.com/ornek-yazi/
    

    Son olarak Google Search Console'a hem eski hem yeni yapı için sitenizi tanıtın ve güncel bir site haritası (sitemap) gönderin; bu, arama motorunun değişimi daha hızlı fark etmesini sağlar. Arama görünürlüğünüzü taşımadan sonra toparlamak için genel öneriler arıyorsanız SEO hizmet sayfamız yol gösterici olacaktır.

    Nginx Kullanıyorsanız Yönlendirme#

    Sunucunuz Apache yerine Nginx üzerinde çalışıyorsa (birçok VPS ve VDS kurulumunda olduğu gibi) .htaccess dosyası okunmaz; yönlendirmeleri sunucu blok yapılandırmasına yazmanız gerekir. Mantık aynıdır, sadece sözdizimi değişir:

    server {
        server_name site.com www.site.com;
        root /var/www/site.com/public_html;
    
        # WordPress dosyalari hala /blog altinda
        location /blog/ {
            try_files $uri $uri/ /blog/index.php?$args;
        }
    
        # Eski /blog/ adreslerini koke 301 yonlendir
        location ~ ^/blog/(.*)$ {
            return 301 /$1;
        }
    
        location / {
            try_files $uri $uri/ /index.php?$args;
        }
    }
    

    Nginx yapılandırmasını her değiştirdiğinizde nginx -t ile söz dizimini test edip ardından systemctl reload nginx ile devreye almayı unutmayın. Kök seviyesinde tam kontrol ve bu tür yapılandırma esnekliği istiyorsanız VDS ya da sanal sunucu çözümlerimiz, yapılandırmayı bizim üstlenmemizi tercih ederseniz sunucu yönetimi hizmetimiz bu ihtiyaca cevap verir.

    Taşıma Sonrası Kontrol Listesi ve Sık Hatalar#

    Taşımanın "çalışıyor gibi görünmesi" ile gerçekten sağlam tamamlanmış olması arasında birkaç kontrol vardır. Aşağıdaki noktaları tek tek geçmek, günler sonra ortaya çıkacak sürprizleri baştan önler:

    • Kalıcı bağlantıları yenileyin. Panelde Ayarlar → Kalıcı Bağlantılar ekranına gidip hiçbir şeyi değiştirmeden Kaydet deyin. Bu, yeniden yazma kurallarının yeni yapıya göre tazelenmesini sağlar.
    • İç bağlantıları ve medya yollarını güncelleyin. Yazılarınızın içindeki elle yazılmış site.com/blog/... bağlantıları ve veritabanına gömülü medya adresleri hâlâ eski yolu gösterebilir. WP-CLI erişiminiz varsa serialize-güvenli bir toplu değiştirme yapın:
    wp search-replace 'https://site.com/blog' 'https://site.com' --skip-columns=guid --precise
    
    • guid alanına dokunmayın. Yukarıdaki komutta --skip-columns=guid kullanmamızın nedeni, RSS beslemelerinde ve okuyucularda yazıların benzersiz kimliği olarak kullanılan guid değerinin değişmemesi gerektiğidir; değiştirirseniz aboneleriniz tüm eski yazıları "yeni" gibi görebilir.
    • SSL ve karışık içeriği doğrulayın. Adres çubuğundaki kilit simgesi görünüyor ama uyarı varsa, genellikle hâlâ http ya da eski yolla yüklenen görseller vardır; güvenli sertifika için SSL, ek koruma için WAF hizmetlerimiz destek olur.
    • Yönetim adresini kontrol edin. Panele girişiniz taşıma sonrası site.com/blog/wp-admin üzerinden devam eder. Bu tamamen normaldir ve değiştirmek zorunda değilsiniz; canlı sitenizin adresi köktür, dosyaların yeri sizden başka kimseyi ilgilendirmez.

    En sık karşılaşılan hata, WordPress Adresi (siteurl) alanının da yanlışlıkla köke çekilmesidir; bu durumda WordPress çekirdek dosyalarını kökte arar, bulamaz ve site tamamen çöker. İkinci sık hata, 301 yönlendirme bloğunu WordPress'in kendi kurallarının altına koymaktır; bu sıralamada WordPress kuralı isteği önce yakalar ve yönlendirme hiç çalışmaz. Kural her zaman WordPress bloğunun üstünde olmalıdır. Bu tür bir taşımayı hiç riske girmeden bize devretmek isterseniz site taşıma hizmetimiz tüm bu adımları sizin yerinize eksiksiz yürütür.

    Sıkça Sorulan Sorular#

    Tüm WordPress dosyalarını blog klasöründen köke taşımam gerekmez mi#

    Hayır, bu yöntemin en büyük avantajı tam olarak budur. WordPress'in "dosyaların yeri" ile "sitenin adresi" ayrımı sayesinde çekirdek dosyalarınız blog klasöründe kalmaya devam ederken site kökten açılır. Yalnızca index.php ve .htaccess dosyalarının birer kopyasını köke alır, index.php içindeki require yolunu düzeltirsiniz. Dosyaların tümünü fiziksel olarak taşımak da mümkündür ancak daha risklidir ve çoğu senaryoda gereksizdir.

    siteurl ve home değerlerini yanlış girip panele giremiyorum ne yapmalıyım#

    Bu durumda çözüm veritabanında ya da yapılandırma dosyasındadır, paneli beklemenize gerek yok. En hızlı yöntem wp-config.php dosyasını FTP veya Dosya Yöneticisi ile açıp define('WP_HOME', 'https://site.com'); ve define('WP_SITEURL', 'https://site.com/blog'); satırlarını eklemektir; bu satırlar veritabanındaki hatalı değerleri geçersiz kılar ve erişiminiz anında geri gelir. Dilerseniz phpMyAdmin'den wp_options tablosundaki siteurl ve home satırlarını doğru değerlerle güncelleyerek de aynı sonucu alırsınız.

    Eski /blog/ bağlantılarımı yönlendirmezsem ne olur#

    Kısa vadede hiçbir şey bozulmaz çünkü dosyalar hâlâ blog klasöründe durduğundan eski adresler açılmaya devam eder. Sorun orta vadede ortaya çıkar: aynı içeriğe hem site.com/yazi hem site.com/blog/yazi üzerinden erişilebildiği için arama motorları bunu yinelenen içerik olarak değerlendirir ve sıralama gücünüz iki adres arasında bölünür. 301 yönlendirme bu bölünmeyi engelleyerek tüm otoriteyi tek ve doğru adreste toplar, bu yüzden atlanmaması gereken bir adımdır.

    301 mi 302 mi kullanmalıyım#

    Alt dizinden köke taşıma kalıcı bir değişiklik olduğu için mutlaka 301 kullanmalısınız. 301 kodu arama motorlarına "bu adres kalıcı olarak yeni yere taşındı" der ve eski adrese ait sıralama değerinin büyük bölümünü yeni adrese aktarır. 302 ise geçici taşıma anlamına gelir ve sıralama değerini eski adreste tutmaya çalışır; bunu yalnızca gerçekten günlük ya da haftalık bir deneme yapıyorsanız tercih edin.

    Yönetim paneli hâlâ /blog/wp-admin adresinden açılıyor bu bir sorun mu#

    Hayır, bu beklenen ve tamamen sağlıklı bir durumdur. Ziyaretçilerinizin gördüğü site adresi kök dizindir, ancak WordPress çekirdek dosyaları fiziksel olarak blog klasöründe durduğu için yönetim paneline o yol üzerinden erişilir. Bu, sitenizin performansını veya SEO'sunu etkilemez; yalnızca sizin giriş yaptığınız adrestir. İsterseniz yer imlerinizi buna göre güncelleyip süreci tamamen unutabilirsiniz.

    Bu işlemi shared hosting hesabında yapabilir miyim yoksa sunucu erişimi mi gerekir#

    Apache tabanlı paylaşımlı hosting hesaplarının neredeyse tamamında bu işlemi rahatlıkla yapabilirsiniz çünkü tek ihtiyacınız cPanel Dosya Yöneticisi ve .htaccess düzenleme yetkisidir; ayrı bir sunucu erişimine gerek kalmaz. Yalnızca sunucunuz Nginx üzerinde çalışıyorsa yönlendirmeleri sunucu bloğuna yazmak için barındırma sağlayıcınızın panelinden ya da SSH ile erişim gerekir. WordPress'e özel optimize edilmiş bir ortamda bu tür işlemleri kolayca yürütmek isterseniz WordPress hosting paketlerimiz bu iş için hazır gelir.

    Kapanış#

    WordPress'i alt dizinden kök dizine taşımak, ilk bakışta cesaret isteyen bir işlem gibi görünse de aslında tek bir mantığa dayanır: dosyaların yeri ile sitenin adresini birbirinden ayırmak. Bu ayrımı kavradığınızda tüm süreç üç adıma iner; Genel Ayarlar'dan Site Adresini köke çekmek, index.php ile .htaccess dosyalarını köke kopyalayıp yollarını düzeltmek ve eski /blog/ adreslerini 301 ile yeni karşılıklarına yönlendirmek. Yedeğinizi baştan aldığınız, WordPress Adresini yanlışlıkla değiştirmediğiniz ve yönlendirme bloğunu doğru sıraya koyduğunuz sürece SEO değerinizi tek bir gün bile kaybetmeden bu geçişi tamamlarsınız.

    Böyle işlemleri güvenle yürütmenin temeli, altındaki sağlam barındırma altyapısıdır. Hızlı ve WordPress'e özel yapılandırılmış bir ortam için WordPress hosting paketlerimize, daha genel ihtiyaçlar için web hosting seçeneklerimize; tam kontrol ve kök seviyesi esneklik arayanlar için VDS çözümlerimize göz atabilirsiniz. Taşımayı bizim üstlenmemizi isterseniz site taşıma hizmetimiz devreye girer, düzenli koruma için de yedekleme çözümlerimiz her zaman yanınızdadır.

    wordpressdizintasima

    Uygulamaya geçmeye hazır mısınız?

    NVMe SSD, ücretsiz SSL ve %99.9 uptime garantisiyle Clou.TR hosting ve sunucu çözümleriyle projenizi hayata geçirin.