WordPress

    WordPress Permalink (Kalici Baglanti) Ayarlari

    SEO dostu URL icin WordPress permalink yapisini yapilandirma

    12 dk okuma Güncellendi: 10 Temmuz 2026

    Bir WordPress sitesi kurduğunuzda arkada sessizce çalışan ama sonradan değiştirmesi en pahalı ayarlardan biri permalink yapısıdır. Permalink, "kalıcı bağlantı" (permanent link) kelimelerinin kısaltması; bir yazınızın, sayfanızın ya da kategorinizin tarayıcı adres çubuğunda görünen tam adresidir. Örneğin https://siteniz.com/?p=137 ile https://siteniz.com/wordpress-permalink-ayarlari/ aynı içeriğe götürür ama biri makine diliyle, diğeri insan ve arama motoru diliyle konuşur. Bu ayarı ilk gün doğru kurmak, siteniz büyüdükçe geriye dönüp yüzlerce adresi yeniden yönlendirmek zorunda kalmanın önüne geçer.

    Yıllardır barındırma tarafında en sık gördüğüm hatalardan biri, sitenin aylarca varsayılan ?p=123 yapısıyla yayınlanması, sonra da SEO danışmanının uyarısıyla apar topar "yazı adı" yapısına geçilmesidir. Bu geçiş yönetilebilir ama plansız yapıldığında Google'da indekslenmiş her adres birden 404 vermeye başlar ve haftalarca süren bir trafik kaybı yaşanır. Bu yazıda permalink yapılarını tek tek karşılaştıracak, hangisinin neden SEO için en doğru seçim olduğunu anlatacak, perde arkasındaki .htaccess ve rewrite mantığını açacak, kategori/etiket tabanını nasıl özelleştireceğinizi göstereceğim ve en önemlisi yapıyı sonradan değiştirmeniz gerekirse eski adresleri 301 ile nasıl koruyacağınızı adım adım aktaracağım.

    Permalink, bir içeriğin değişmemesi beklenen kalıcı adresidir. "Kalıcı" kelimesi buradaki en kritik nokta: bir yazıyı yayınlayıp adresini paylaştığınızda, o adrese verilen dış bağlantılar, sosyal medya paylaşımları, arama motoru indeksleri ve kullanıcı yer imleri hep o adrese bağlanır. Adresi değiştirdiğinizde bu bağların hepsi kopar. Bu yüzden permalink yapısı, kurulumdan hemen sonra ve içerik henüz azken belirlenmesi gereken bir karardır.

    Permalink'in önemi üç eksende toplanır. Birincisi SEO: arama motorları URL içindeki kelimeleri sıralama sinyali olarak değerlendirir; /en-iyi-hosting-secimi/ adresindeki kelimeler o sayfanın konusunu net biçimde anlatır. İkincisi kullanıcı deneyimi: okunabilir bir adres, kullanıcıya nereye tıkladığını söyler ve güven verir; ?p=4821 gibi bir adres ise hem soğuk hem de akılda kalmaz. Üçüncüsü paylaşılabilirlik: e-postada, WhatsApp'ta ya da bir forumda anlamlı bir adres gördüğünde insan tıklamaya daha yatkın olur. Kısacası permalink sadece teknik bir ayar değil, sitenizin dış dünyaya nasıl göründüğünün temelidir.

    WordPress yönetim panelinde Ayarlar > Kalıcı Bağlantılar ekranına gittiğinizde birkaç hazır yapı ve bir de özel yapı seçeneği görürsünüz. Her birinin ürettiği adres farklıdır ve her birinin kendine göre bir kullanım senaryosu vardır. Aşağıdaki tablo bu seçenekleri örnek adresleriyle birlikte karşılaştırıyor.

    Yapı adıAyar deseniÖrnek adresSEO uygunluğu
    Sade (varsayılan)?p=123siteniz.com/?p=123Zayıf
    Gün ve ad/%year%/%monthnum%/%day%/%postname%/siteniz.com/2026/07/12/yazi-basligi/Orta
    Ay ve ad/%year%/%monthnum%/%postname%/siteniz.com/2026/07/yazi-basligi/Orta
    Sayısal/archives/%post_id%/siteniz.com/archives/123Zayıf
    Yazı adı/%postname%/siteniz.com/yazi-basligi/En iyi
    Özel yapıSerbestsiteniz.com/blog/yazi-basligi/Duruma göre

    Sade yapı en hızlı olanıdır çünkü WordPress sorguyu doğrudan yazı kimliğiyle çözer, ama okunabilirlikten tamamen yoksundur. Tarih içeren yapılar (gün-ad, ay-ad) bir dönem haber ve blog siteleri için standarttı; içeriğin ne zaman yayınlandığını adreste gösterirler. Ancak bu, güncel tutmaya çalıştığınız köşe yazısı türü içerikler için dezavantajdır: 2021 tarihli bir adres, içerik 2026'da güncellenmiş olsa bile kullanıcıya "eski" izlenimi verir. Sayısal yapı ise pratikte sade yapıdan çok da farklı değildir, sadece daha temiz görünür.

    Neden Yazi Adi (Post Name) Yapisi En Iyisi#

    Çoğu WordPress uzmanı ve SEO ekibi için varsayılan tavsiye "yazı adı" yapısıdır ve bunun somut nedenleri vardır. İlk neden anahtar kelime yakınlığıdır: /%postname%/ yapısı adresi doğrudan içeriğin başlığına dayandırır, böylece hedef anahtar kelimeniz URL'nin en görünür yerinde durur. siteniz.com/wordpress-hiz-optimizasyonu/ adresi, hem kullanıcının hem de arama motorunun sayfanın konusunu adresin ilk saniyesinde anlamasını sağlar.

    İkinci neden sadelik ve kalıcılıktır. Tarih içermeyen adres, içeriği yıllar sonra güncellediğinizde bile taze kalır; adres değişmeden içeriğin kendisini yenileyebilirsiniz. Üçüncü neden kısalıktır: kısa adresler paylaşımda kırpılmaz, e-postada tek satıra sığar ve daha profesyonel görünür. Dördüncü ve gözden kaçan neden ise hiyerarşi esnekliğidir; sayfalar için WordPress otomatik olarak üst sayfa hiyerarşisini adrese yansıtır (siteniz.com/hizmetler/hosting/), bu da site yapınızı doğal biçimde adresinize taşır.

    Yazı adı yapısını seçtikten sonra tek dikkat etmeniz gereken şey, her yazının "kısa isim" (slug) alanını sadeleştirmektir. WordPress başlığı otomatik olarak slug'a çevirir ama Türkçe karakterleri ve gereksiz kelimeleri temizlemek size kalır. Uzun bir başlık olan "WordPress Sitenizde Hızı Nasıl Artırırsınız? Kapsamlı Rehber" için slug'ı elle wordpress-hiz-artirma olarak kısaltmak hem daha temiz hem daha güçlü bir adres verir. Daha geniş bir SEO temeli için WordPress SEO başlangıç rehberimizdeki başlık ve meta yapılandırmasıyla bu adresleri birlikte optimize edebilirsiniz.

    htaccess ve Rewrite Mantigi Perde Arkasi#

    Güzel görünen adreslerin arkasında "URL yeniden yazma" (rewrite) denen bir mekanizma çalışır. Gerçekte sunucunuzda /wordpress-permalink-ayarlari/ diye bir klasör yoktur; bu adres gelince web sunucusu isteği WordPress'in index.php dosyasına iletir, WordPress de adresteki slug'ı okuyup veritabanından doğru yazıyı bulur. Bu yönlendirmeyi mümkün kılan şey Apache'de .htaccess dosyası, Nginx'te ise sunucu konfigürasyonundaki try_files kuralıdır.

    Apache kullanıyorsanız, "sade" dışında bir permalink yapısı seçtiğinizde WordPress sitenizin kök dizinine şu bloğu ekler. Bu blok tüm istekleri gerçek bir dosya ya da klasöre denk gelmediği sürece index.php'ye yönlendirir:

    # BEGIN WordPress
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
    </IfModule>
    # END WordPress
    

    Bu bloğun çalışması için .htaccess dosyasının yazılabilir olması ve Apache'de mod_rewrite modülünün açık olması gerekir. Paylaşımlı hosting hesaplarında bu ikisi standart olarak hazırdır; kendi sunucunuzu yönetiyorsanız modülü a2enmod rewrite ile etkinleştirip Apache'yi yeniden başlatmanız gerekebilir. .htaccess mantığının derinine inmek ve yönlendirme kuralları yazmak için htaccess yönlendirme rehberimiz iyi bir başlangıç noktasıdır.

    Nginx'te .htaccess yoktur; aynı işi sunucu bloğundaki bir konum kuralı yapar. LiteSpeed ve Nginx tabanlı barındırmada permalink'lerin çalışması için şuna benzer bir yapı gerekir:

    location / {
        try_files $uri $uri/ /index.php?$args;
    }
    

    Bu satır, gelen isteği önce fiziksel bir dosya, sonra bir klasör olarak arar; ikisi de yoksa isteği index.php'ye sorgu dizesiyle birlikte devreder. Nginx sunucularda permalink değişikliği yaptıktan sonra 404 alıyorsanız, sorun neredeyse her zaman bu kuralın eksik olmasıdır. Clou.TR barındırma paketlerinde WordPress için bu kural hazır gelir; kendi VDS'inizi yapılandırıyorsanız sunucu yönetimi tarafında bu bloğu manuel eklemeniz gerekir.

    Kategori ve Etiket Tabanini Ozellestirme#

    WordPress varsayılan olarak kategorileri siteniz.com/category/kategori-adi/, etiketleri de siteniz.com/tag/etiket-adi/ altında listeler. Buradaki category ve tag kelimeleri "taban" (base) olarak adlandırılır ve Ayarlar > Kalıcı Bağlantılar ekranının alt kısmındaki "İsteğe Bağlı" alanından değiştirilebilir. Türkçe bir site için bu tabanları yerelleştirmek hem daha tutarlı hem de daha okunur adresler üretir.

    Örneğin kategori tabanını kategori, etiket tabanını etiket yaparsanız adresleriniz siteniz.com/kategori/hosting/ ve siteniz.com/etiket/wordpress/ biçimine döner. Alanları şöyle doldurabilirsiniz:

    Kategori tabanı : kategori
    Etiket tabanı   : etiket
    

    Bir adım öteye giderek kategori tabanını tamamen kaldırmak isteyenler de olur; yani siteniz.com/hosting/ gibi taban içermeyen bir adres. WordPress bunu arayüzden desteklemez çünkü kategori adı ile sayfa/yazı slug'ı çakışabilir. Bu tür değişiklikleri bir SEO eklentisiyle (örneğin Yoast SEO veya Rank Math) daha güvenli biçimde yapabilirsiniz; bu eklentiler taban kaldırma seçeneğini kontrollü bir şekilde sunar. Yine de dikkatli olun: kategori tabanını kaldırmak, ileride aynı slug'a sahip bir sayfa oluşturduğunuzda çakışma ve 404 üretebilir. Genel tavsiyem, tabanı Türkçeleştirmek ama tamamen kaldırmamaktır.

    Taban değişikliği yaptıktan sonra, eski category/ ve tag/ adreslerine gelen trafiği yeni tabana 301 ile yönlendirmeyi unutmayın. Aksi halde daha önce paylaşılmış kategori bağlantıları 404 verir. Bu yönlendirmeyi .htaccess içinde tek satırla halledebilirsiniz:

    RewriteRule ^category/(.*)$ /kategori/$1 [R=301,L]
    RewriteRule ^tag/(.*)$ /etiket/$1 [R=301,L]
    

    Ozel Yapi Etiketleriyle Kendi URL Semanizi Kurmak#

    "Özel Yapı" seçeneği, hazır yapıların hiçbiri işinizi görmediğinde devreye girer. Burada WordPress'in tanıdığı yapı etiketlerini (structure tags) birleştirerek kendi şemanızı kurarsınız. En sık kullanılan etiketler şunlardır ve her biri adreste belirli bir bilgiyi temsil eder.

    EtiketAnlamıÖrnek çıktı
    %postname%Yazının slug'ıwordpress-permalink
    %category%Yazının kategorisihosting
    %year%Yayın yılı2026
    %monthnum%Yayın ayı07
    %post_id%Yazı kimliği137
    %author%Yazar kullanıcı adıadmin

    Blog içeriğini ana siteden ayırmak isteyen kurumsal siteler sıklıkla /blog/%postname%/ yapısını tercih eder; böylece tüm yazılar siteniz.com/blog/... altında toplanır ve ana sayfalar kök dizinde kalır. Kategori bağlamını adrese taşımak isteyenler ise /%category%/%postname%/ kullanır ve siteniz.com/hosting/wordpress-permalink/ gibi konu odaklı adresler üretir. Bu ikinci yaklaşımın bir dezavantajı vardır: bir yazının kategorisini değiştirirseniz adresi de değişir ve eski adres 404 verir; bu yüzden kategori bazlı yapıyı ancak kategori mimariniz oturmuşsa seçin.

    Performans açısından küçük ama gerçek bir ayrıntı var: adres tamamen metinsel etiketlerle (%postname%, %category%) başladığında WordPress, sayfa isteklerini yazı adreslerinden ayırmak için ek sorgu yapmak zorunda kalabilir. Bunu önlemek için birçok geliştirici yapının başına %post_id% gibi sayısal bir etiket koyar (/%post_id%/%postname%/); bu, WordPress'e adresin bir yazı olduğunu hızlıca söyler. Küçük sitelerde bu fark hissedilmez ama binlerce sayfalı sitelerde sorgu yükünü azaltır. Yine de çoğu site için sade /%postname%/ yeterince hızlı ve en temiz seçenektir.

    Yapiyi Sonradan Degistirirken 301 ile Eski URL'leri Koruma#

    Bu yazının en kritik bölümü burası. Yayında olan bir siteyi bir permalink yapısından diğerine geçirdiğinizde, eski yapıyla indekslenmiş her adres anında geçersiz olur. Google'ın hafızasındaki siteniz.com/2023/05/12/yazi/ adresi artık siteniz.com/yazi/ olduğunda, eski adrese gelen herkes 404 hata sayfasıyla karşılaşır. Bu hem kullanıcıyı kaçırır hem de o sayfanın yıllarca biriktirdiği SEO otoritesini bir gecede sıfırlar. Çözüm, eski adresten yeni adrese 301 kalıcı yönlendirme kurmaktır; 301, arama motoruna "bu sayfa kalıcı olarak taşındı, tüm değeri yeni adrese aktar" der.

    Değişiklik türüne göre yönlendirmeyi iki yolla yapabilirsiniz. Yol değişikliği desenliyse (örneğin tarih önekini kaldırıyorsanız) tek bir .htaccess kuralı tüm adresleri toplu halinde taşır. Aşağıdaki örnek, /yil/ay/gun/slug/ yapısındaki tüm adresleri sade /slug/ yapısına yönlendirir:

    RewriteEngine On
    RewriteRule ^[0-9]{4}/[0-9]{2}/[0-9]{2}/(.+)$ /$1 [R=301,L]
    

    Desen tutmayan, dağınık adres değişiklikleri içinse Redirection gibi bir WordPress eklentisi daha güvenlidir; eski ve yeni adresi tek tek eşleştirir, üstelik 404 alan adresleri otomatik loglayıp size bildirir. Geçiş sürecini şu sırayla yürütmenizi öneririm:

    adim_1: Degisiklik oncesi tam yedek al (dosya + veritabani)
    adim_2: Mevcut adreslerin listesini cikar (site haritasi / Search Console)
    adim_3: Yeni permalink yapisini uygula
    adim_4: Eski -> yeni 301 yonlendirmelerini kur ve test et
    adim_5: Search Console'a yeni site haritasini gonder ve 404'leri izle
    

    Geçişi mutlaka önce bir kopya (staging) ortamında deneyin; canlı sitede doğrudan yapılan yapı değişiklikleri geri alınması zor sorunlar doğurabilir. Büyük bir taşıma planlıyorsanız site taşıma hizmetimiz ya da WordPress bakım paketimiz bu geçişi risksiz biçimde yürütmenize yardımcı olur. Değişiklikten sonra ilk birkaç hafta Google Search Console'daki "Kapsam" raporunu düzenli kontrol edip yeni 404'leri hızla kapatın.

    Sik Karsilasilan 404 Hatalari ve Cozumleri#

    Permalink değişikliğinden sonra en çok gelen şikayet "yazılar 404 veriyor" olur. Bunun birinci ve en yaygın nedeni, .htaccess dosyasının güncellenmemesidir. WordPress bu dosyayı otomatik yazamıyorsa (dosya izinleri kilitliyse) yapıyı değiştirseniz de kurallar eskisi gibi kalır. Çözüm basittir: Ayarlar > Kalıcı Bağlantılar ekranına girip hiçbir şeyi değiştirmeden Değişiklikleri Kaydet butonuna basmak, WordPress'i rewrite kurallarını yeniden yazmaya zorlar. Bu tek tıklama, permalink 404'lerinin belki yarısını çözer.

    İkinci yaygın neden, sunucu tarafında mod_rewrite (Apache) veya try_files kuralının (Nginx) eksik olmasıdır. Apache'de .htaccess dosyası doğru içeriğe sahip olsa bile modül kapalıysa kurallar işlemez; Nginx'te ise konfigürasyona konum bloğu eklenmediyse tüm güzel adresler 404 döner. Üçüncü neden dosya izinleridir: .htaccess dosyasının izni genelde 644 olmalı ve web sunucusu kullanıcısı tarafından yazılabilir olmalıdır. Aşağıdaki kısa kontrol listesi, bir 404 sorununda hangi noktaya bakacağınızı özetliyor:

    # 1. .htaccess dosyasi var mi ve WordPress blogu iceriyor mu
    ls -la .htaccess
    
    # 2. Dosya izinleri dogru mu (644 beklenir)
    chmod 644 .htaccess
    
    # 3. Apache rewrite modulu acik mi (kendi sunucunuzda)
    a2enmod rewrite && systemctl restart apache2
    

    Bir başka sinsi durum, tek bir yazının 404 vermesi ama diğerlerinin çalışmasıdır. Bu genelde slug çakışmasından kaynaklanır: aynı slug'a sahip iki içerik olduğunda WordPress birine -2 ekler ya da yanlış olanı gösterir. Bir de önbellek faktörü var; permalink değişikliğinden sonra tarayıcı ya da site önbelleği eski adresleri tutabilir. Permalink ayarlarıyla oynadıktan sonra hem site önbelleğini (varsa eklenti üzerinden) hem de CDN önbelleğini temizlemek, "değiştirdim ama olmadı" tuzağından sizi kurtarır. Bu konuları WordPress hata çözümü tarafında daha derinlemesine ele alıyoruz.

    Sıkça Sorulan Sorular#

    Duruma göre değişir ama genel tavsiyem, mevcut yapı çok kötü değilse (örneğin sade ?p=123 ise) dikkatli bir geçiş yapmaktır. Yalnızca yeni yapıya geçmeden önce eski tüm adresleri 301 ile yeni adreslere yönlendirdiğinizden emin olun; yönlendirme kurmadan yapılan değişiklik, sayfalarınızın SEO değerini ve trafiğini kaybettirir. Tarih içeren bir yapıdan yazı adı yapısına geçiş en sık yapılan ve doğru yönetildiğinde en faydalı olan geçiştir.

    Yazı adı yani /%postname%/ yapısı SEO için en güçlü seçenektir. Anahtar kelimenizi adresin en görünür yerine taşır, adresi kısa ve okunabilir tutar, üstelik içeriği yıllar sonra güncellediğinizde bile adres taze kalır çünkü tarih içermez. Çok büyük ve sorgu yükü hassas siteler için yapının başına %post_id% eklemek performans avantajı sağlayabilir ama çoğu site için sade yazı adı yapısı hem en temiz hem yeterince hızlıdır.

    Önce Ayarlar > Kalıcı Bağlantılar ekranına girip hiçbir değişiklik yapmadan Değişiklikleri Kaydet butonuna basın; bu, WordPress'i rewrite kurallarını yeniden yazmaya zorlar ve sorunların büyük kısmını çözer. Sorun devam ediyorsa Apache'de mod_rewrite modülünün açık ve .htaccess dosyasının yazılabilir olduğunu, Nginx kullanıyorsanız try_files kuralının konfigürasyonda bulunduğunu kontrol edin. Son olarak site ve CDN önbelleğini temizleyin.

    Kategori tabanındaki category kelimesini Türkçeleştirebilir miyim?#

    Evet. Ayarlar > Kalıcı Bağlantılar ekranının altındaki İsteğe Bağlı bölümünden kategori tabanını kategori, etiket tabanını etiket olarak değiştirebilirsiniz. Bu değişiklikten sonra eski category/ ve tag/ adreslerine gelen trafiği yeni tabana 301 ile yönlendirmeyi unutmayın; aksi halde daha önce paylaşılmış kategori bağlantıları 404 verir. Tabanı tamamen kaldırmak yerine Türkçeleştirmek, slug çakışması riskini de azaltır.

    Türkçe karakterli başlıklar permalink'te sorun çıkarır mı?#

    WordPress modern sürümlerinde başlıktaki Türkçe karakterleri otomatik olarak Latin karşılıklarına çevirir; "Güvenlik Ayarları" başlığı guvenlik-ayarlari slug'ına dönüşür. Yine de en temiz sonuç için yazıyı yayınlamadan önce slug alanını elle gözden geçirmenizi öneririm. Uzun başlıkları kısaltın, bağlaç ve gereksiz kelimeleri çıkarın; hem daha okunur hem de daha güçlü bir adres elde edersiniz. Yayınladıktan sonra slug değiştirirseniz eski adrese 301 kurmayı unutmayın.

    Hayır, sayfalar yazılardan farklı çalışır. Sayfalar her zaman kendi slug'larını ve varsa üst sayfa hiyerarşisini kullanır; örneğin "Hosting" sayfası "Hizmetler" sayfasının altındaysa adresi siteniz.com/hizmetler/hosting/ olur. Ayarlar ekranındaki permalink yapısı yalnızca yazıları (post) ve arşiv adreslerini etkiler. Bu yüzden sayfalarınızın adreslerini planlarken sayfa hiyerarşisini doğru kurmanız, adres yapınızı da doğrudan belirler.

    Kapanış#

    Permalink yapısı, WordPress sitenizin dış dünyaya açılan kapısıdır; bir kez doğru kurduğunuzda yıllarca dokunmadan çalışır, yanlış kurup sonra değiştirdiğinizde ise SEO ve trafik tarafında ciddi bedel ödetir. Özetle: yeni bir site kuruyorsanız daha ilk gün yazı adı yapısını seçin, kategori/etiket tabanlarını Türkçeleştirin ve slug'larınızı sade tutun. Yayında bir siteyi değiştirmeniz gerekiyorsa mutlaka önce yedek alın, bir kopya ortamında deneyin ve eski adreslerin tamamını 301 ile yeni adreslere taşıyın.

    Bu geçişi kendiniz yönetmek istemiyorsanız Clou.TR olarak yanınızdayız. WordPress için optimize edilmiş WordPress hosting paketlerimizde mod_rewrite ve önbellek kuralları hazır gelir; permalink değişikliği, taşıma ve 301 yönlendirme kurulumunu sizin yerinize WordPress bakım ekibimiz üstlenir. Daha kapsamlı bir site taşıması planlıyorsanız site taşıma hizmetimiz, sıralamalarınızı kaybetmeden geçişi güvenle tamamlar. Adres yapınızı bir SEO stratejisiyle birlikte ele almak için SEO hizmetlerimize ve genel bir başlangıç için WordPress SEO başlangıç rehberimize göz atabilirsiniz.

    wordpresspermalinkseo

    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.