Bu sayfada (9)
- §1Etiket neyi yapabilir, neyi yapamaz?
- §2Altı bulgu, altı ayrı sorun
- §3Tarama "başka sayfa"ya nasıl karar veriyor?
- §4Yanlış canonical nereden gelir?
- §5Gerçek bir sitede nasıl görünüyordu?
- §6Bir sayfayı bir dakikada kontrol et
- §7Platforma göre çözüm
- §8Başka adresi göstermek ne zaman doğru?
- §9Sık sorulan sorular
Canonical etiketi, Google'a bir sayfanın ana sürümü olarak hangi adresi gördüğünü söyler. Normal bir yazıda yazının kendi son https:// adresini göstermelidir. Başka bir yeri gösterdiğinde Google'a "bu sayfa kopya, ötekini göster" demiş olursun ve yazın sonuçlardan düşebilir. Bozuk canonical'ların çoğu bir temada, layout'ta ya da eklentide bir kez yazılıp bütün sayfalara miras kalan tek bir değerden çıkar. Yani çözüm genelde yüzlerce düzenleme değil, tek bir ayardır.
Etiket neyi yapabilir, neyi yapamaz?
Etiket <head> içine yazılır:
<link rel="canonical" href="https://ornekblog.com/kahve-ogutme-ayari">
Google bunu emir değil tercih olarak görür. Kanonikleştirme belgesinde açıkça yazıyor: "indicating a canonical preference is a hint, not a rule". Kopya adresleri birleştirme rehberi de rel="canonical" etiketini güçlü bir sinyal olarak tanımlıyor. Google yönlendirmeleri, HTTPS'i ve site haritasını da tartar; güçlü bir sayfadaki yanlış etiketi bazen görmezden gelebilir. Buna güvenme.
Aşağıdaki çözümler için aynı rehberden üç kural önemli. Etiket yalnızca HTML'in <head> bölümündeyse kabul edilir. Göreli değil tam adres kullanılmalı ("Use absolute paths rather than relative paths"). Sinyaller tutarlı olmalı: site haritasında bir adres, aynı sayfanın canonical'ında başka bir adres verme.
Altı bulgu, altı ayrı sorun
| Bulgu | Ne demek | İlk adım |
|---|---|---|
tech.canonical_conflict |
Yazılar sitendeki başka bir sayfayı canonical gösteriyor | Ortak şablonu ya da ayarı bul |
tech.canonical_offsite |
Yazılar başka bir alan adını canonical gösteriyor | Taşıma ya da kopyalanmış şablon izi ara; içeriğin senin olduğundan emin ol |
seo.canonical_broken |
Canonical hedefi hata veriyor, yönleniyor ya da noindex | Son ve çalışan adrese çevir |
seo.canonical_http |
HTTPS sitede canonical http:// ile başlıyor |
Site adresi ayarını düzelt |
seo.canonical_missing |
Yazıların en az yarısında canonical yok | SEO eklentisinin çıktısını aç ya da layout'a ekle |
seo.canonical_multiple |
Bir sayfada iki ya da daha fazla canonical var | Kaynaklardan birini kapat |
Bunlar kopya içerik sorunlarıyla kesişir ama aynı şey değildir. Canonical sorunu yanlış bir etikettir; kopya içerik ve anahtar kelime yamyamlığı ise sayfaların kendisiyle ilgilidir.
Tarama "başka sayfa"ya nasıl karar veriyor?
Taranan her sayfanın son adresini canonical etiketindeki adresle karşılaştırıyoruz. Karşılaştırmadan önce sondaki eğik çizgiyi, sorgu parametrelerini ve # kısmını atıyoruz; ayrıca yalnızca yolları da karşılaştırıyoruz. Bu yüzden http:// ile https:// farkı ya da www olup olmaması "başka sayfa" sayılmaz. Bunlar ya ayrı raporlanır (seo.canonical_http) ya da hiç raporlanmaz.

