Bir sayfanın HTML’inde canonical etiketi bulunması, Google’ın o adresi mutlaka esas alacağı anlamına gelmez. Canonical güçlü bir tercih sinyalidir; yönlendirmeler, sitemap ve sayfaların içeriği bu tercihle çelişiyorsa Google başka URL seçebilir. Aynı yazıya farklı adreslerden erişilen WordPress sitelerinde bu ayrım doğrudan indekslemeyi etkiler.
Bu yazıda canonical’ın doğru kullanımını 301 yönlendirme ve noindex’ten ayıracağım. Ardından WordPress/Yoast tarafındaki ayarı ve canlı HTML üzerinden yapabileceğiniz kontrolleri göstereceğim. İlk yayındaki görsel korunuyor, teknik açıklama güncel Google belgelerine dayanıyor.
Canonical tam olarak neyi bildirir?
Canonical, aynı veya çok benzer içeriğe sahip URL’ler arasından tercih ettiğiniz adresi arama motoruna bildirir. Ziyaretçiyi başka sayfaya göndermez. Tarayıcıda açılan URL aynı kalırken arama motoruna hangi sürümün esas alınmasını istediğinizi söylersiniz.
Örneğin bir yazıya hem temiz adresinden hem kampanya parametresiyle ulaşılabiliyor olsun. İçerik aynıysa parametreli sürümün canonical değeri temiz URL olabilir. Aşağıdaki örnek yalnız söz dizimini gösteriyor:
<link rel="canonical" href="https://example.com/rehber/" />
Bu etiket HTML belgesinin head bölümünde bulunmalı. Tam adres kullanın; protokolü, alan adını ve seçtiğiniz URL biçimini açıkça yazın. Kıvrık tırnak kullanılması veya etiketin yazı gövdesine yapıştırılması doğru uygulama değildir.
Google’ın yinelenen URL’leri birleştirme belgesinde yönlendirme ve rel="canonical" güçlü sinyaller olarak açıklanır. Sitemap’e eklemek daha zayıf bir sinyaldir. Bu araçlar aynı hedefi gösterdiğinde tercih daha tutarlı olur.
Ne zaman 301, ne zaman canonical?
Eski adresin kullanıcıya hizmet vermesi gerekmiyorsa kalıcı yönlendirme genellikle daha doğrudan çözümdür. Yazının slug’ını değiştirdiğinizde veya iki yazıyı tek yazıda birleştirdiğinizde eski URL’den yeni URL’ye 301 yönlendirme kullanabilirsiniz. Kullanıcı da arama motoru da yeni adrese gider.
İki URL’nin erişilebilir kalması gerekiyorsa canonical uygun olabilir. Takip parametreleri veya içeriği değiştirmeyen alternatif adresler buna örnek. Burada ön koşul, sayfaların gerçekten aynı veya çok benzer içeriği sunmasıdır.
Bir ürün kategorisinin ikinci sayfası, ilk sayfayla aynı içeriğe sahip değildir. Bütün sayfalama adreslerini ilk sayfaya canonical yapmak, ayrı içeriklerin keşfini zorlaştırabilir. Benzer şekilde filtrelenmiş sayfaların hepsini ana kategoriye bağlamadan önce arama niyetini ve içerik farkını inceleyin.
Silinmiş ve yerine geçecek eşdeğer içerik bulunmayan sayfalar için canonical bir kaldırma yöntemi değildir. Uygun HTTP durum kodu ayrı karar konusudur. Eski bir yazıyı alakasız ana sayfaya bağlayarak değerini otomatik aktarmış olmazsınız.
noindex neden aynı işi yapmıyor?
noindex, sayfanın arama sonuçlarında gösterilmemesini ister. Canonical ise benzer içerik grubunda tercih edilen URL’yi belirtir. Bu nedenle kopya URL’leri birleştirmek için noindex’i canonical’ın yerine kullanmak, aynı hedefe giden iki eşdeğer seçenek değildir.
Google’ın noindex açıklamasında tarayıcının direktifi görebilmesi için sayfaya erişmesi gerektiği belirtilir. Bir URL’yi robots.txt ile engelleyip sayfaya noindex koyarsanız Google bu etiketi okuyamayabilir. Canonical sinyalinin okunmasında da taranabilirlik önemlidir.
Hedef URL’yi ayrıca kontrol edin. Canonical’ın 404 dönen, yönlendirme zincirine giren veya noindex taşıyan sayfayı göstermesi tutarsızlık oluşturur. Tercih edilen adresin açılabilir, indekslenebilir ve ilgili içeriği sunuyor olması gerekir.
WordPress ve Yoast’ta ne yapmalısınız?
Yoast SEO, normal yazılarda canonical etiketini genellikle otomatik üretir. Her yazının gelişmiş ayarına elle URL yazmak zorunda değilsiniz. Özel canonical alanını, otomatik değeri gerçekten değiştirmeniz gereken durumda kullanın.
Yazının kendi kalıcı adresini canonical olarak vermesi normaldir. Bu self-referencing kullanım, sitenin tercih ettiği URL biçimini açıklaştırır. İç bağlantılarınız ve sitemap de aynı adresi kullanmalı; bir yerde HTTP, başka yerde HTTPS seçmeyin.
Tema veya başka SEO eklentisi de canonical üretiyorsa sayfada birden fazla etiket çıkabilir. HTML kaynağında iki farklı hedef görmek, hangi ayarın geçerli olduğunu tahmin etmeniz gereken bir durum değildir. Etiketi üreten katmanları bulun, çelişkiyi kaldırın.
İlk sürümden korunan aşağıdaki SEO illüstrasyonu bir kontrol ekranı değildir. Google’ın bugün seçtiği canonical adresini bu görselden veya arama sonuçlarının görünümünden çıkaramazsınız; bunun için Search Console’daki URL Denetleme raporuna bakın.

