Kanonik URL PHP Kodu
Web sitenizin SEO sağlığı için en kritik unsurlardan biri, kopya içerik (duplicate content) sorununu çözmektir. Özellikle PHP gibi sunucu taraflı dillerle oluşturulmuş dinamik sitelerde, aynı içeriğe farklı URL'ler üzerinden erişilebilmesi sıkça karşılaşılan bir durumdur. İşte bu noktada, arama motorlarına hangi URL'nin "orijinal" olduğunu bildiren Kanonik URL PHP Kodu devreye girer. Bu rehberde, bu kodun ne olduğunu, neden önemli olduğunu ve sitenize nasıl entegre edeceğinizi adım adım, pratik örneklerle öğreneceksiniz.
İçindekiler
1. Kanonik URL Nedir ve SEO İçin Neden Hayatidir?
Kanonik URL (Canonical URL), bir web sayfasının birden fazla versiyonu olduğunda, arama motorlarına bu versiyonlardan hangisinin "ana" veya "tercih edilen" olduğunu bildiren bir HTML elementidir. Kısacası, Google'a "Hey, bu sayfaların hepsi aynı içeriğe sahip ama sen dizine şu adresi ekle ve tüm SEO değerini (link suyu, otorite vb.) bu adrese aktar" demenin teknik yoludur.
Örneğin, aşağıdaki URL'lerin hepsi aynı ürün sayfasını gösterebilir:
https://www.site.com/urun/ayakkabihttps://site.com/urun/ayakkabi(www olmayan versiyon)http://www.site.com/urun/ayakkabi(http versiyonu)https://www.site.com/urun/ayakkabi?kaynak=facebook(UTM parametreli versiyon)
Bu durum, Google'ın gözünde 4 farklı sayfa gibi görünebilir ve bu da "kopya içerik" sorununa yol açar. SEO puanınız bu URL'ler arasında bölünür ve sitenizin sıralaması olumsuz etkilenir. Kanonik etiket, tüm bu varyasyonlar için <link rel="canonical" href="https://www.site.com/urun/ayakkabi" /> şeklinde tek bir orijinal URL belirleyerek bu sorunu çözer.
2. Neden Statik Değil, Dinamik PHP Kodu Kullanmalıyız?
Binlerce sayfaya sahip dinamik bir web sitesinde her sayfa için manuel olarak kanonik etiket eklemek imkansızdır. Özellikle e-ticaret siteleri, haber portalları veya bloglar gibi sürekli yeni içeriğin eklendiği platformlarda, URL yapısı genellikle veritabanından gelen verilere göre şekillenir. Filtreleme, sıralama ve kampanya parametreleri gibi ekler, URL'leri karmaşıklaştırır.
Kanonik URL PHP kodu kullanmak, bu süreci otomatikleştirmemizi sağlar. PHP'nin sunucu taraflı yetenekleri sayesinde, bir sayfa kullanıcıya sunulmadan önce o sayfanın "temiz" ve "orijinal" URL'sini dinamik olarak hesaplayabilir ve HTML'in <head> bölümüne otomatik olarak ekleyebiliriz. Bu, hem zaman kazandırır hem de insan hatası riskini ortadan kaldırır.
3. Adım Adım: Temel Kanonik URL PHP Kodu Oluşturma
En basit haliyle, mevcut sayfanın URL'sini alıp kanonik etiket olarak basabiliriz. Bu, özellikle URL yapınızın zaten temiz olduğu ve sadece http/https, www/non-www gibi temel varyasyonları çözmek istediğiniz durumlar için yeterlidir. Bu kodu sitenizin tüm sayfalarında çalışan bir header dosyasının <head> etiketleri arasına yerleştirmelisiniz.
<?php
// Protokolü belirle (HTTPS mi, HTTP mi?)
$protocol = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off') ? 'https://' : 'http://';
// Sunucu adını al (örn: www.site.com)
$host = $_SERVER['HTTP_HOST'];
// İstek URI'sini al (örn: /urun/ayakkabi?kaynak=facebook)
$request_uri = $_SERVER['REQUEST_URI'];
// Soru işaretinden (?) sonraki kısmı (parametreleri) temizle
$clean_uri = strtok($request_uri, '?');
// Tam ve temiz kanonik URL'yi oluştur
$canonicalUrl = $protocol . $host . $clean_uri;
// HTML olarak ekrana bas
echo '<link rel="canonical" href="' . $canonicalUrl . '" />';
?>
Bu kod, https://www.site.com/urun/ayakkabi?kaynak=facebook gibi bir adresi otomatik olarak https://www.site.com/urun/ayakkabi adresine yönlendiren bir kanonik etiket oluşturur.
4. Gelişmiş Örnek: Parametreleri Temizleyen Fonksiyon
Daha karmaşık senaryolar için, örneğin sayfalama (?page=2) gibi bazı parametreleri korumak ama takip (?utm_source=...) gibi diğerlerini kaldırmak isteyebilirsiniz. Bu durumda, daha modüler ve yönetilebilir bir fonksiyon yazmak en iyisidir.
<?php
function generateCanonicalUrl() {
$protocol = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off') ? 'https://' : 'http://';
$host = $_SERVER['HTTP_HOST'];
$path = strtok($_SERVER['REQUEST_URI'], '?');
// Korunacak parametreleri bir diziye ekleyin (örn: sayfalama)
$allowed_params = ['page', 'sort'];
$query_params = [];
if (isset($_GET)) {
foreach ($_GET as $key => $value) {
if (in_array($key, $allowed_params)) {
$query_params[$key] = $value;
}
}
}
$canonicalUrl = $protocol . $host . $path;
if (!empty($query_params)) {
$canonicalUrl .= '?' . http_build_query($query_params);
}
return $canonicalUrl;
}
// Fonksiyonu çağırıp etiketi basma
echo '<link rel="canonical" href="' . generateCanonicalUrl() . '" />';
?>
Bu fonksiyon, /urunler?page=2&kaynak=google URL'si için /urunler?page=2 şeklinde bir kanonik URL oluştururken, `kaynak` gibi SEO için gereksiz parametreleri otomatik olarak temizler.
5. Uygulamada Dikkat Edilmesi Gerekenler
Dinamik kanonik URL kodunu sitenize eklerken aşağıdaki noktalara dikkat etmek, olası SEO hatalarını önleyecektir:
- Mutlak URL Kullanın: Kanonik URL'ler her zaman tam ve mutlak olmalıdır (
https://...ile başlamalıdır), göreceli (/sayfa) olmamalıdır. - Tek Bir Kanonik Belirtin: Bir sayfada birden fazla kanonik etiket bulunması, arama motorlarının kafasını karıştırır ve etiketin tamamen göz ardı edilmesine neden olabilir.
- Kendine Referans Veren Kanonikler: Bir sayfanın kanonik URL'si genellikle kendisidir. Bu, Google'a bu sayfanın orijinal olduğunu ve başka bir URL'nin tercih edilmediğini teyit eder.
- Sayfalama (Pagination) Yönetimi: Sayfalanmış içeriklerde (örneğin bir kategori sayfasının 2., 3. sayfaları), her sayfanın kanonik URL'si kendisini göstermelidir. Tüm sayfaları ilk sayfaya kanonik göstermek yaygın bir hatadır ve içeriklerin indekslenmesini engelleyebilir.
Sonuç olarak, doğru yapılandırılmış bir Kanonik URL PHP kodu, modern ve dinamik web siteleri için bir lüks değil, teknik SEO'nun temel bir gerekliliğidir. Sitenizin arama motorları tarafından doğru anlaşılmasını sağlar, kopya içerik cezalarından korur ve SEO gücünüzü tek bir otoriter URL altında birleştirerek sıralamalarda yükselmenize yardımcı olur.
Neden Kanonik URL PHP Kodu Konusunda Bizi Seçmelisiniz?
Google kalite yönergelerine %100 uyumlu, kalıcı ve organik büyüme hedefleyen stratejiler geliştiriyoruz.
- 1Teknik SEO AnaliziSitenizin mevcut URL yapısını ve kopya içerik sorunlarını derinlemesine analiz ediyor, potansiyel riskleri ve fırsatları belirliyoruz.
- 2Özelleştirilmiş Kod GeliştirmeSitenizin altyapısına özel, performans odaklı ve hatasız çalışan dinamik kanonik URL PHP kodunu geliştirip sitenize entegre ediyoruz.
- 3İzleme ve RaporlamaGoogle Search Console üzerinden entegrasyonun başarısını takip ediyor, indeksleme durumunu izliyor ve size düzenli raporlar sunuyoruz.