Hangisinin ne kadar yüksek sesle çıktığını bilmen için eşikler:
tech.canonical_conflicten az 3 yazı başka bir sayfayı gösterdiğinde çıkar.tech.canonical_offsiteise ilk yazıdan itibaren kritik olarak çıkar, çünkü orijinalin başkasının sitesinde olduğunu söyler.seo.canonical_brokenyalnızca tarama sırasında gerçekten istediğimiz hedefleri değerlendirir: 4xx ya da 5xx, yönlendirme veya noindex. Hiç istemediğimiz bir hedef hakkında hüküm vermeyiz.seo.canonical_missingbir öneridir; yazıların %50'si ya da fazlasında canonical yoksa çıkar.seo.canonical_multipleana sayfa ve yazıların HTML'indeki<link rel="canonical">öğelerini sayar. HTTP başlığıyla gönderilen canonical'ı okumayız.
Kontrollerin tamamı metodoloji sayfasında.
Yanlış canonical nereden gelir?
Bir değer, her yere miras
En sık gördüğümüz desen bu. Next.js'te layout ve sayfa metadata'sı sığ birleştirilir; alternates vermeyen sayfa layout'takini korur. Kök layout'a alternates: { canonical: '/' } yazarsan bunu ezmeyen her yazı canonical olarak ana sayfayı basar. WordPress'teki karşılığı, header.php içine sabit yazılmış <link rel="canonical" href="<?php echo home_url(); ?>"> satırıdır.

2. sayfanın 1. sayfayı göstermesi
Google bu konuda net: sayfalanmış dizinin ilk sayfasını canonical yapma, her sayfaya kendi canonical adresini ver (sayfalama rehberi). Bazı temalar ve eski eklentiler hâlâ /page/2/ adresini ilk sayfaya bağlıyor.
Kopyalanan şablonlar, taşımalar, içerik paylaşımı
Google 2013'te yazdığı ama mekanizma açısından hâlâ geçerli bir yazıda, yoğun bir site sahibinin bir sayfa şablonunu canonical hedefini değiştirmeyi düşünmeden kopyaladığını anlatıyor (rel=canonical ile 5 sık hata). Alan adı taşımasından sonra, SEO eklentisinde yazı bazında saklanan canonical'lar eski alan adında kalabilir. Yazıların başka sitelerde yeniden yayımlanıyorsa, Google'ın sorun giderme sayfası canonical öğesinin bu amaçla önerilmediğini söylüyor ("is not recommended for those who want to avoid duplication by syndication partners").
İki kaynaktan iki etiket
Kendi canonical'ını basan bir tema artı SEO eklentisi ya da geçişten sonra açık bırakılmış iki SEO eklentisi. Aynı 2013 yazısına göre birden fazla canonical olduğunda Google büyük ihtimalle hepsini yok sayar ("Google will likely ignore all the rel=canonical hints"). Aynı değeri taşıyan iki etiket bile temizlenmeli; bir sonraki tema güncellemesi birini değiştirebilir.
Taşınmış hedefler
Kalıcı bağlantıları değiştirdin ya da bir sayfayı sildin; canonical'lar hâlâ artık yönlenen ya da 404 veren eski adresi gösteriyor. Google'ın 2013 kontrol listesi canonical'ın var olan, iyi içerikli bir adresi gösterdiğini kontrol etmeni istiyor: 404 değil, daha kötüsü soft 404 hiç değil. Eski adres yönleniyorsa canonical'ı yönlendirmenin son durağına çevir; yönlendirmelerin kendisini temizlemek için yönlendirme zinciri ve döngüsü rehberine bak.
Gerçek bir sitede nasıl görünüyordu?
Taradığımız bir Next.js sitesinde dört sayfa canonical olarak çıplak ana sayfa adresini basıyordu: yukarıdaki miras deseninin ürettiği çıktının aynısı.

