Blog · 27 Ekim 2026
Canonical URL Nedir? Kopya İçerik Sorununu rel=canonical ile Çözmek
Canonical URL, aynı ya da birbirine çok benzeyen içeriğe birden fazla adresten ulaşılabildiğinde, arama motoruna "bu içeriğin asıl adresi budur" diye bildirdiğiniz tercih edilen URL'dir. Bu bildirim genellikle sayfanın head bölümüne eklenen rel="canonical" etiketiyle yapılır. Google canonical olarak seçtiği adresi dizine ekler, sıralama sinyallerini o adreste toplar ve arama sonuçlarında çoğunlukla o adresi gösterir.
Canonical nedir sorusunun kısa cevabı budur; ama asıl iş, sitenizde kaç adet "aynı sayfa" olduğunu fark etmek ve Google'a tutarlı sinyal vermektir. Bu rehberde etiketin doğru yazımını, kopya içeriğin nereden çıktığını, canonical ile 301 yönlendirme arasında nasıl karar verileceğini ve Search Console'daki canonical uyarılarını nasıl çözeceğinizi adım adım anlatıyoruz.
Canonical etiketi nasıl yazılır?
En yaygın yöntem, HTML belgesinin head bölümüne tek bir link etiketi eklemektir:
<head>
<link rel="canonical" href="https://www.ornek.com/erkek-ayakkabi/" />
</head>
Bu satır, bulunduğu sayfanın asıl adresinin https://www.ornek.com/erkek-ayakkabi/ olduğunu söyler. Etiketi yazarken şu kurallara uyun:
- Mutlak URL kullanın. Göreli adresler (örneğin yalnızca
/erkek-ayakkabi/) desteklenir ama protokol ve alan adı hatalarına açıktır. Protokol ve alan adıyla birlikte tam adres yazmak en güvenli yoldur. - Yalnız head içinde olsun. Body içine düşen canonical etiketi Google tarafından yok sayılır. Bazı şablonlarda head içine yanlışlıkla yerleştirilen bir görsel ya da geçersiz etiket, tarayıcının head bölümünü erken kapatmasına ve canonical'ın body'ye kaymasına yol açabilir.
- Sayfa başına tek canonical. Bir tema eklentisi bir canonical, başka bir modül başka bir canonical basıyorsa Google ikisini de görmezden gelebilir.
- Hedef URL 200 dönmeli. Canonical olarak gösterilen adres yönlendirme, 404 ya da noindex içermemeli; erişilebilir ve dizine eklenebilir olmalıdır.
Kopya içerik nereden çıkar?
Çoğu site sahibi kopya içerik denince başka bir siteden kopyalanmış metni düşünür. Oysa teknik SEO açısından en sık karşılaşılan durum, sitenin kendi içeriğinin farklı URL'lerle tekrar tekrar üretilmesidir. Başlıca nedenler şunlardır:
URL parametreleri
Kampanya takibi, sıralama, oturum ya da filtre için eklenen parametreler aynı sayfanın yeni bir adresini yaratır. /urun/mavi-gomlek, /urun/mavi-gomlek?utm_source=instagram ve /urun/mavi-gomlek?sirala=fiyat içerik olarak aynıdır ama Google için üç ayrı URL'dir. UTM parametrelerinin nasıl kurulduğunu UTM rehberimizde anlattık; burada önemli olan, bu adreslerin hepsinin parametresiz sürüme canonical vermesidir.
www, https ve alan adı varyantları
Sunucu yapılandırması eksikse aynı sayfa dört farklı adresten açılabilir: http://ornek.com, http://www.ornek.com, https://ornek.com ve https://www.ornek.com. Bu durumun asıl çözümü canonical değil, tek bir sürüme kalıcı yönlendirmedir; canonical ise ek güvence olarak tercih edilen sürümü göstermelidir.
Sondaki eğik çizgi ve büyük-küçük harf
/hakkimizda ile /hakkimizda/ sunucu her ikisine de 200 dönüyorsa iki ayrı sayfadır. Aynı şekilde bazı sunucular /Urunler ve /urunler adreslerini aynı içerikle sunar. Sitede tek bir yazım kuralı seçin, diğerini ona yönlendirin ve iç linklerinizi de bu kurala göre yazın.
Filtre ve fasetli gezinme
E-ticaret sitelerinde renk, beden, fiyat aralığı ve marka filtrelerinin her kombinasyonu yeni bir URL oluşturabilir. Bunların bir kısmı gerçekten aranan sayfalardır (örneğin "siyah deri ceket"), çoğu ise yalnızca kategori sayfasının farklı bir dilimidir. Hangi filtrelerin kendi canonical'ı olacağına, hangilerinin ana kategoriye işaret edeceğine arama talebine bakarak karar vermek gerekir. Bu konunun kategori ve ürün yapısıyla ilgili ayrıntılarını e-ticaret SEO rehberinde bulabilirsiniz.
Yazdırma sürümü, AMP ve mobil alt alan adı
Eski sitelerde ?print=1 gibi yazdırma sürümleri, ayrı mobil alt alan adları (m.ornek.com) ya da AMP sayfaları aynı içeriğin ikinci bir kopyasını oluşturur. Bu sürümlerin her biri ana sayfaya canonical vermelidir.
Sendikasyon ve içerik paylaşımı
Yazınızı bir haber sitesine ya da iş ortağınıza yayın için verdiğinizde, aynı metin başka bir alan adında da yer alır. Burada alan adları arası canonical kullanılabilir: yayıncı, kendi sayfasında sizin özgün yazınızı canonical olarak gösterebilir. Ancak Google sendikasyon durumlarında alan adları arası canonical'ın her zaman dikkate alınmayabileceğini belirtir; yayıncının kopya sayfayı noindex ile dizin dışı bırakması daha kesin bir sonuç verir. Bunu yayın anlaşmasına baştan yazmak en sağlıklısıdır.
Canonical bir ipucudur, direktif değil
Canonical'ı anlamanın en kritik noktası budur. Robots.txt'teki bir engel ya da noindex etiketi Google'a ne yapacağını söyler; canonical ise yalnızca tercihinizi bildirir. Google bu tercihi diğer sinyallerle birlikte değerlendirir ve kendi seçimini yapar.
Google'ın canonical seçerken baktığı başlıca sinyaller şunlardır:
- 301 ve 302 yönlendirmeler (yönlendirme güçlü bir sinyaldir)
- rel=canonical etiketi ya da HTTP başlığı
- Site haritasında listelenen URL'ler
- İç linklerin hangi sürüme işaret ettiği
- HTTPS sürümünün HTTP'ye göre tercih edilmesi
- Hreflang kümelerindeki adresler
Bu sinyaller birbiriyle çelişirse, örneğin canonical A sayfasını gösterirken site haritası ve iç linklerin tamamı B sayfasını gösteriyorsa, Google büyük ihtimalle B'yi seçer. Bu yüzden canonical tek başına bir çözüm değil, tutarlı bir sinyal setinin parçasıdır. Site haritasına yalnız canonical URL'leri koymanın neden önemli olduğunu sitemap rehberinde ayrıca ele aldık.
Google'ın seçtiği canonical ile sizin bildirdiğiniz canonical
Search Console'daki URL denetimi aracı bir adres için iki ayrı bilgi gösterir: kullanıcı tarafından bildirilen standart URL ve Google tarafından seçilen standart URL. Bu iki alan aynıysa sorun yoktur. Farklıysa Google sizin tercihinizi uygulamamıştır.
Kontrol için şu adımları izleyin:
- Search Console'da üstteki arama çubuğuna incelemek istediğiniz tam URL'yi yapıştırın.
- Sayfanın dizine eklenme bölümünü genişletin ve iki canonical alanını karşılaştırın.
- Google farklı bir URL seçmişse, o URL'yi tarayıcıda açın ve içeriğin gerçekten aynı olup olmadığına bakın.
- Canlı URL'yi test et seçeneğiyle sayfanın şu anki halinde canonical etiketinin görülüp görülmediğini doğrulayın; özellikle JavaScript ile basılan canonical'larda bu adım önemlidir.
Search Console'un genel kullanımı ve rapor türleri için Google Search Console rehberine göz atabilirsiniz.
Self-referencing canonical: her sayfa kendine işaret etsin
Self-referencing canonical, bir sayfanın canonical etiketinde kendi adresini göstermesidir. Kopyası olmayan bir sayfa için gereksiz görünebilir, ama pratikte iki önemli fayda sağlar. Birincisi, birileri sayfanıza parametreli bir adresle link verdiğinde ya da bir kampanya parametresi eklendiğinde, parametreli sürüm otomatik olarak temiz adrese işaret eder. İkincisi, sitenizin içeriği başka bir alan adında izinsiz yayınlanırsa, canonical etiketi de kopyalandığı ölçüde özgün adresinizi göstermeye devam eder.
Burada dikkat edilmesi gereken nokta, self-referencing canonical'ın "o anki URL"yi değil "temiz URL"yi basmasıdır. Şablon, canonical'a tarayıcıda görünen tam adresi parametreleriyle birlikte yazıyorsa, her parametreli sürüm kendini canonical ilan eder ve etiketin bir anlamı kalmaz.
Canonical ile noindex'i birlikte kullanmayın
Sık yapılan bir hata, bir kopya sayfaya hem ana sayfayı gösteren canonical hem de noindex eklemektir. Bu iki sinyal birbiriyle çelişir: canonical "bu sayfanın sinyallerini şu adrese aktar" der, noindex ise "bu sayfayı dizine ekleme" der. Google, site içi kanonikleştirme için noindex kullanılmamasını önerir; çünkü noindex sinyali yanlış sayfaya, yani tercih ettiğiniz canonical'a da yansıyabilir.
Kural basit: bir sayfanın bir kopya olduğunu düşünüyorsanız canonical verin. Bir sayfanın hiç dizinde olmasını istemiyorsanız ve başka bir sayfanın kopyası değilse noindex verin. İkisini aynı sayfada birleştirmeyin. Benzer şekilde, kopya URL'leri robots.txt ile engellemek de canonical'ı işlevsiz kılar: Google engelli sayfayı tarayamadığı için içindeki canonical etiketini de göremez. Robots.txt'nin ne zaman doğru araç olduğunu robots.txt rehberinde anlattık.
301 yönlendirme mi, canonical mı? Karar tablosu
İki yöntem de sinyalleri tek bir adreste toplar, ama kullanıcı deneyimi açısından farklı çalışır. 301 kullanıcıyı da yeni adrese taşır; canonical ise kullanıcıyı olduğu sayfada bırakır ve yalnızca arama motoruna tercih bildirir.
| Durum | Önerilen yöntem | Neden |
|---|---|---|
| Sayfa kalıcı olarak taşındı ya da URL yapısı değişti | 301 | Eski adresin kullanıcıya gösterilmesine gerek yok |
| HTTP'den HTTPS'e, www'suz sürümden www'lu sürüme geçiş | 301 (canonical ek güvence) | Tüm varyantlar tek adrese inmeli |
| Kampanya ya da takip parametreli URL'ler | Canonical | Parametre ölçüm için gerekli, yönlendirme veriyi bozabilir |
| Sıralama ve filtre parametreleri | Canonical | Kullanıcı filtreli görünümü görmeye devam etmeli |
| Birden fazla kategoride listelenen aynı ürün | Canonical | Her yoldan erişim korunur, tek adres dizine girer |
| İki benzer yazının tek yazıda birleştirilmesi | 301 | Eski yazı artık yaşamıyor |
| Başka sitede yayınlanan sendike içerik | Alan adları arası canonical veya karşı tarafta noindex | Yönlendirme sizin kontrolünüzde değil |
| Yazdırma sürümü, eski mobil alt alan adı | Canonical (mümkünse sürümü kaldırıp 301) | Kullanıcıya hâlâ sunuluyorsa canonical yeterli |
Yönlendirme zincirleri, 301 ile 302 farkı ve silinen sayfaların yönetimi için 404 hatası ve 301 yönlendirme rehberine bakabilirsiniz.
Sayfalamada canonical hatası
Blog arşivleri ve kategori sayfaları genellikle sayfalanır: /blog/, /blog/sayfa/2/, /blog/sayfa/3/. Yaygın hata, ikinci ve sonraki sayfaların canonical etiketini birinci sayfaya yönlendirmektir. Bu sayfaların içeriği birbirinin aynısı değildir; her biri farklı ürün ya da yazı listeler. Canonical'ı birinci sayfaya verdiğinizde Google ikinci ve sonraki sayfaları kopya kabul edebilir ve oralarda listelenen içeriğe ulaşmak zorlaşır.
Doğru yaklaşım, her sayfalama adresinin kendine canonical vermesidir:
<!-- /blog/sayfa/2/ adresinde -->
<link rel="canonical" href="https://www.ornek.com/blog/sayfa/2/" />
Bir "tümünü göster" sayfanız varsa ve bu sayfa makul bir hızda yükleniyorsa, sayfalama adreslerinin canonical'ını o sayfaya vermek bir seçenektir. Google, sayfalama ilişkisini belirtmek için eskiden kullanılan rel=prev ve rel=next etiketlerini artık dizine ekleme sinyali olarak kullanmadığını açıklamıştır; bu nedenle sayfalanmış adreslerin normal linklerle birbirine bağlı ve taranabilir olması daha önemlidir.
HTTP başlığında canonical: PDF ve HTML olmayan dosyalar
PDF, Word belgesi ya da görsel gibi HTML olmayan dosyalara head etiketi eklenemez. Bu durumda canonical, sunucunun döndürdüğü HTTP yanıt başlığında Link alanıyla bildirilir:
HTTP/1.1 200 OK
Content-Type: application/pdf
Link: <https://www.ornek.com/katalog/urun-katalogu/>; rel="canonical"
Bu örnekte PDF kataloğun asıl adresinin HTML sürümü olduğu bildirilmektedir. Tipik kullanım alanı, aynı içeriğin hem HTML sayfa hem PDF olarak yayınlandığı durumlardır; böylece arama sonuçlarında indirilebilir dosya yerine HTML sayfa öne çıkar. Başlığı Apache'de .htaccess ile, Nginx'te add_header yönergesiyle ekleyebilirsiniz. Ekledikten sonra tarayıcının geliştirici araçlarında ağ sekmesinden ya da komut satırından yanıt başlıklarını kontrol edin.
Hreflang ile canonical birlikte nasıl kullanılır?
Çok dilli sitelerde her dil sürümü ayrı bir sayfadır ve her biri kendi adresine canonical vermelidir. Türkçe sayfanın canonical'ını İngilizce sayfaya vermek, Google'a "Türkçe sürüm, İngilizcenin kopyasıdır" demektir; bu durumda Türkçe sayfa dizinden düşebilir ve hreflang bağlantısı da işlemez.
<!-- https://www.ornek.com/tr/hizmetler/ sayfasında -->
<link rel="canonical" href="https://www.ornek.com/tr/hizmetler/" />
<link rel="alternate" hreflang="tr" href="https://www.ornek.com/tr/hizmetler/" />
<link rel="alternate" hreflang="en" href="https://www.ornek.com/en/services/" />
<link rel="alternate" hreflang="x-default" href="https://www.ornek.com/en/services/" />
Hreflang etiketlerinde listelenen adresler canonical adresler olmalıdır. Hreflang bir parametreli ya da yönlendirilen URL'yi gösterirse sinyaller çelişir. Aynı dilde farklı ülkeler için hazırlanmış neredeyse aynı sayfalarda (örneğin Almanya ve Avusturya için iki Almanca sürüm) Google içerikleri tek bir canonical altında birleştirebilir; hreflang yine de doğru bölgede doğru adresin gösterilmesine yardım eder.
"Kopya, Google kullanıcıdan farklı bir standart seçti" ne demek?
Search Console'un sayfa dizine ekleme raporunda bu durum, bir sayfaya canonical etiketi eklediğiniz halde Google'ın sizin gösterdiğiniz adresi değil başka bir adresi canonical olarak seçtiği anlamına gelir. Google sayfanızı başka bir sayfanın kopyası saymıştır, ama hangi sayfanın asıl olduğu konusunda sizinle aynı fikirde değildir.
Bu raporu, benzer görünen iki diğer durumdan ayırmak gerekir:
- Uygun standart etiketi olan alternatif sayfa: Sayfa başka bir adrese canonical veriyor ve Google bunu kabul etmiş. Bu bir hata değildir, sistem beklendiği gibi çalışıyordur.
- Kopya, kullanıcı tarafından standart seçilmedi: Sayfada canonical yok ve Google kendisi bir seçim yapmış. Çözüm, tercih ettiğiniz adresi açıkça bildirmektir.
- Kopya, Google kullanıcıdan farklı bir standart seçti: Sizin bildiriminiz var ama reddedilmiş. Asıl inceleme gerektiren durum budur.
Çözüm adımları
- Örnek URL'leri inceleyin. Rapordaki birkaç URL'yi URL denetimine sokun ve Google'ın seçtiği canonical'ı not edin.
- Hangisi gerçekten doğru, karar verin. Bazen Google haklıdır: örneğin canonical yanlışlıkla eski bir adrese ya da yönlendirilen bir sayfaya işaret ediyordur. Bu durumda düzeltilmesi gereken sizin etiketinizdir.
- İçerik farkını kontrol edin. Canonical verdiğiniz sayfa ile kopya sayfa içerik olarak belirgin biçimde farklıysa Google canonical'ı yok sayabilir. Canonical yalnızca gerçekten aynı ya da çok benzer içerikte işe yarar.
- Sinyalleri hizalayın. İç linkler, menü, breadcrumb ve site haritası tercih ettiğiniz adresi göstermeli. Google'ın seçtiği adrese link veren şablon parçalarını bulup düzeltin.
- Yönlendirmeyi değerlendirin. Kopya sürümün kullanıcıya gösterilmesine gerek yoksa 301 ile tercih ettiğiniz adrese yönlendirin; bu canonical'dan çok daha güçlü bir sinyaldir.
- Doğrulama başlatın. Düzeltmeden sonra raporda düzeltmeyi doğrula seçeneğini kullanın. Google'ın sayfaları yeniden taramasının birkaç hafta sürebileceğini hesaba katın.
Bu adımları yalnız uyarı çıktığında değil, düzenli aralıklarla yapmak daha az sürpriz yaratır. Search Console verisini düzenli izleyen ekipler için seoanalytics.com.tr panelindeki kanibalizasyon raporu, aynı sorgu için birbirinin yerine sıralanan sayfaları göstererek canonical ya da birleştirme gerektirebilecek sayfa çiftlerini erken fark etmeye yardım eder.
Yaygın canonical hataları
- Tüm sayfaların canonical'ının ana sayfaya verilmesi. Genellikle bir şablon hatasıdır ve sitenin büyük kısmının dizinden düşmesine yol açabilir.
- Canonical'ın yönlendirilen, 404 dönen ya da noindex olan bir adresi göstermesi. Google bu çelişkili bildirimi büyük ihtimalle yok sayar.
- HTTP ya da www'suz sürüme işaret eden canonical. Site HTTPS'e geçmiş ama şablondaki canonical eski protokolle kalmıştır.
- Canonical zincirleri. A sayfası B'ye, B sayfası C'ye canonical veriyorsa Google'ın zinciri takip etmesine güvenmeyin; her sayfa doğrudan son adrese işaret etmeli.
- JavaScript ile sonradan değiştirilen canonical. Sunucudan gelen HTML'de bir canonical, işlenmiş sayfada başka bir canonical olması çelişki yaratır. Canonical'ı mümkünse sunucu tarafında, tek bir kez basın.
- Farklı içerikli sayfaları canonical ile birleştirmeye çalışmak. Canonical, birbirine benzemeyen iki yazının sinyallerini birleştirmek için kullanılmaz; bunun yolu içeriği birleştirip 301 vermektir.
- Kopya sayfaları robots.txt ile engelleyip canonical beklemek. Taranamayan sayfanın canonical etiketi okunamaz.
- Site haritasında kopya URL'ler. Site haritası canonical olmayan adresleri listelerse Google'a karışık sinyal gönderirsiniz.
Canonical denetimi için kontrol listesi
Bir site denetiminde canonical'ı şu sırayla kontrol edebilirsiniz. Daha geniş bir denetim çerçevesi için teknik SEO rehberine bakabilirsiniz.
- Rastgele 20-30 sayfanın kaynak kodunda head içinde tek bir canonical olduğunu doğrulayın.
- Canonical adreslerinin mutlak URL olduğunu, doğru protokol ve alan adını kullandığını kontrol edin.
- Parametreli bir URL açın (örneğin sonuna
?test=1ekleyin) ve canonical'ın temiz adresi gösterdiğinden emin olun. - Sayfalama adreslerinin birinci sayfaya değil kendilerine canonical verdiğini kontrol edin.
- Çok dilli sayfalarda her dilin kendi canonical'ını taşıdığını ve hreflang adresleriyle uyumlu olduğunu doğrulayın.
- PDF gibi dosyaların HTML karşılığı varsa HTTP başlığında canonical eklenip eklenmediğine bakın.
- Site haritasındaki URL'lerin canonical adreslerle bire bir örtüştüğünü kontrol edin.
- Search Console'un sayfa dizine ekleme raporunda kopya ve alternatif sayfa durumlarını inceleyin, sayıdaki ani artışları not edin.
- Önemli sayfalar için URL denetiminde kullanıcı ve Google canonical'larının aynı olduğunu doğrulayın.
Sık sorulan sorular
Canonical etiketi sıralamayı doğrudan yükseltir mi?
Hayır, canonical bir sıralama faktörü değildir. Kopya adreslere dağılan link ve sinyalleri tek adreste topladığı, Google'ın hangi sürümü göstereceğini netleştirdiği ve tarama bütçesinin kopyalara harcanmasını azalttığı için dolaylı olarak fayda sağlar.
Her sayfaya self-referencing canonical eklemek gerekir mi?
Zorunlu değildir, ama önerilen bir uygulamadır. Parametreli linkler, takip kodları ve içerik kopyalama gibi durumlarda tercih ettiğiniz adresi otomatik olarak bildirir. Yeter ki canonical, parametresiz temiz URL'yi göstersin.
Google canonical etiketimi neden dikkate almıyor?
En sık nedenler; iki sayfanın içeriğinin belirgin biçimde farklı olması, iç linklerin ve site haritasının başka bir adresi göstermesi, canonical'ın yönlendirilen ya da erişilemeyen bir adrese işaret etmesi ve etiketin head yerine body içinde kalmasıdır. URL denetimi aracıyla Google'ın seçtiği canonical'ı görüp sinyalleri ona göre hizalayın.
Canonical ile 301 aynı anda kullanılabilir mi?
Aynı URL üzerinde kullanılamaz, çünkü 301 dönen bir sayfanın içeriği okunmaz. Ancak birlikte çalışabilirler: varyantları 301 ile tek adrese yönlendirirken, o hedef adreste self-referencing canonical bulundurmak tutarlı ve önerilen bir yapıdır.