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.
Diller
Bu sayfada 1 kanıt sinyali
- İlgili canlı araçHTTP Status & Redirect Checker
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 — Canonical etiketi, aynı içerik birden fazla adreste bulunduğunda hangi URL’nin “ana” sürüm olduğunu arama motorlarına bildirir. Dizine eklenmesini istediğiniz sürümü gösteren tek satırlık
<link rel="canonical" href="...">öğesini sayfanın<head>bölümüne eklersiniz. Bu bir ipucudur, komut değildir: Google çoğunlukla bildirimi izler, ancak diğer sinyaller çelişirse farklı bir sayfa seçebilir.
Canonical etiketi nedir?
Aynı veya neredeyse aynı içeriğe birden çok URL’den erişilebildiğinde — örneğin
example.com/page, example.com/page?ref=newsletter ve http:// sürümü — arama
motorlarının sonuçlarda hangisini göstereceğine karar vermesi gerekir. Canonical
etiketi, tercihinizi arama motorlarına bildirmenin yoludur.
Sayfanın <head> bölümüne yerleştirilen tek satırlık bir HTML öğesidir:
<link rel="canonical" href="https://www.example.com/page/">Bu bildirim, “Bu içeriği birkaç URL’de bulursanız bunu gerçek sürüm olarak değerlendirin” demektir. Arama motorları bağlantılar gibi sıralama sinyallerini yinelenen URL’ler arasında bölmek yerine tercih edilen URL’de birleştirebilir.
Önce anlaşılması gereken tek şey
Canonical etiketi bir ipucudur, yönerge değildir. Google bunu güçlü bir öneri
olarak değerlendirir, ancak diğer sinyallerle karşılaştırır ve farklı bir URL seçebilir.
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 Dolayısıyla etiket, diğer sürümü Google’dan
zorla çıkarmaz. Bir sayfayı arama sonuçlarından tamamen kaldırmak istiyorsanız
canonical değil, noindex gibi farklı bir araç kullanmanız gerekir.
Karışıklığın çoğu buradan doğar. Canonical ekleyen kişiler, diğer URL’nin Google’dan silindiğini varsayar. Oysa canonical yalnızca Google’a hangi sürümü tercih edip sinyalleri hangi sürümde birleştireceğini bildirir.
Nasıl eklenir? (Basit yöntem)
- Ham HTML:
<link rel="canonical" href="...">satırını<head>içine yerleştirin. - WordPress: Yoast veya Rank Math gibi bir SEO eklentisi kendine referans veren canonical etiketini otomatik ekler ve her sayfa için özel bir hedef belirlemenize izin verir.
- Shopify: Tema varsayılan olarak canonical etiketi ekler; bunu temanın
theme.liquiddosyasında veya şablonlarında düzenleyebilirsiniz.
Hataların çoğunu önleyen üç kural şudur: tam https://... URL’sini kullanın, kısa
/page/ yolu kullanmayın; etiketi <head> içinde tutun ve her sayfada yalnızca bir bildirim bulundurun.
Hangi durumlarda kullanılır?
- İzleme parametreleri, yazdırma sürümleri veya aynı ürüne giden farklı kategori yollarından doğan yinelenen içerikte.
- Birden fazla URL’ye gelen bağlantıların otoritesini sıralanmasını istediğiniz tek URL’de birleştirmek için.
- Kendine referans vermek için: Bir sayfanın kendi URL’sini canonical olarak göstermesi uygundur ve önerilir; bu, tercihinizi açık hâle getirir.
PDF’ler için HTTP başlığı yöntemi, sessizce başarısız olan uygulama biçimleri ve doğrulama adımları gibi ayrıntılar için Advanced sekmesine geçin.
TL;DR —
rel=canonicalbir 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 HTTPLink: 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 bildirimininoindex, robots.txt engeli veya 4XX yanıtıyla birleştirmeyin. Ham kaynakla işlenmiş DOM’u, başlık içincurl -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.
HTTP Link başlığı (ve PDF’lerin buna neden ihtiyaç duyduğu)
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
Disallowkullanı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
noindexkoymak. 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:
- 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? - İş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? - URL’de
curl -Içalıştırarak HTTPLink: rel="canonical"başlığını arayın. PDF ve HTML dışı dosyalar bu şekilde kontrol edilir. - 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.
- 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.
Yapay zekâ özeti
Advanced sürümün kısa özeti:
rel=canonicalbir ipucudur, kural değildir. Google bunu güçlü bir sinyal sayar, ancak diğer sinyaller çeliştiğinde geçersiz kılabilir. Tercihinizi bildirir; diğer URL’yi arama sonuçlarından zorla çıkarmaz.- Üç geçerli bildirim yöntemi vardır: HTML
<link rel="canonical">öğesini<head>içinde kullanma, öğesi (güçlü), HTTPLink: rel="canonical"başlığı (PDF ve HTML dışı dosyalar için yöntem) ve site haritasına ekleme (zayıf). Birlikte güçlenirler; hiçbiri zorunlu değildir. 301 yönlendirmesi ayrı ve daha güçlü bir sinyaldir. - Yalnızca
<head>içinde kullanın.<body>içindeki bildirim yok sayılır. Kapatılmamış etiketler, eklenen JS veya iframe’ler işleme sırasında<head>bölümünü erken kapatıp canonical etiketini body’ye itebilir. Ham HTML ile işlenmiş DOM’u karşılaştırarak bunu yakalayın. - Her sayfada tek ve açık bildirim kullanın. Birden çok bildirim çelişkidir; ilk ya da son etiketin kazanacağına dair belgelenmiş bir kural yoktur. Yaygın neden CMS, tema ve eklentinin bağımsız olarak etiket eklemesidir.
- Mutlak URL, doğru sunucu adı ve protokol kullanın; URL parçalarını kullanmayın. Göreli yollar mevcut URL’ye göre çözümlenir ve yanlış hedefe gidebilir.
- Tercih edilen sayfaları kendilerine referanslayın. Sayfalandırılmış diziyi birinci sayfaya bağlamayın; her sayfa kendini göstermelidir. Kategori sayfasını tek bir öne çıkan makaleye bağlamayın.
- Sinyali boşa çıkarmayın: Aynı amaç için
noindexile canonical kullanmayın, canonical bildirilen URL’yi robots.txt ile engellemeyin ve 4XX döndürmeyin. Bunların her biri Google’ın etiketi okumasını veya dikkate almasını engeller. Yöntemler arasında çelişen canonical hedefler bildirmeyin. - Canonical, 301 ve noindex: Canonical iki URL’yi de erişilebilir tutar (ipucu); 301 her şeyi taşır (en güçlü); noindex sayfayı kaldırır (yönerge). Google, site içi yinelenenlerde noindex yerine canonical tercih eder.
- Yok sayılma nedenleri: İçeriklerin aslında eşdeğer olmaması (JS/SPA sitelerinde yaygın), birden çok veya çelişen etiket, body’ye yerleşme, robots.txt/4XX ya da başka yerdeki daha güçlü sinyaller.
- Doğrulama: Ham kaynak ile işlenmiş DOM’u karşılaştırın; başlıkları
curl -Iile, kullanıcı tarafından belirtilen ve Google tarafından seçilen canonical değerlerini GSC URL Denetimi ile inceleyin.
Resmî belgeler
Arama motorlarının birincil kaynak belgeleri.
- rel=canonical ve diğer yöntemlerle canonical URL belirtme — Desteklenen yöntemleri ve güçlerini,
<head>koşulunu, mutlak URL’leri, PDF’ler için HTTPLinkbaşlığını ve kaçınılması gerekenleri açıklayan uygulama belgesi. - URL canonicalization nedir? — “İpucu, kural değil” ayrımı ile Google’ın değerlendirdiği sinyalleri içeren kavram belgesi.
- rel=canonical ile ilgili 5 yaygın hata (Search Central Blog, 2013) — “Sayfa başına yalnızca bir bildirim; aksi hâlde tümü yok sayılır” ve “
<body>içinde dikkate alınmaz” ifadelerinin özgün kaynağı. - Canonicalization sorunlarını düzeltme — “Yinelenen, Google kullanıcıdan farklı bir standart sayfa seçti” gibi Search Console durumlarını açıklar.
- Arama dizinine eklemeyi engelleme (noindex) — Sayfayı birleştirmek değil, aramadan kaldırmak istediğinizde kullanılır.
Bing / Microsoft
- Yinelenen içerik SEO’ya ve yapay zekâ arama görünürlüğüne zarar verir mi? (Canel ve Madhavan, Aralık 2025) — Bing’in ortak yayın içeriği için
rel=canonicalönerisini de içeren güncel yaklaşımı. - Canonical’dan daha iyisi: URL Normalization (Canel, 2012) — Bing’in parametre kaynaklı yinelenme için tercih ettiği Bing Webmaster Tools çözümü.
Kaynaktan alıntılar
Google ve Bing’in kayda geçmiş açıklamaları. Her bağlantı, kaynak sayfadaki alıntı bölümüne doğrudan gider.
Google — ipucu, kural değil
- “indicating a canonical preference is a hint, not a rule.” (Türkçe çeviri) “Canonical tercihi belirtmek bir ipucudur, kural değildir.” — Google Search Central belgeleri. Alıntıya git
- “Canonicalization is the process of selecting the representative –canonical– URL of a piece of content.” (Türkçe çeviri) “Canonicalization, bir içerik parçasının temsili —canonical— URL’sini seçme sürecidir.” Alıntıya git
Google — desteklenen yöntemler ve güçleri
- “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.” (rel=canonical) — Google Search Central belgeleri. Alıntıya git
- “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.” Alıntıya git
- “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.” Alıntıya git
Google — yerleşim, mutlak URL’ler ve HTTP başlığı
- “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.” Alıntıya git - “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ı öğesiyle göreli yollar değil, mutlak yollar kullanın. Google göreli yolları destekler; ancak bunlar uzun vadede sorun çıkarabilir.” Alıntıya git
- “…a link HTTP response header with a rel=“canonical” target attribute as defined by RFC5988 rather than an HTML element to indicate the canonical URL for a document supported by Search, including non-HTML documents such as PDF files.” (Türkçe çeviri) “PDF dosyaları gibi HTML dışı belgeler dâhil Arama tarafından desteklenen bir belgenin canonical URL’sini belirtmek için HTML öğesi yerine RFC5988’de tanımlandığı biçimde rel=canonical hedef niteliğine sahip HTTP Link yanıt başlığı kullanılabilir.” Alıntıya git
- “Only works for HTML pages, not for files such as PDF. In such cases, you can use the rel=“canonical” HTTP header.” (Türkçe çeviri) “Yalnızca HTML sayfalarında çalışır; PDF gibi dosyalarda çalışmaz. Bu durumlarda rel=canonical HTTP başlığını kullanabilirsiniz.” Alıntıya git
Tarihsel Google rehberliği — sayfa başına yalnızca bir bildirim (2013, “5 yaygın hata”)
- “When more than one is specified, all rel=canonical links will be ignored.” (Türkçe çeviri) “Birden fazlası belirtildiğinde tüm rel=canonical bağlantıları yok sayılır.” — Google Webmaster Central Blog (2013). Bu yararlı bir tarihsel kayıttır; güncel Google belgeleri kesin bir yinelenen etiket sonucu belirtmeden hata ve beklenmedik sonuç riskine karşı uyarır. Alıntıya git
- “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.” Alıntıya git - “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.” Alıntıya git
Google — noindex yerine canonical tercihi ve çelişen yöntemler
- “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 sitede canonical sayfanın seçilmesini önlemek amacıyla noindex kullanmanızı önermiyoruz; bu, sayfayı Arama’dan tümüyle çıkarır. rel=canonical bağlantı bildirimleri tercih edilen çözümdür.” Alıntıya git
- “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.” Alıntıya git
John Mueller, Google — JS sitelerinde canonical neden yok sayılır?
- “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.” (Search Engine Journal aracılığıyla aktarıldı, 2019.) Alıntıya git
Fabrice Canel ve Krishna Madhavan, Microsoft Bing
- “Canonical tags, redirects, hreflang, noindex, and IndexNow all support this clarity, but the foundation is a streamlined site that avoids unnecessary duplication.” (Türkçe çeviri) “Canonical etiketleri, yönlendirmeler, hreflang, noindex ve IndexNow bu açıklığı destekler; ancak temel, gereksiz yinelenmeyi önleyen sade bir sitedir.” Yazıyı oku
Canonical uygulama ve kalite kontrol listesi
Canonical tanımladığınız her sayfa veya şablonda bu listeyi uygulayın:
- Sayfada tam olarak bir
<link rel="canonical">var; bunu yalnızca kaynakta değil işlenmiş DOM’da saydınız. CMS, tema ve eklenti bağımsız bildirimler ekleyebilir. - Etiket
<head>içinde ve mümkün olduğunca erken yer alıyor; işleme sonrasında da<head>içinde kalıyor. Kapatılmamış etiket, eklenen JS veya iframe aşağı itmemiş. -
href, mutlak ve tam nitelikli bir URL’dir (https://www.example.com/page/); göreli/page/yolu veya URL parçası değildir. - Doğru sunucu adı ve protokolü (
https://kullanılır,http://kullanılmaz; doğru canonical sunucu) gösteriyor ve URL gerçekten200döndürüyor. - Hedef temiz bir varış noktası: Yönlendirme yapmıyor, başka bir canonical
hedefe zincirlenmiyor ve
noindextaşımıyor. Bu, yukarıdaki kaynak tarafı taranabilirliğinden ayrı bir denetimdir. - Tercih edilen sayfalar kendilerine referans veriyor.
- Sayfalandırılmış sayfalar kendilerine referans veriyor; birinci sayfayı göstermiyor.
- Canonical bildirilen yinelenen URL
robots.txtile engellenmemiş,noindexdeğil ve 4XX döndürmüyor; Google etiketi okuyabiliyor. - Yöntemler arasında çelişen canonical yok; site haritası,
<link>ve başlık aynı hedefte uzlaşıyor. - PDF ve HTML dışı dosyalarda canonical, HTTP
Linkbaşlığıyla gönderiliyor vecurl -Iile doğrulandı. - hreflang kullanılıyorsa canonical aynı dilde bir sayfayı gösteriyor.
- GSC URL Denetimi’nde Google tarafından seçilen canonical, kullanıcı tarafından belirtilen canonical ile eşleşiyor; her uyuşmazlık araştırıldı.
Canonical özet tabloları
Canonical, 301 yönlendirmesi ve noindex: Hangisi ne zaman kullanılır?
| Amaç | Kullanılacak araç | Her iki URL erişilebilir kalır mı? | Güç |
|---|---|---|---|
| Her iki URL erişilebilir kalmalı ve gerçekten yinelenen içerik taşımalı; sinyaller birleştirilmeli (parametreler, yazdırma sürümleri) | rel=canonical | Evet | Geçersiz kılınabilen güçlü bir ipucu |
| Yinelenen URL’ye artık hiç erişilmemeli | 301 yönlendirmesi | Hayır, taşınır | En güçlü birleştirme sinyali |
| Bir sayfa arama sonuçlarından tamamen kaldırılmalı | noindex | Evet, ancak dizinden çıkarılır | Uyulan bir yönerge |
Google’ın site içi yinelenenler için tercihi: rel=canonical; noindex değil.
Geçerli ve geçersiz canonical yerleşimleri
| Yerleşim / biçim | Geçerli mi? | Neden? |
|---|---|---|
<link rel="canonical"> öğesini <head> içinde kullanma | ✅ | Kabul edilen yer |
Aynı etiketin <body> içinde olması (işleme sonrası kazara kayması dâhil) | ❌ | <body> içinde yok sayılır |
HTTP Link: rel="canonical" başlığı | ✅ | PDF ve HTML dışı dosyalar için gerekli yöntem |
| Site haritasında URL | ✅ (zayıf) | <link> öğesinden daha zayıf bir sinyal |
Bir sayfada birden çok <link rel="canonical"> | ❌ | Bildirimler çelişir; sonuç ilk/son etiket sözleşmesine bağlı değildir |
Göreli href (/page/) | ⚠️ | Desteklenir ancak önerilmez; mevcut URL’ye göre çözümlenir |
| URL parçasının canonical olması | ❌ | Google URL parçalarını genellikle desteklemez |
| robots.txt ile engellenen veya 4XX döndüren URL’de canonical | ❌ | Google etiketi okuyamaz |
Düzeltme haritası
| Belirti | Olası neden | Düzeltme |
|---|---|---|
| GSC: “Yinelenen, Google kullanıcıdan farklı bir standart sayfa seçti” | İçerikler eşdeğer değil veya daha güçlü sinyaller başka hedefi gösteriyor | URL’leri gerçekten yinelenen hâle getirin ya da iç bağlantıları, site haritasını ve yönlendirmeleri hizalayın |
| Canonical tamamen yok sayılıyor | Birden çok etiket var veya işleme sonrası <body> içine düşüyor | <head> içinde tek etiket kullanın; ham HTML ile işlenmiş DOM’u karşılaştırın |
| Canonical beklenmedik bir yeri gösteriyor | Göreli href hatalı bir base değerine göre çözümleniyor | Mutlak URL kullanın |
| PDF’de sinyaller birleşmiyor | <head> bulunmadığı için yerleştirilecek bir <link> öğesi yok | HTTP Link başlığı gönderin |
Canonical etiketlerini test etme ve uygulama
HTML canonical etiketini test etme (macOS / Linux)
Ham HTML’yi alın ve etiketi grep ile arayın; bu, JS işlenmeden önce kaynakta ne bulunduğunu gösterir:
# Show every rel=canonical the server sends in the raw HTML
curl -sL https://www.example.com/page/ | grep -i 'rel=["'"'"']\?canonical'Birden fazla satır dönerse birden çok canonical sorununuz vardır; ilk ya da son etiketin kazanacağını veya tümünün kesin olarak yok sayılacağını varsaymayın. Hiç satır dönmezken sayfanın canonical etiketi “varsa” etiket muhtemelen JavaScript tarafından ekleniyordur. Bunun yerine işlenmiş DOM’u (DevTools Elements paneli veya GSC URL Denetimi → “Taranan sayfayı görüntüle” / işlenmiş HTML) inceleyin. Body’ye kayma tuzağı yalnızca işlenmiş DOM’da görünür; iki görünümü her zaman karşılaştırın.
HTTP Link başlığını test etme (PDF / HTML dışı)
# -I = headers only; look for a Link: ...; rel="canonical" line
curl -sI https://www.example.com/downloads/whitepaper.pdf | grep -i '^link:'
# Expected:
# link: <https://www.example.com/downloads/whitepaper.pdf>; rel="canonical"HTTP Link başlığı gönderme — Apache (.htaccess)
# Canonical header for a specific PDF
<Files "whitepaper.pdf">
Header set Link '<https://www.example.com/downloads/whitepaper.pdf>; rel="canonical"'
</Files>HTTP Link başlığı gönderme — Nginx
location = /downloads/whitepaper.pdf {
add_header Link '<https://www.example.com/downloads/whitepaper.pdf>; rel="canonical"';
}Platform notları
- WordPress + Yoast (veya Rank Math): Kendine referans veren canonical otomatik eklenir; yazının Advanced SEO ayarlarından özel bir hedef belirleyebilirsiniz. Tema veya başka bir eklenti de canonical üretiyorsa yinelenen etiketler oluşur. İşlenmiş DOM’u denetleyin ve fazladan kaynağı devre dışı bırakın.
- Shopify: Temalar varsayılan olarak
theme.liquidveya şablonlarda çoğunlukla{{ canonical_url }}ile canonical üretir. Şablon bazında değiştirmek için Liquid’i düzenleyin.<head>düzenleyemediğiniz HTML dışı varlıklarda HTTPLinkbaşlığı ekleyen bir uygulama veya edge/CDN kuralı kullanın. - Next.js / SPA’lar: Canonical etiketini framework’ün metadata API’si ya da
<head>çıktısı üzerinden sunucu tarafında işleyin. İstemci tarafı JS’nin eklemesine güvenmeyin; JS işleme sırasında çalışmaz veya etiketi body’ye eklerse canonical kaybolur. Mueller’in anlattığı JS içerik sorunu budur.
Zihinsel modeller
1. Bildirmek ve karar vermek farklıdır. Siz canonical etiketiyle bir tercihi bildirirsiniz; Google ise canonicalization sırasında etiketinizi yaklaşık 40 sinyalle karşılaştırıp karar verir. Bu sayı Google’dan Allan Scott tarafından açıkça belirtilmiştir. Etiket güçlü bir girdidir, ancak son söz değildir. Bildirilen ve seçilen canonical değerleri uyuşmuyorsa sorun etiketin ifadesinde değil, içerikte veya diğer sinyallerdedir.
2. Yönerge değil ipucu: Amaca uygun aracı seçin.
- Her iki URL’yi erişilebilir tutup sinyalleri birleştirme → canonical (ipucu).
- Yinelenen URL’yi tamamen ortadan kaldırma → 301 (en güçlü, davranışı değiştirir).
- Sayfayı dizinden kaldırma → noindex (yönerge). Asıl amacınız “bunu aramadan silmek” ise canonical kullanmayın.
3. Önce görünürlük.
Canonical yalnızca Google sayfayı tarayabiliyor, <head> içindeki etiketi okuyabiliyor
ve tam olarak bir bildirim bulabiliyorsa geçerlidir. robots.txt engeli, 4XX, noindex,
body’ye yerleşme veya birden çok etiket gibi görünürlüğü bozan her şey sinyali sessizce
geçersiz kılar. Niyetten önce görünürlüğü hata ayıklayın.
4. Ham ve işlenmiş görünüm. Her sayfanın iki görünümü vardır: Sunucunun gönderdiği ham HTML ve tarayıcı ya da işleyicinin oluşturduğu DOM. Canonical ilkinde doğru olup ikincisinde bozulabilir; body’ye itilebilir veya ikinci bir etiket eklenebilir. Her ikisini de kontrol edin.
5. Eşdeğerlik ön koşuldur. Canonical, gerçek yinelenenleri veya neredeyse yinelenenleri birleştirir. İki URL gerçekten aynı içeriği taşımıyorsa — benzersiz kısmı göstermek için JS’nin çalışması gerektiğinde sık görülür — Google hata yaptığınıza karar verip “canonical olmayan” URL’yi yine de dizine ekleyebilir.
Okumaya değer kaynaklar
İlgili yazılarım
- Canonical Etiketleri Açıklandı: SEO İçin Neden Önemlidir? — İncelediğim Ahrefs uygulama rehberi (yazar Joshua Hardwick): temel kurallar, yaygın hatalar ve test yaklaşımı.
- Google Yaklaşık 40 Canonicalization Sinyali Kullanıyor — Seçim tarafına ilişkin ayrıntılı incelemem: tam sinyal envanteri ve ipucu-güçlü sinyal ayrımı.
- Teknik SEO’ya Başlangıç Rehberi — Canonicalization konusunun daha geniş çerçevedeki yeri.
- JavaScript SEO Sorunları ve En İyi Uygulamalar — Body’ye yerleşme ve “içerik aynı görünüyor” hatalarının arkasındaki işleme süreci.
Resmî kaynaklar
- Canonical URL nasıl belirtilir? (Google) — Uygulama belgesi.
- rel=canonical ile ilgili 5 yaygın hata (Google, 2013) — Hata biçimlerini en açık anlatan kaynaklardan biri.
Diğer kaynaklar
- Yoast — rel=canonical: kapsamlı rehber — Kavramı ve WordPress/Yoast kurulumunu güçlü biçimde açıklar.
- Google’dan John Mueller, Rel=Canonical Etiketinin Neden Bazen Yok Sayıldığını Açıklıyor (Search Engine Journal, 2019) — SPA/JS sitelerinde yanlış canonical seçiminin nedenlerine ilişkin Mueller’in kelimesi kelimesine açıklaması.
- Google, Canonical ve Noindex’in Birlikte Kullanımını Açıklıyor (Search Engine Journal, 2024) — İki etiket aynı sayfada bulunduğunda ortaya çıkan çelişen talimat sorununu ele alır.
- Google: Rel Canonical Kullanmak, Sayfanın Canonical Seçileceğini Garanti Etmez (Search Engine Roundtable) — Mueller’in rel=canonical etiketinin garanti değil sinyal olduğuna ilişkin açıklaması.
- Semrush — Canonical URL’ler: En İyi SEO Uygulamaları, Yaygın Sorunlar ve Çözümleri — GSC canonical hata durumlarını yorumlamak için yararlı bir kaynak.
- r/TechSEO — Canonical ve dizine ekleme sorunlarını tartışan topluluk.
Alıntı yapmaya değer ifadeler
Canonical etiketini açıklarken sıkça başvurduğum satırlar; her bağlantı kaynaktaki ilgili bölüme doğrudan gider.
- Bu bir ipucudur. “indicating a canonical preference is a hint, not a rule.” (Türkçe çeviri) “Canonical tercihi belirtmek bir ipucudur, kural değildir.” — Google. Alıntıya git
- Tarihsel yinelenen bildirim rehberliği. “When more than one is specified, all rel=canonical links will be ignored.” (Türkçe çeviri) “Birden fazlası belirtildiğinde tüm rel=canonical bağlantıları yok sayılır.” — Google (2013). Güncel belgeler kesin bir ayrıştırıcı sonucu tanımlamak yerine çelişen yöntemleri hata riski olarak açıklar. Alıntıya git
- Yalnızca
<head>içinde. “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.” — Google (2013). Alıntıya git - PDF’lerde başlık kullanılır. “Only works for HTML pages, not for files such as PDF. In such cases, you can use the rel=“canonical” HTTP header.” (Türkçe çeviri) “Bu yöntem yalnızca HTML sayfalarında çalışır, PDF türü dosyalarda çalışmaz. Bu tür belgeler için rel=canonical HTTP başlığını kullanabilirsiniz.” — Google. Alıntıya git
- noindex yerine canonical. “rel=“canonical” link annotations are the preferred solution.” (Türkçe çeviri) “Tercih edilen çözüm rel=canonical bağlantı bildirimleridir.” — Google. Alıntıya git
- JS sitelerinde neden yok sayılır? “…if that JS can’t be executed properly, then the content ends up looking the same.” (Türkçe çeviri) “JS doğru çalıştırılamadığında içerikler aynı görünür.” — John Mueller, Google. (Search Engine Journal aracılığıyla aktarıldı, 2019.) Alıntıya git
Kaçınılması gereken canonical uygulama hataları
Bunlar canonical etiketi kurmaya çalışırken yapılan somut ve yaygın hatalardır; varsayımsal örnekler değildir.
- Bir sayfada birden çok
rel=canonicaletiketi kullanmak. Neden yanlış: Bildirimler çakışır ve güncel Google rehberliği ilk ya da son etiketin kazanacağını garanti etmez. Bu genellikle CMS, tema ve SEO eklentisinin birbirinden bağımsız etiket eklemesinden kaynaklanır. Çözüm: İşlenmiş DOM’daki<link rel="canonical">etiketlerini sayın ve yalnızca tek bir sistemin bildirim üretmesini sağlayın. - Canonical etiketinin
<body>içine itilmesine izin vermek. Neden yanlış: Google,<body>içindeki rel=canonical bildirimini dikkate almaz. Bu çoğu zaman yazım hatası değildir; kapatılmamış etiketler, head içine eklenen JavaScript veya head içindeki bir<iframe>, işleme sırasında<head>bölümünü erken kapatabilir. Bunun yerine: Ham HTML ile işlenmiş DOM’u (DevTools Elements paneli veya GSC’nin işlenmiş HTML’si) karşılaştırın; sorun yalnızca kaynak görünümünde fark edilmez. - Mutlak URL yerine göreli
hrefyazmak. Neden yanlış:/page/gibi göreli bir yol mevcut URL’ye göre çözümlenir; hatalı base öğesinde veya beklenmedik bir yolda istemediğiniz hedefe gidebilir. Göreli yollar desteklenir, ancak uzun vadede sorun çıkarabilir. Bunun yerine: Tam niteliklihttps://www.example.com/page/biçimini kullanın. - Sayfalandırılmış dizinin 2., 3. ve 4. sayfalarını birinci sayfaya bağlamak. Neden yanlış: Sonraki sayfalar birinci sayfanın yineleni değildir; farklı içerik taşırlar. İkinci veya sonraki bir sayfadan birinci sayfaya rel=canonical belirtmek doğru kullanım değildir. Bunun yerine: Her sayfalandırılmış sayfanın kendi canonical URL’sine referans vermesini sağlayın.
- Kategori veya açılış sayfasını tek bir öne çıkan makaleye bağlamak. Neden yanlış: Kategori sayfasıyla makale aynı içerik değildir; bu birleştirme değil, aşırı canonical kullanımıdır. Bunun yerine: Kategori sayfası kendine referans versin; canonical yalnızca gerçek veya neredeyse gerçek yinelenenlerde kullanılsın.
- Sinyalleri birleştirmek istediğiniz URL’de canonical ile
noindexkullanmak. Neden yanlış: Talimatlar çelişir;noindex“bu sayfayı kaldır”, canonical “bu sayfanın sinyallerini birleştir” der. Bunun yerine: Amacınıza göre karar verin: Birleştirme için yalnızca canonical, tamamen kaldırma için yalnızcanoindex. - Canonical bildirilen URL’yi
robots.txtiçinde engellemek. Neden yanlış: Google yinelenen URL’yi tarayamazsa üzerindeki canonical etiketini göremez ve birleştirme sinyalini aktaramaz. Ayrıca robots.txt ile engellenen URL içeriksiz olarak yine de dizine girebilir. Bunun yerine: Yinelenen URL’yi taranabilir bırakın; birleştirmeyi robots.txt değil canonical yapsın. - Canonical bildirilen URL’de 4XX döndürmek. Neden yanlış: robots.txt engeliyle
aynı sonucu doğurur; Google getiremediği sayfadaki etiketi okuyamaz. Bunun yerine:
Sinyallerin tercih edilen sürümde birleşmesini istiyorsanız canonical bildirilen
URL’yi erişilebilir tutun ve
200döndürmesini sağlayın.
Canonical, 301 yönlendirmesi veya noindex: Hangisine ihtiyacım var?
Karara en “teknik” görünen etiketten değil, yinelenen URL’ye ne olmasını istediğinizden başlayın.
Which tool should I use for a duplicate or near-duplicate URL?
Tek satırlık özet: Her iki URL’yi erişilebilir tutup yalnızca tercih bildirmek için canonical; herkesi tek URL’ye taşımak için 301; sayfayı açık tutup arama sonuçlarından çıkarmak için noindex kullanın. Asıl amacınız “bunu aramadan silmek” ise canonical’a başvurmayın; bu canonical’ın değil noindex’in görevidir.
Kullanıma hazır yapay zekâ istemleri
Bir LLM ile canonical etiketlerini denetlemek veya hata ayıklamak için kopyalayıp yapıştırabileceğiniz başlangıç noktaları. Çıktıyı her zaman işlenmiş sayfa ve GSC ile doğrulayın; bunlar HTML’yi gerçekten kontrol etmenin yerine geçmeyen taslak yardımcılarıdır.
Bir sayfanın canonical uygulamasını denetleme
Bu URL’nin ham HTML
<head>bölümü ve işlenmiş DOM<head>bölümü şunlardır: [ikisini de yapıştırın]. Şunları kontrol et: (1) Tam olarak bir<link rel="canonical">var mı? (2) Hedef göreli yol değil, mutlak URL mi? (3) İşleme sonrasında<head>içinde kalıp<body>içine itilmedi mi? (4) Sayfalandırılmış bir sayfayı birinci sayfaya veya kategoriyi tek bir makaleye canonical olarak bağlamıyor mu? Başarısız olan her kuralı listele ve hatalı satırı aynen alıntıla.
Search Console canonical uyuşmazlığını açıklama
Google Search Console URL Denetimi bu sayfa için kullanıcı tarafından belirtilen canonical olarak [URL A], Google tarafından seçilen canonical olarak [URL B] gösteriyor. rel=canonical Google’ın geçersiz kılabileceği bir ipucu olduğuna göre, bu özel uyuşmazlığın en olası nedenlerini öncelik sırasıyla listele: İçerikler gerçekten eşdeğer değil, iç bağlantılar/site haritası/yönlendirmeler çelişiyor, birden çok canonical var veya etiket body’ye yerleşmiş olabilir. Her neden için neyin kontrol edileceğini belirt.
HTML dışı dosya için HTTP Link başlığı hazırlama
[URL] adresindeki bu PDF veya HTML dışı dosyaya canonical tanımlamam gerekiyor. HTTP
Link: rel="canonical"yanıt başlığını HTML<link>öğesi yerine kullanacağım; çünkü PDF’de<head>yok. Sunucum [Apache / Nginx / diğer]. Tam yapılandırma örneğini ve ardından başlığın gerçekten gönderildiğini doğrulamak için çalıştırmam gerekencurl -Ikomutunu ver.
Canonical, 301 ve noindex kararını doğrulama
[URL] adresinde yinelenen bir URL, [URL] adresinde tercih edilen bir URL var. Şu anda ikisi [erişilebilir kalmalı / biri kaldırılmalı — açıklayın]. Canonical’ın her ikisi de erişilebilir kalması gereken URL’ler için bir ipucu, 301’in yinelenen URL’nin artık hiç var olmaması gerektiğinde en güçlü seçenek ve noindex’in sayfayı arama sonuçlarından tamamen kaldıran araç olduğu kuralına göre durumuma hangisinin uyduğunu ve diğer ikisinin neden uymadığını açıkla.
Canonical etiketlerini denetleme araçları
Advanced sekmesindeki tamamlanmış Canonicalization Checker anlatımı, tek sayfalık temel denetimi kapsar. Şu araçlar da yanında yararlıdır:
- HTTP Durum Denetleyicisi — Canonical ile 301 arasında karar verirken her yönlendirme adımını ve URL’nin nihai durum kodunu gösterir.
- GSC URL Denetimi — Google’ın kullanıcı tarafından belirtilen canonical ile Google tarafından seçilen canonical değerlerini karşılaştırdığı araçtır; Google’ın etiketle uzlaşıp uzlaşmadığını görmenin en hızlı yoludur.
curl -I— PDF veya başka bir HTML dışı dosyada HTTPLink: rel="canonical"başlığının gerçekten gönderildiğini doğrulamanın en hızlı yoludur.- Ahrefs Site Audit (doğrulanmış siteler için Ahrefs Webmaster Tools üzerinden ücretsiz) veya Screaming Frog — birden çok etiket, göreli URL ve uyuşmazlık gibi canonical sorunlarını sayfaları ayrı incelemek yerine tüm site ölçeğinde yakalar.
Yaygın sorunlar
GSC “Yinelenen, Google kullanıcıdan farklı bir standart sayfa seçti” gösteriyor
Neden: Bildirilen canonical, Google’ın seçtiği hedefle uyuşmuyor. Genellikle iki URL gerçekten aynı içeriği taşımıyordur veya iç bağlantılar, site haritası ve yönlendirmeler tutarlı biçimde diğer URL’yi gösterip etiketten ağır basıyordur. Düzeltme: İçeriklerin gerçekten eşdeğer olduğunu doğrulayın. Bu, JS/SPA’larda yaygın bir hatadır: Benzersiz içerik yalnızca JavaScript çalıştıktan sonra görünüyorsa ve JS doğru çalıştırılamıyorsa Google sayfaları olduklarından daha benzer görür. Ardından iç bağlantılarla site haritasını canonical bildirdiğiniz aynı URL’ye hizalayın.
Etiket kaynakta doğru görünüyor, ancak dikkate alınmıyor
Neden: Canonical, işleme sırasında <head> dışına itilmiştir. Kapatılmamış bir
etiket, eklenen JavaScript veya head içindeki <iframe> bölümü erken kapatmış ve
etiket yok sayıldığı <body> içine düşmüştür.
Düzeltme: Ham HTML ile işlenmiş DOM’u (DevTools Elements paneli veya GSC URL
Denetimi’ndeki işlenmiş HTML) karşılaştırın. Bu hata yalnızca kaynak görünümünde
fark edilmez; iki görünümü her zaman denetleyin.
Sayfada canonical var gibi görünüyor, ancak hiçbir sinyal birleşmiyor
Neden: Sayfada CMS, tema ve eklentinin bağımsız olarak eklediği birden çok
rel=canonical etiketi vardır ya da canonical bildirilen URL robots.txt ile
engellenmiş veya 4XX döndürüyordur; Google etiketi hiç okuyamaz.
Düzeltme: Sayfada curl -sL çalıştırıp ham HTML’deki canonical satırlarını sayın.
Birden fazlaysa ek kaynakları kaldırın. Ayrıca canonical bildirilen URL’nin
taranabildiğini ve 200 döndürdüğünü doğrulayın.
PDF veya başka bir HTML dışı dosyada sinyaller birleşmiyor
Neden: PDF’de <head> olmadığından <link rel="canonical"> öğesini koyacak yer
yoktur ve sinyali taşıyacak yanıt başlığı yapılandırılmamıştır.
Düzeltme: Canonical bildirimini sunucu veya CDN düzeyinde HTTP
Link: rel="canonical" yanıt başlığıyla gönderin; ardından
curl -sI <url> | grep -i '^link:' ile başlığın bulunduğunu doğrulayın.
Canonical; yönlendiren, zincirlenen veya noindex taşıyan URL’yi gösteriyor
Neden: İşaret edilen hedef temiz bir varış noktası değildir. RFC 6596; kendisi
yönlendirme kaynağı olan, başka bir canonical hedefe zincirlenen veya hata kodu
döndüren URL’nin hedef gösterilmemesi konusunda özellikle uyarır. noindex taşıyan
hedef pratikte aynı sorunu doğurur. Bu, yinelenen URL’deki robots.txt, noindex veya
4XX kaynaklı kaynak tarafı taranabilirlik sorunundan farklıdır: Burada kaynak
sorunsuzdur, ancak hedef sinyallerin birleştirileceği geçerli bir yer değildir.
Düzeltme: Canonical etiketini doğrudan nihai, erişilebilir, 200 döndüren ve
noindex taşımayan URL’ye yöneltin. Kendisi yönlendiren veya başka bir canonical
hedef gösteren URL’yi kullanmayın.
Yerleşim ve yinelenen bildirimler düzeltildiği hâlde canonical yok sayılıyor
Neden: Bir şey hâlâ Google’a sayfaların eşdeğer olmadığını söylüyordur veya başka
bir yerde çelişen sinyal vardır: Site haritasında farklı URL belirtilmiş ya da
birleştirmeye çalıştığınız URL’de noindex bulunmuş olabilir.
Düzeltme: Site haritası ile tüm noindex etiketlerinin bildirilen canonical ile
çelişip çelişmediğini kontrol edin. Her değişiklikten sonra GSC URL Denetimi’ni yeniden
çalıştırıp Google tarafından seçilen canonical değerinin hedefinize yaklaşıp
yaklaşmadığını inceleyin.
Canonical etiketinin gerçekten çalıştığını kanıtlayın
Canonical etiketi eklediniz veya düzelttiniz. Bu kontroller “etiket kaynak kodumda var” durumu ile “Google sinyalleri gerçekten bu URL’de birleştiriyor” sonucunu ayırır.
Test 1 — İşlenmiş head içinde tam olarak bir canonical
- Uygulanacak test — Sayfanın kaynağını görüntüleyin ve işlenmiş DOM’u ayrıca inceleyin. DevTools Elements panelini veya Canonicalization Checker aracını kullanabilirsiniz.
- Beklenen sonuç — Mutlak URL kullanan tam olarak bir
<link rel="canonical">; işleme sonrasında da<head>içinde kalmalıdır. - Hata yorumu — Ham HTML’de birden çok etiket, CMS, tema ve eklentinin bağımsız olarak
eklediği bildirimlerin çeliştiğini gösterir. Kaynakta bulunan etiket işlenmiş
<head>içinde yoksa işleme sırasında<body>içine itilmiştir; kapatılmamış etiket, eklenen JS veya head içindeki<iframe>öğesini kontrol edin. - İzleme aralığı — Hemen; mevcut sayfaya ilişkin statik bir kontroldür.
- Geri alma eşiği — Yaptığınız düzeltmeler ne olursa olsun işlenmiş
<head>etiketi taşımıyorsa canonical etiketini değiştirmeyi bırakın ve önce<head>bölümünü erken kapatan nedeni denetleyin.
Test 2 — HTTP başlığı gönderiliyor (PDF / HTML dışı)
- Uygulanacak test —
curl -sI https://example.com/file.pdf | grep -i '^link:'. - Beklenen sonuç — Yanıt başlıklarında bir
link: <url>; rel="canonical"satırı. - Hata yorumu —
link:başlığı yoksa sunucu veya CDN yapılandırması bunu göndermiyordur. Başlığı eklemesi gereken.htaccess, Nginx yapılandırması veya edge kuralını kontrol edin. - İzleme aralığı — Hemen.
- Geri alma eşiği — Yok; bu bir yapılandırma kontrolüdür, geri alınacak bir deney değildir.
Test 3 — Google’ın seçtiği canonical, bildirilen hedefle eşleşiyor
- Uygulanacak test — Canonical bildirilen yinelenen URL’de Google Search Console içindeki URL Denetimi’ni çalıştırın.
- Beklenen sonuç — Kullanıcı tarafından belirtilen canonical ve Google tarafından seçilen canonical, amaçladığınız URL ile eşleşir.
- Hata yorumu — “Yinelenen, Google kullanıcıdan farklı bir standart sayfa seçti” gibi bir uyuşmazlık çoğunlukla iki URL’nin gerçekten eşdeğer olmadığını veya iç bağlantı, site haritası ya da yönlendirme gibi daha güçlü bir sinyalin Google’ı başka yere yönelttiğini gösterir. Canonical bir ipucudur, kural değildir; etiket doğru olsa bile Google farklı seçimde kalabilir. Dizine eklenmiş canonical alanları gerçek durumun birkaç saat gerisinde kalabilir ve canlı test canonical seçimini öngöremez; yalnızca sayfanın o anda getirilebildiğini doğrular.
- İzleme aralığı — Google’ın belirttiği sınıra göre birkaç gün. Sorun giderme rehberi, temel içerik sorunu düzeltildikten sonra Google’ın “might hold pages in a duplicate cluster for up to two weeks” diyerek sayfaları iki haftaya kadar yinelenen kümede tutabileceğini belirtir. (Türkçe çeviri) “Sayfaları iki haftaya kadar yinelenen bir kümede tutabilir.” Bu özellikle içeriği düzeltilmiş bir yinelenen kümenin yeniden değerlendirilmesiyle ilgilidir; evrensel canonical etiketi süresi, raporun temizlenme vaadi veya sıralama garantisi değildir.
- Geri alma eşiği — Uyuşmazlık birkaç haftadan uzun sürerse canonical etiketinin ifadesini sürekli sıkılaştırmayın. Önce iki URL’nin gerçekten yinelenen olup olmadığını yeniden kontrol edin; bu, etiket metninden daha yaygın kök nedendir.
Kendinizi sınayın: Canonical etiketi
rel=canonical etiketinin nasıl çalıştığına ilişkin beş kısa soru. Her biri için bir yanıt seçin, ardından sonucu kontrol edin.
Değişiklik günlüğü
22 Ağu 2026 tarihinde güncellendi.
Editoryal özet ve kaydedilen değişiklik ayrıntıları.Değişiklik ayrıntıları
-
Ayrıntılı değişiklik notları şu anda İngilizce olarak mevcut.
Tam karşılaştırma kullanılamıyor — bu sürüm için önceki anlık görüntü arşivlenmemiş.
9 Ağu 2026 tarihinde güncellendi.
Editoryal özet ve kaydedilen değişiklik ayrıntıları.Değişiklik ayrıntıları
-
Ayrıntılı değişiklik notları şu anda İngilizce olarak mevcut.
Tam karşılaştırma kullanılamıyor — bu sürüm için önceki anlık görüntü arşivlenmemiş.
9 Ağu 2026 tarihinde güncellendi.
Editoryal özet ve kaydedilen değişiklik ayrıntıları.Değişiklik ayrıntıları
-
Ayrıntılı değişiklik notları şu anda İngilizce olarak mevcut.
Tam karşılaştırma kullanılamıyor — bu sürüm için önceki anlık görüntü arşivlenmemiş.
9 Ağu 2026 tarihinde güncellendi.
Editoryal özet ve kaydedilen değişiklik ayrıntıları.Değişiklik ayrıntıları
-
Ayrıntılı değişiklik notları şu anda İngilizce olarak mevcut.
Tam karşılaştırma kullanılamıyor — bu sürüm için önceki anlık görüntü arşivlenmemiş.
2 Ağu 2026 tarihinde güncellendi.
Editoryal özet ve kaydedilen değişiklik ayrıntıları.Değişiklik ayrıntıları
-
Ayrıntılı değişiklik notları şu anda İngilizce olarak mevcut.
Tam karşılaştırma kullanılamıyor — bu sürüm için önceki anlık görüntü arşivlenmemiş.
18 Tem 2026 tarihinde güncellendi.
Editoryal özet ve kaydedilen değişiklik ayrıntıları.Değişiklik ayrıntıları
-
Ayrıntılı değişiklik notları şu anda İngilizce olarak mevcut.
-
Ayrıntılı değişiklik notları şu anda İngilizce olarak mevcut.
Tam karşılaştırma kullanılamıyor — bu sürüm için önceki anlık görüntü arşivlenmemiş.
17 Tem 2026 tarihinde güncellendi.
Editoryal özet ve kaydedilen değişiklik ayrıntıları.Değişiklik ayrıntıları
-
Ayrıntılı değişiklik notları şu anda İngilizce olarak mevcut.
-
Ayrıntılı değişiklik notları şu anda İngilizce olarak mevcut.
-
Ayrıntılı değişiklik notları şu anda İngilizce olarak mevcut.
Tam karşılaştırma kullanılamıyor — bu sürüm için önceki anlık görüntü arşivlenmemiş.