Canonical Etiketi

rel=canonical etiketini doğru uygulama rehberi — HTML bağlantı öğesi, PDF’ler için HTTP Link başlığı, mutlak URL’ler, sayfa başına tek bildirim ve sık yapılan hatalar.

İlk yayın tarihi: 23 Haz 2026 · Son güncelleme: 22 Ağu 2026 · Advanced
Diller
Bu sayfada 1 kanıt sinyali

Canonical etiketi (rel=canonical), yinelenen içerikte hangi URL’nin tercih edilen sürüm olduğunu arama motorlarına bildirir. Bu bir yönerge değil, Google’ın geçersiz kılabileceği güçlü bir sinyaldir. Geçerli yöntemler: <head> içindeki HTML <link rel="canonical"> öğesi (<body> içinde asla kullanılmaz), PDF ve diğer HTML dışı dosyalar için HTTP Link başlığı ve daha zayıf bir sinyal olarak site haritasına eklemedir. Her sayfada tek ve açık bir canonical ilişkisi bildirin; birden çok veya çelişen bildirimin beklenmedik sonuçlar doğurabileceğini ve arama motorunun ilk ya da son etiketi kesin olarak seçmediğini unutmayın. Mutlak URL’ler kullanın ve tercih edilen sayfaları kendilerine referanslayın. Sayfalandırılmış sayfaları birinci sayfaya canonical olarak bağlamayın; canonical bildirimini noindex ya da robots.txt engeliyle birleştirmeyin. Ham yanıtı, işlenmiş DOM’u, yanıt başlıklarını ve GSC’de kullanıcı tarafından belirtilen ile Google tarafından seçilen canonical değerlerini karşılaştırın.

TL;DR — rel=canonical bir kural değil, Google’ın geçersiz kılabildiği güçlü bir ipucudur. Geçerli yöntemler: HTML <link rel="canonical"> öğesini <head> içinde kullanma (<body> içinde yok sayılır), PDF ve diğer HTML dışı dosyalar için HTTP Link: rel="canonical" başlığı ve daha zayıf bir sinyal olarak site haritasına ekleme. Her sayfada tek ve açık bildirim kullanın; mutlak URL belirtin, tercih edilen sayfalarda kendine referans verin ve sayfalandırılmış diziyi birinci sayfaya bağlamayın. Canonical bildirimini noindex, robots.txt engeli veya 4XX yanıtıyla birleştirmeyin. Ham kaynakla işlenmiş DOM’u, başlık için curl -I çıktısını ve GSC URL Denetimi’ndeki kullanıcı tarafından belirtilen ile Google tarafından seçilen canonical değerlerini karşılaştırın.

Canonical bir bildirimdir, karar değil

İki kavramı birbirinden ayırın. Canonicalization, Google’ın yinelenen URL kümesinden temsili bir URL seçmek için yürüttüğü ve birçok sinyali birlikte değerlendirdiği süreçtir. Canonical etiketi ise bu sinyallerden yalnızca biridir: sizin beyan ettiğiniz tercih. Bu sayfa tercihin doğru bildirilmesini ele alır; seçim sürecinin kendisi canonicalization merkezinde açıklanır.

Bu ayrım doğruluğun temelidir. Google’ın ifadesiyle, “indicating a canonical preference is a hint, not a rule.” (Türkçe çeviri) “Canonical tercihi belirtmek bir ipucudur, kural değildir.” Bu güçlü bir ipucudur. Canonicalization üzerine ayrıntılı yazımda canonical etiketinin “güçlü bir sinyal olarak değerlendirildiğini” ve diğer sinyaller daha güçlüyse Google’ın bunu yok sayabileceğini anlatıyorum. Ancak hiçbir zaman yönerge değildir. URL A’yı canonical olarak bildirirken iç bağlantılarınız, site haritanız ve yönlendirmeleriniz URL B’yi gösteriyorsa Google B’yi seçebilir. Search Console’da gördüğünüz “Yinelenen, Google kullanıcıdan farklı bir standart sayfa seçti” durumu budur. Evidence for this claim Canonicalization methods communicate a preferred URL, but Google can choose a different canonical when signals conflict. Scope: Google Search canonical selection; applies to duplicate or very similar pages. Confidence: high · Verified: Google: URL canonicalization