Her bulgu bir yazı değildir. Başka bir sitede 10 bulgunun çoğu, kendi dil bölümünün ana sayfasını gösteren gömülü araçlar (embed) ve hesap sayfalarıydı. Orada da ana sayfaya canonical yanlış sinyal, çünkü bu sayfalar ana sayfanın kopyası değil. Aramada hiç yer almamaları gerekiyorsa bunu dürüstçe söyleyen şey noindex; ne zaman doğru tercih olduğunu yanlışlıkla noindex rehberinde anlattık.
Bir sayfayı bir dakikada kontrol et
Etiketleri say ve değeri oku:
curl -s https://ornekblog.com/kahve-ogutme-ayari | grep -o '<link[^>]*rel="canonical"[^>]*>'
<link rel="canonical" href="https://ornekblog.com/"/>
Birden fazla satır seo.canonical_multiple demektir. Bazı siteler özniteliği tek tırnakla yazar; hiçbir şey dönmezse grep -io "<link[^>]*canonical[^>]*>" dene. Sonra hedefin son ve 200 olduğunu kontrol et:
curl -s -o /dev/null -w "%{http_code} %{redirect_url}\n" https://ornekblog.com/kahve-ogutme-ayari/
301 https://ornekblog.com/kahve-ogutme-ayari
Buradaki 301, canonical'ın bir yönlendirmeyi gösterdiği anlamına gelir. Search Console'da URL Denetimi "User-declared canonical" ile "Google-selected canonical" alanlarını yan yana gösterir; ikincisi Google'ın yetkili adres olarak seçtiği sayfadır (URL Denetimi yardımı). İkisi farklıysa Sayfa dizine ekleme raporu adresi "Duplicate, Google chose different canonical than user" altında listeler.
Platforma göre çözüm
Yoast SEO. Yazının Advanced bölümünde "Canonical URL" alanı var. Senin bilerek yazmadığın bir adres duruyorsa sil (Yoast yardımı). Yoast, noindex yapılmış sayfalarda canonical basmadığını da belirtiyor; bazı "eksik" sonuçlarını bu açıklar.
Rank Math. Advanced sekmesinde canonical alanı var; varsayılan olarak Rank Math yazının mevcut adresini canonical yapıyor (Rank Math KB). Başka yeri gösteren özel değerleri temizle.
WordPress temaları. Temada sabit yazılmış etiketi ara; SEO eklentin zaten basıyorsa sil:
grep -rn "canonical" wp-content/themes/temanin-adi/*.php
seo.canonical_http için Settings → General (Türkçe panelde Ayarlar → Genel) ekranında "WordPress Address (URL)" ve "Site Address (URL)" alanlarının ikisinin de https:// ile başladığından emin ol.
Blogger. Standart Blogger temaları canonical'ı kendisi basar. Kontrol ettiğimiz canlı bir Blogger blogunda yazı adresi de ?m=1 mobil sürümü de canonical olarak temiz yazı adresini gösteriyordu. Hazır bir tema kurduysan ya da <head> bölümünü düzenlediysen varsayılan bir Blogger temasıyla karşılaştır ve sonradan eklediğin fazladan canonical'ı kaldır.
Next.js. metadataBase değerini kök layout'ta bir kez ver, canonical'ı sayfa bazında yaz:
// app/blog/[slug]/page.tsx
export async function generateMetadata(
{ params }: { params: Promise<{ slug: string }> }
): Promise<Metadata> {
const { slug } = await params
return { alternates: { canonical: `/blog/${slug}` } }
}
Next.js belgesine göre metadataBase tanımlamadan göreli adres kullanmak derleme hatası verir ve metadataBase genelde kök app/layout.js dosyasında tanımlanır (generateMetadata). Yalnızca ana sayfa için düşünülmemişse alternates.canonical değerini kök layout'tan kaldır ve app/page.tsx içine taşı.
Başka adresi göstermek ne zaman doğru?
İki adres gerçekten aynı içeriği gösteriyorsa başka adrese canonical doğrudur: ?ref= ya da ?utm_ varyantı, yazdırma görünümü ya da iki kategoride görünen bir ürün. Şablondan üretilmiş, birbirine çok benzeyen sayfa gruplarında canonical asıl sorunu çözmez; ne zaman birleştirmen gerektiğini programatik SEO rehberi anlatıyor.
Ücretsiz tarama, canonical'ı başka yeri gösteren, eksik, çift ya da http:// olan her taranmış sayfayı gösterdiği adresle birlikte listeler.
Sık sorulan sorular
Her sayfada canonical etiketi olmalı mı?
Hayır. Google bunu zorunlu tutmuyor; eksik canonical bulgumuz da yalnızca bir öneri. Kendini gösteren bir canonical, takip parametreli ve eğik çizgili varyantların birbiriyle yarışmasına karşı ucuz bir sigorta.
Google canonical'ıma her zaman uyar mı?
Hayır, bu bir ipucu. Google başka bir sayfa seçebilir; hangisini seçtiğini URL Denetimi gösterir.
Canonical mı kullanayım, 301 yönlendirme mi?
Eski adresin ziyaretçiler için artık var olmaması gerekiyorsa yönlendir. İki adresin de çalışmaya devam etmesi gerekiyorsa canonical kullan.
Canonical etiketi AdSense reddine yol açar mı?
Canonical etiketlerinden söz eden bir AdSense politikası bilmiyoruz. Etki dolaylı: canonical'ı başka yeri gösteren sayfalar kopya muamelesi görür, yazıları kopya gibi görünen bir site de olduğundan zayıf görünebilir.
Eskimiş ya da yanlış bir şey mi gördün? Bize yaz, düzeltelim.
Bu rehberi İngilizce oku →Ücretsiz tarama
Kendi siteni kontrol et
Ücretsiz tarama: uygunluk puanı ve tüm sorunlar, genelde birkaç dakikada.