- Konu sahibi
- #1
HTTP canonical başlığı nedir?
HTTP canonical başlığı, bir HTTP yanıtında aynı veya benzer içeriğin tercih edilen URL’sini bildirmek için kullanılan
Link yanıt başlığıdır. Temel biçimi şöyledir:
Kod:
Link: <https://example.com/rehber.pdf>; rel="canonical"
Bu başlık, özellikle HTML olmayan PDF, dosya ve benzeri kaynaklarda kullanışlıdır. Tarayıcıya yönlendirme yaptırmaz; kullanıcıyı başka adrese taşımaz. Arama motorlarına, birden fazla URL’den hangisinin ana sürüm olarak değerlendirilmesinin istendiğini bildirir. Canonical bir öneridir; tek başına dizine eklenme veya sıralama garantisi vermez.
Nasıl çalışır?
Sunucu bir kaynak için HTTP yanıtı döndürür. Yanıtın başlıkları arasında
Link bulunuyorsa, rel="canonical" değeri tercih edilen URL’yi belirtir. Örneğin PDF dosyasının farklı parametrelerle veya farklı yollarla erişilen kopyaları varsa, bu kopyaların her biri aynı ana PDF adresini bildirebilir.Google için mutlak URL kullanılması önerilir; göreli URL desteği olması onu daha güvenilir bir seçim yapmaz. HTTPS tercih edilmelidir, fakat canonical sözdizimi yalnız HTTPS ile sınırlı değildir. Canonical hedefi mümkünse başarılı bir yanıt veren, indekslenebilir ve içeriğin ana sürümünü temsil eden bir URL olmalıdır. Canonical başlığı ile başka bir sayfaya HTTP 301 veya 302 yönlendirmesi aynı işlem değildir: yönlendirme isteği başka adrese taşırken canonical yalnızca ilişki bildirir.
Somut örnek
Varsayımsal olarak
https://example.com/dosyalar/seo-rehberi.pdf dosyasının şu iki adresten de sunulduğunu düşünelim:https://example.com/dosyalar/seo-rehberi.pdf?download=1https://example.com/arsiv/seo-rehberi.pdfBu kopyaların yanıtında aşağıdaki başlık yer alabilir:
Kod:
HTTP/1.1 200 OK
Content-Type: application/pdf
Link: <https://example.com/dosyalar/seo-rehberi.pdf>; rel="canonical"
Kontrol için yanıt başlıklarını gövdeyi indirmeden inceleyebilirsiniz:
Kod:
curl -I "https://example.com/dosyalar/seo-rehberi.pdf?download=1"
Bu HEAD isteğidir. Sunucu HEAD için farklı davranıyorsa gerçek GET yanıtının başlıklarını gövdeyi dosyaya kaydetmeden görmek için şu komutu kullanın. Gövde ağ üzerinden yine aktarılır; yalnız yerelde atılır:
Kod:
curl -sS -D - -o /dev/null "https://example.com/dosyalar/seo-rehberi.pdf?download=1"
İkinci komuttaki
/dev/null Unix benzeri kabuk içindir; Windows’ta yerel curl.exe ile -o NUL kullanabilirsiniz. URL varsayımsaldır, kendi belgenizin adresiyle değiştirin.Başarılı kontrolde
Link satırında doğru canonical URL’sini görmelisiniz. Satır yoksa uygulama veya web sunucusu başlığı eklemiyor olabilir. Farklı bir URL gösteriyorsa, önbellek, yönlendirme kuralı veya dinamik URL üretimi incelenmelidir.Uygulama ve kontrol adımları
- Canonical uygulanacak kaynağı belirleyin. Önceliği PDF gibi HTML dışı dosyalara veya aynı içeriği birden fazla URL’den sunan kaynaklara verin.
- Ana URL’yi tek ve tutarlı biçimde seçin. Protokol, alan adı, büyük-küçük harf ve yol farklarını kontrol edin; kullanılacak adresi mutlak URL olarak yazın.
- Sunucu ya da uygulama yanıtına şu yapıyı ekleyin:
Link: <https://example.com/dosyalar/seo-rehberi.pdf>; rel="canonical". Dinamik sayfalarda URL’yi kullanıcı girdisinden rastgele üretmek yerine güvenilir bir eşlemeden oluşturun. - Başlığın yalnızca başarılı yanıt türlerinde ve doğru kaynakta döndüğünü kontrol edin. Başka içeriğe ait canonical’ı ortak sunucu kuralıyla tüm dosyalara eklemeyin.
- Bir komut satırı istemcisiyle veya tarayıcının ağ araçlarıyla yanıt başlıklarını inceleyin. Canonical hedefinin içeriği gerçekten temsil ettiğini ve gereksiz yönlendirme zinciri oluşturmadığını doğrulayın.
Aşağıdaki karar tablosu, HTTP canonical başlığının ne zaman uygun olduğunu ayırmaya yardımcı olur:
| Durum | Uygun yaklaşım | Dikkat edilmesi gereken |
|---|---|---|
| PDF veya başka HTML dışı dosya | HTTP Link başlığı | Aynı/eşdeğer içeriğin tercih edilen sürümünü göstermeli |
| Normal HTML sayfa | HTML içindeki canonical bağlantısı veya mevcut platformun desteklediği yöntem | Aynı sayfada çelişkili sinyaller bırakmayın |
| Kaynak kalıcı olarak taşındı | Uygun HTTP yönlendirmesi | Canonical, yönlendirmenin yerine geçmez |
| İçerikler belirgin biçimde farklı | Her içerik için kendi URL’si | Canonical ile farklı içeriği tek sayfaya zorlamayın |
Tablodaki yöntemler birbirinin otomatik alternatifi değildir. HTML sayfalarında sayfa içindeki canonical işareti, HTML dışı kaynaklarda ise HTTP yanıt başlığı pratik bir seçimdir. Aynı kaynak için birden fazla yöntem kullanılıyorsa, bildirdikleri URL’lerin birbiriyle çelişmemesi gerekir.
Sık yapılan hatalar
İstek başlığı olarak göndermek: Canonical, sunucunun istemciye verdiği yanıt başlığıdır. Tarayıcıdan sunucuya gönderilen bir istek başlığı olarak eklenmesi arama motorlarına canonical sinyali vermez.
Göreli URL kullanmak:
</path>; rel="canonical" yerine tam protokol ve alan adı içeren bir adres kullanın.Her URL’ye aynı canonical’ı eklemek: Ortak sunucu kuralı, farklı dosyaları yanlışlıkla tek bir ana URL’ye bağlayabilir. Kuralı yalnızca gerçekten aynı içeriğin kopyalarına uygulayın.
Canonical’ı yönlendirme sanmak: Canonical kullanıcıyı taşımaz ve kopya URL’nin erişimini kapatmaz. Taşınmış bir kaynak için gereken yönlendirme ayrıca yapılandırılmalıdır.
Sonucu kontrol etmemek: Yönetim panelinde ayar yapılmış görünse bile CDN, önbellek veya uygulama katmanı başlığı değiştirebilir. Son kontrol gerçek HTTP yanıtında yapılmalıdır.
Sık sorulan sorular
HTTP canonical başlığı HTML sayfalarda da kullanılabilir mi?
HTTP başlığı teknik olarak bir yanıt sinyali olarak kullanılabilir; ancak HTML sayfalarında canonical uygulamasını platformun desteklediği HTML yöntemiyle tutarlı biçimde yönetmek genellikle daha kolaydır. Aynı URL için farklı yöntemler kullanıyorsanız çelişen hedefler vermeyin.
Canonical hedefi 404 döndürürse ne olur?
Bu, güçlü ve kullanılabilir bir canonical sinyali oluşturmaz. Önce hedef URL’yi geçerli, erişilebilir ve ana içeriği temsil eden bir kaynak hâline getirin; ardından gerçek yanıt başlığını yeniden kontrol edin.
Bir yanıtta birden fazla canonical verilebilir mi?
Tek bir tercih edilen URL kullanmak en güvenli yaklaşımdır. Birden fazla ve çelişkili hedef, hangi URL’nin tercih edildiği konusunda belirsizlik oluşturabilir.