Yönlendirme dışındaki üç canonical bildirim yöntemi

Google, yönlendirmelerin yanı sıra canonical belirtmek için farklı güçlere sahip üç yöntem belgeliyor: Evidence for this claim Alongside redirects, Google documents three non-redirect ways to indicate a canonical: an HTML link element, an HTTP Link header, and sitemap inclusion. Scope: The three non-redirect canonical declaration approaches covered in this article; Google also documents redirects as a canonicalization method. Confidence: high · Verified: Google: Specify a canonical URL

  • HTML <link rel="canonical"> öğesini <head> içinde kullanma — “A strong signal that the specified URL should become canonical.” (Türkçe çeviri) “Belirtilen URL’nin canonical olması gerektiğine dair güçlü bir sinyal.” HTML sayfalarında günlük kullanım için temel yöntem budur.
  • HTTP Link: rel="canonical" yanıt başlığı<link> öğesi ekleyemediğiniz belgeler içindir. Google, RFC5988’de tanımlandığı biçimde rel=“canonical” hedef niteliğine sahip HTTP Link yanıt başlığının, PDF gibi HTML dışı belgeler dâhil Arama tarafından desteklenen belgelerde canonical URL’yi belirtmek için HTML öğesi yerine kullanılabileceğini söylüyor. HTML yöntemi yalnızca HTML sayfalarında çalışır; PDF gibi dosyalarda HTTP rel=“canonical” başlığını kullanabilirsiniz. “Bir PDF’ye nasıl canonical tanımlarım?” sorusunun yanıtı budur.
  • Site haritasına ekleme — “A weak signal that helps the URLs that are included in a sitemap become canonical.” (Türkçe çeviri) “Site haritasında yer alan URL’lerin canonical olmasına yardımcı olan zayıf bir sinyal.” Geçerlidir, ancak üçü arasındaki en zayıf yöntemdir.

Bu yöntemlerin etkileşimi hakkında iki önemli nokta vardır:

  • Birlikte güçlenirler. Google şöyle diyor: “these methods can stack and thus become more effective when combined” (Türkçe çeviri) “Bu yöntemler üst üste eklenebilir ve birlikte kullanıldığında daha etkili olabilir.” Kendine referans veren bir <link>, temiz bir site haritası ve aynı URL’yi gösteren tutarlı iç bağlantılar, tek başına kullanılan herhangi bir sinyalden çok daha güçlüdür.
  • Hiçbiri zorunlu değildir. “While we encourage you to use these methods, none of them are required; your site will likely do just fine without specifying a canonical preference.” (Türkçe çeviri) “Bu yöntemleri kullanmanızı teşvik etsek de hiçbiri zorunlu değildir; siteniz canonical tercihi belirtmeden de büyük olasılıkla sorunsuz çalışır.” Bildirim belirsizliği giderir; bildirim yapmamak tek başına hata değildir.

Ayrıca 301 yönlendirmesi, rel=canonical etiketinden daha güçlü bir birleştirme sinyalidir; ancak farklı bir araçtır. Canonical, 301 ve noindex karşılaştırması aşağıdadır.

PDF’de <head> bulunmadığından <link> öğesini yerleştirecek bir alan yoktur. Çözüm, canonical bildirimini sunucu düzeyinde HTTP yanıt başlığıyla göndermektir:

Link: <https://www.example.com/downloads/whitepaper.pdf>; rel="canonical"

Bu başlığı sunucunuzda (Apache .htaccess, Nginx) veya CDN/edge katmanında yapılandırırsınız. Çalışan Apache ve Nginx örnekleriyle başlığın gerçekten gönderildiğini doğrulayan curl -I komutu için Scripts sekmesine bakın. Başlık yöntemi HTML’de de çalışır, ancak HTML sayfalarında <link> öğesi daha basittir. Düzenlenecek işaretleme olmadığında — PDF, görsel veya başka bir HTML dışı dosyada — yanıt başlığını kullanın.

Etiket <head> içinde olmalı: body’ye kayma tuzağı