WordPress’te ayar değiştirdikten sonra önbellek katmanlarını da hesaba katın. Veritabanında yeni değeri görürken ziyaretçiye eski HTML dönüyor olabilir. Eklenti ekranına bakmakla yetinmeyip oturum açmadan gerçek sayfayı isteyin.
Canlı sayfayı nasıl kontrol edersiniz?
Tarayıcıdaki sayfa kaynağında rel="canonical" ifadesini arayın. Hedefin tam olarak beklediğiniz URL olduğuna, birden fazla çelişkili etiket bulunmadığına bakın. Geliştirici araçlarının Network bölümünden HTTP durumunu ve yönlendirmeleri de inceleyebilirsiniz.
Komut satırında temel kontrol için aşağıdaki örnek yeterli bir başlangıçtır. example.com adresini kendi sayfanızla değiştirin:
curl.exe -sS -D headers.txt -o page.html "https://example.com/rehber/"
Select-String -Path page.html -Pattern 'canonical|noindex'
Get-Content headers.txt
Bu komut ilk cevabı gösterir, yönlendirmeyi otomatik takip etmez. 301 veya 302 görürseniz Location başlığındaki hedefi ayrıca kontrol edin. HTML dışındaki dosyalarda canonical HTTP Link başlığıyla da bildirilebilir, bu yüzden yalnız gövdede arama yapmak her içerik türünde yeterli olmaz.
Ardından Search Console URL Denetleme aracında kullanıcı tarafından belirtilen canonical ile Google’ın seçtiği canonical alanlarını karşılaştırın. Canlı test, indekslenmiş sürümle aynı rapor değildir. Google’ın tercihi için son indeksleme verisini esas alın.
Yeni değişikliklerin rapora yansıması yeniden tarama gerektirir. Hemen farklı sonuç görmediğiniz için aynı ayarı tekrar tekrar değiştirmeyin. Sitemap, iç linkler ve canonical değerini birlikte doğrulayın, sonra tarama sonucunu izleyin.
Siteyi başka altyapıya taşıyorsanız bu kontrolü geçiş listesine de ekleyin. WordPress veritabanını Azure MySQL’e taşıma sırasında alan adı değişmese bile uygulama ayarlarının aynı URL’leri üretmesini doğrulamak gerekir.
Adreslerin aynı tercihi göstermesini sağlayın
- Canonical hedefini aynı veya çok benzer içerik için kullanın.
- Kalıcı adres değişikliğinde 301 ihtiyacını ayrıca değerlendirin.
- Hedef sayfanın 200 döndüğünü ve indekslemeye açık olduğunu kontrol edin.
- Canlı HTML ile Search Console’daki son indeksleme verisini ayrı okuyun.
Tek bir doğru etiket, site genelindeki çelişkili URL tercihlerini kendiliğinden düzeltmez; iç bağlantılarınızı da aynı adreste birleştirin. Sorularınız olursa yorumlarda buluşalım.