En çok kişiyi etkileyen ve neredeyse her zaman kazara oluşan hata budur. Google’ın ifadesiyle, “The rel=“canonical” link element is only accepted if it appears in the <head> section of the HTML, so make sure at least the <head> section is valid HTML.” (Türkçe çeviri) “rel=canonical bağlantı öğesi yalnızca HTML’nin head bölümünde görünürse kabul edilir; bu nedenle en azından head bölümünün geçerli HTML olduğundan emin olun.” 2013 tarihli “5 yaygın hata” yazısındaki daha net ifade şöyledir: “When we encounter a rel=canonical designation in the <body>, it’s disregarded.” (Türkçe çeviri) “body içinde bir rel=canonical bildirimiyle karşılaştığımızda bunu dikkate almayız.” Son cümlede kural özetlenir: <head> içindeki bildirimler işlenir, <body> içindekiler işlenmez. Evidence for this claim Google accepts an HTML rel=canonical link element only in a valid head section and disregards a canonical placed in the body. Scope: HTML link-element canonicals in Google Search; HTTP-header canonicals are a separate method. Confidence: high · Verified: Google: Common rel=canonical mistakes

Tuzak şudur: Kaynakta canonical etiketini <head> içine yazmış olabilirsiniz; ancak sayfa tarayıcıda oluşturulurken veya arama motoru tarafından işlenirken <head> erken kapanabilir. Kapatılmamış etiketler, head içine eklenen JavaScript veya head içindeki bir <iframe> buna yol açabilir. Canonical daha sonra işlenmiş <body> içine düşer ve yok sayılır. JavaScript SEO rehberimde anlattığım gibi kapatılmamış etiketler ya da eklenen JavaScript, işlenmiş sayfada <head> bölümünü erken bitirip canonical etiketini dikkate alınmayacağı <body> bölümüne atabilir.

Sorun, sayfa kaynağında görünmez; ham HTML düzgün görünebilir. Canonical etiketinin gerçekte nereye yerleştiğini görmek için ham HTML ile işlenmiş DOM’u (DevTools Elements paneli veya GSC URL Denetimi’ndeki işlenmiş HTML) karşılaştırın.

JavaScript konusunda Google’ın önerisi tek bir yöntem seçip kendi sinyallerinizle çelişmemenizdir. “If you can’t set the canonical URL in the HTML source code, leave it out and only set it with JavaScript.” (Türkçe çeviri) “Canonical URL’yi HTML kaynak kodunda ayarlayamıyorsanız kaynakta hiç kullanmayın ve yalnızca JavaScript ile ayarlayın.” JS canonical etiketini ekliyorsa bunu doğru şekilde <head> içine yerleştirdiğinden emin olun; sunucuda ayrıca farklı bir canonical üretmeyin.

Her sayfada tek bir canonical ilişkisi bildirin

Her sayfanın açık ve tek bir canonical ilişkisi olmalıdır. Google’ın güncel canonical yöntemleri rehberi, yöntemleri birleştirmenin hatalara ve beklenmedik sonuçlara yol açabileceğini söylüyor; ilk ya da son etiketin kazanacağına dair bir kural tanımlamıyor. Google Search Central’ın 2013 tarihli yazısında birden çok bildirimin büyük olasılıkla yok sayılacağı belirtilmişti. Bunu kalıcı ve kesin bir ayrıştırıcı sözleşmesi olarak değil, tarihsel sorun giderme bağlamı olarak değerlendirin. Günümüzde güvenli yaklaşım, çelişkiyi işaretlemek, tüm HTML ve HTTP bildirimlerini görünür kılmak ve şablonu düzeltmektir.

Yaygın neden yazım hatası değil, üst üste binen sistemlerdir. CMS bir bildirim, tema bir bildirim ve SEO eklentisi başka bir bildirim ekler; sonuçta üç çelişen canonical ortaya çıkar. Canonicalization üzerine ayrıntılı yazımda bu örüntüyü doğrudan ele aldım: Birden çok rel=canonical etiketi büyük olasılıkla yok sayılır ve bu çoğu zaman etiketlerin CMS, tema ve eklentiler tarafından sistemin farklı noktalarında eklenmesinden kaynaklanır. “Çalışmayan” bir canonical bildirimi inceliyorsanız önce işlenmiş DOM’daki etiketleri sayın.

Göreli değil, mutlak URL kullanın

Google şöyle diyor: “Use absolute paths rather than relative paths with the rel=“canonical” link element. Even though relative paths are supported by Google, they can cause problems in the long run.” (Türkçe çeviri) “rel=canonical bağlantı öğesinde göreli yollar yerine mutlak yollar kullanın. Google göreli yolları desteklese de bunlar uzun vadede sorunlara yol açabilir.” Bunun mekanik nedeni, <link> öğesinin hem göreli hem mutlak URL kabul etmesi ve göreli bir href değerini, örneğin /page/ yolunu, mevcut URL’ye göre çözümlemesidir. Hatalı bir base öğesi veya beklenmedik bir yol, hedefi istemediğiniz bir yere taşıyabilir. Her zaman tam URL’yi yazın:

<!-- Good -->
<link rel="canonical" href="https://www.example.com/dresses/green/green-dress.html">

<!-- Bad: relative path -->
<link rel="canonical" href="/dresses/green/green-dress.html">

Sunucu adı ve protokol için de aynı mantık geçerlidir: gerçek ve nihai sürümü (https:// kullanın, http:// kullanmayın; doğru canonical sunucu adını seçin) gösterin. URL parçasını canonical olarak kullanmayın; Google genellikle URL parçalarını desteklemez.

Kendine referans veren canonical etiketleri ve sayfalandırma

Tercih edilen bir sayfanın kendisini canonical olarak göstermesi uygundur ve önerilir. Diğer sinyaller tam olarak hizalanmadığında bu, niyetinizi açık hâle getirir. Bir denetim sayfada “farklı canonical yok” diyorsa kendine referans veren canonical bu koşulu karşılar: Aynı URL’yi bildiren geçerli bir etikettir, rakip hedef değildir.

Kendine referansın en önemli olduğu ve sık hata yapılan alan sayfalandırmadır. Bir dizinin 2., 3. veya 4. sayfasını birinci sayfaya canonical olarak bağlamayın. “Specifying a rel=canonical from page 2 (or any later page) to page 1 is not correct use of rel=canonical.” (Türkçe çeviri) “2. sayfadan veya sonraki herhangi bir sayfadan 1. sayfaya rel=canonical belirtmek rel=canonical etiketinin doğru kullanımı değildir.” İkinci sayfa birincinin yineleni değildir; farklı içerik taşır. Bunun yerine her sayfalandırılmış sayfada kendine referans veren canonical kullanın.

Benzer bir aşırı canonical kullanımı da kategori veya açılış sayfasını tek bir öne çıkan makaleye bağlamaktır. Kategori sayfası ile makale aynı içerik olmadığından bu da yanlış kullanımdır.

Canonical etiketini görünmez kılmayın, bozuk bir hedefe de yöneltmeyin

Canonical ancak Google sayfayı tarayabiliyor, etiketi okuyabiliyor ve çelişen bir talimat almıyorsa çalışır. Bu bir kaynak tarafı sağlık sorunudur: Google’ın yinelenen URL’deki etiketi görüp göremediğiyle ilgilidir. Canonical sinyalini geçersiz kılan üç yaygın durum vardır:

  • Canonical bildirilen URL’yi robots.txt ile engellemek. Yinelenen URL için Disallow kullanırsanız Google sayfayı tarayamaz, canonical etiketini göremez ve sinyalleri birleştiremez. Üstelik Google, robots.txt ile engellenen URL’leri içeriklerini görmeden yine de dizine ekleyebilir. Canonicalization için robots.txt kullanmayın.
  • Canonical bildirilen URL’ye noindex koymak. Talimatlar çelişir: noindex “bu sayfayı kaldır”, canonical ise “bu sayfanın sinyallerini birleştir” der. Amacınıza göre yalnızca birini seçin.
  • Canonical bildirilen URL’de 4XX döndürmek. Etkisi noindex ile aynıdır: Google etiketi okuyamaz ve birleştirme sinyalini aktaramaz.

Yöntemler arasında çelişen canonical hedefler de bildirmeyin. Google’ın ifadesiyle, “Don’t specify different URLs as canonical for the same page using different canonicalization techniques.” (Türkçe çeviri) “Aynı sayfa için farklı canonicalization teknikleriyle farklı URL’leri canonical olarak belirtmeyin.” Örneğin site haritasında bir URL, rel=canonical içinde başka bir URL kullanmayın.

Ayrıca çoğu kişinin ters yönde baktığı için kaçırdığı ayrı bir hedef tarafı sağlık sorunu vardır: Canonical ile işaret ettiğiniz URL temiz bir varış noktası olmalıdır. RFC 6596; kendisi yönlendirme kaynağı olan, başka bir canonical hedefe zincirlenen veya hata kodu döndüren bir URL’nin hedef gösterilmemesini söyler. Google’ın doğrulama listesi hedefte noindex bulunmadığını ve temiz bir 200 döndüğünü kontrol etmeyi de ekler. Yönlendiren, zincirlenen, noindex taşıyan veya hata veren bir hedefe canonical göstermek, Google’dan temsili sayfa olarak hizmet veremeyen bir URL’de sinyalleri birleştirmesini istemektir. Kaynak sayfanın taranabilirliğinden ayrı olarak hedefin yönlendirmesiz, noindex içermeyen, başka canonical hedef göstermeyen temiz bir yanıt döndürdüğünü denetleyin.

hreflang kullanıyorsanız canonical aynı dilde bir sayfayı göstermelidir. Aynı dilde canonical sayfa yoksa mümkün olan en iyi dil ikamesini seçin.

Canonical, 301 yönlendirmesi ve noindex karşılaştırması

Bu araçlar çoğu zaman birbirinin yerine kullanılabilir sanılır, ancak öyle değildir. Cheat Sheets sekmesindeki karar tablosuna da bakın. Kısa özet:

  • rel=canonical — Her iki URL de erişilebilir ve taranabilir kalır; siz bir tercih bildirirsiniz, Google sinyalleri seçtiği URL’de birleştirir. Bu bir ipucudur. Her iki URL’nin erişilebilir kalması gerektiğinde ve içerikler gerçekten yinelenen ya da neredeyse yinelenen olduğunda (parametreler, yazdırma sürümleri) kullanın. Ortak yayın içeriği için genel bir çözüm değildir; aşağıdaki sınırı dikkate alın.
  • 301 yönlendirmesi — Kullanıcılar ve botlar hedefe gerçekten taşınır; en güçlü birleştirme sinyalidir. Yinelenen URL’ye artık hiç erişilmemesi gerektiğinde kullanın.
  • noindex — Sayfayı arama sonuçlarından tamamen kaldıran bir yönergedir. Google’ın etiketi görebilmesi için sayfa taranabilir kalmalıdır. Birleştirmek için değil, kaldırmak için kullanın.

Google, site içi yinelenenlerde canonical etiketini tercih eder: “We don’t recommend using noindex to prevent selection of a canonical page within a single site, because it will completely block the page from Search. rel=“canonical” link annotations are the preferred solution.” (Türkçe çeviri) “Tek bir site içinde canonical sayfa seçimini önlemek için noindex kullanmanızı önermiyoruz; çünkü bu, sayfayı Arama’dan tamamen engeller. Tercih edilen çözüm rel=canonical bağlantı bildirimleridir.” Evidence for this claim Google recommends rel=canonical rather than noindex when the goal is selecting a canonical within one site, because noindex removes the page from Search. Scope: Google Search guidance for duplicate pages within a single site. Confidence: high · Verified: Google: Specify a canonical URL

Canonical bildirimi neden yok sayılır?

Google bildirdiğinizden farklı bir canonical seçtiğinde neden neredeyse her zaman şunlardan biridir: İki URL aslında aynı içeriği taşımıyordur; birden çok ya da çelişen canonical vardır; etiket body içindedir; göreli veya bozuktur; URL robots.txt ile engellenmiştir ya da 4XX döndürür; iç bağlantılar, site haritası veya yönlendirmeler gibi daha güçlü sinyaller başka bir URL’yi gösteriyordur.

“İçeriğin aslında aynı olmaması” özellikle JS ile işlenen siteleri etkiler. John Mueller şöyle açıklıyor: “With JavaScript based sites, the content side is a common reason for this: for example, if you’re using a SPA-type setup where the static HTML is mostly the same, and JavaScript has to be run in order to see any of the unique content, then if that JS can’t be executed properly, then the content ends up looking the same.” (Türkçe çeviri) “JavaScript tabanlı sitelerde bunun yaygın nedeni içeriktir: Örneğin statik HTML’nin büyük ölçüde aynı olduğu ve benzersiz içeriği görebilmek için JavaScript’in çalışması gereken SPA türü bir yapı kullanıyorsanız, JS doğru çalıştırılamadığında içerikler aynı görünür.” Google benzersiz içeriği göremezse “yinelenen” sayfaları ayırt edemez ve onları istemediğiniz biçimde birleştirebilir ya da ayırabilir.

Bing de rel=canonical etiketini her derde deva bir çözüm değil, açıklık sinyali olarak görür ve ortak yayın içeriğinde kullanılmasını açıkça önerir: İş ortağından özgün sayfayı canonical göstermesini isteyin. Burada Google ile gerçek bir görüş ayrılığı vardır. Google’ın güncel sorun giderme rehberi şöyle der: “the canonical link element is not recommended for those who want to avoid duplication by syndication partners, because the pages are often very different.” (Türkçe çeviri) “Ortak yayın iş ortaklarının oluşturduğu yinelenmeyi önlemek isteyenler için canonical bağlantı öğesi önerilmez; çünkü sayfalar çoğu zaman birbirinden çok farklıdır.” Evidence for this claim Google's current troubleshooting guidance does not recommend rel=canonical as the general fix for duplication by syndication partners, because syndicated pages are often materially different from the original. Scope: Google Search guidance for syndicated-content duplication; canonical remains valid where the syndicated copy is a genuine duplicate or superset of the original. Confidence: high · Verified: Google: Fix canonicalization issues Google’ın bu özel soruna önerdiği çözüm, iş ortağından kendi kopyasının dizine eklenmesini engellemesini istemektir; canonical değildir. Çünkü canonical yalnızca hedef gerçekten aynı içeriği taşıdığında çalışır ve ortak yayın kopyaları çoğu zaman yeterince yakın değildir. Bing ise canonical etiketleri, yönlendirmeler, hreflang, noindex ve IndexNow’un bu açıklığı desteklediğini; temel şartın gereksiz yinelenmeyi önleyen sade bir site olduğunu söyler. Bilinmesi gereken başka bir fark da parametre kaynaklı yinelenmede Bing’in Bing Webmaster Tools içindeki URL Normalization özelliğini tercih etmesidir.

Nasıl test edilir?

Numaralı iş akışı Checklists, komutlar ise Scripts sekmesindedir. Temel adımlar:

  1. Sayfanın kaynağını görüntüleyin: Tam olarak bir <link rel="canonical"> var mı; bu öğe <head> içinde mi ve mutlak URL kullanıyor mu?
  2. İşlenmiş DOM ile karşılaştırın (DevTools veya GSC işlenmiş HTML): İşleme sonrasında etiket <head> içinde kaldı mı ve hâlâ tek bildirim mi?
  3. URL’de curl -I çalıştırarak HTTP Link: rel="canonical" başlığını arayın. PDF ve HTML dışı dosyalar bu şekilde kontrol edilir.
  4. GSC URL Denetimi ile kullanıcı tarafından belirtilen canonical ve Google tarafından seçilen canonical değerlerini karşılaştırın. Uyuşmazlık, nedeni araştırmanız gereken bir sinyaldir. İki sınıra dikkat edin: Dizine eklenmiş sonuç gerçek durumun birkaç saat gerisinde kalabilir; canlı test ise yalnızca URL’nin o anda getirilebildiğini doğrular, Google’ın hangi URL’yi seçeceğini öngöremez.
  5. Canonical sorunlarını ölçekli biçimde yakalamak için siteyi tarayın. Doğruladığınız sitelerde Ahrefs Webmaster Tools üzerinden ücretsiz Ahrefs Site Audit veya Screaming Frog kullanabilirsiniz.

Google’ın yaklaşık 40 sinyal arasından canonical URL’yi nasıl seçtiği daha geniş bir konudur; canonicalization merkezine bakın. Yinelenen içerik ve URL parametreleri gibi kardeş sorunlar, canonical etiketine ihtiyaç duymanızın başlıca nedenleridir.

Add an expert note

Pin an expert quote

New person? Create their unclaimed profile at /admin/experts/ → Pin a quote first.