Çok Dilli WordPress Siteleri için hreflang Etiketleri Nasıl Uygulanır?

Tüm WordPress sitenizi altı dile çevirdiniz. .po dosyaları temiz, .mo dosyaları derlenmiş, her bir metin Fransızca, Almanca ve Japonca olarak mükemmel bir şekilde görüntüleniyor. Ancak lansmandan haftalar sonra Google Search Console'u kontrol ettiğinizde şaşırtıcı bir şeyle karşılaşıyorsunuz: Fransızca sayfanız Almanca sorgular için sıralanıyor, İspanya-Meksika sayfanız İspanya'daki arama yapanlara sunuluyor ve iki dil sürümünüz sıralamalarda sessizce birbirini yiyor. İçerik iyi. Sorun şu ki, Google hangi sürümün hangi kitleye ait olduğu hakkında hiçbir fikre sahip değil.
İşte tam da bu durumu hreflang WordPress etiketleri düzeltmek için tasarlanmıştır. Hreflang, arama motorlarına bir sayfanın hangi dil ve bölgesel sürümünün hangi kullanıcıya sunulacağını söyleyen sinyaldir. Yanlış yaparsanız, yinelenen içerik seyreltmesi, yanlış dilde sonuçlar ve boşa harcanan tarama bütçesi yaşarsınız. Doğru yaparsanız, çevrilmiş her sayfa, yazıldığı kitleye ulaşır. Bu rehber, sözdizimini, dil ve dil-bölge kodları arasındaki farkı, zorunlu x-default'u, dönüş etiketi karşılıklılığını ve bunu WordPress'te uygulamanın üç pratik yolunu kapsar.
hreflang Gerçekte Ne İşe Yarar
Hreflang hiçbir şeyi çevirmez. O bir ilişki haritasıdır. Aynı sayfaya birden çok dilde sahip olduğunuzda, hreflang açıklamaları Google'a "bu URL İngilizce sürümüdür, bu Almanca sürümüdür, bu da Meksika'daki İspanyolca konuşanlar içindir" der. Google, kullanıcının dil ayarları ve konumuna göre arama sonuçlarında doğru sürümü sunmak için bu haritayı kullanır.
Açıklama, HTML'inizin <head> bölümünde bir dizi <link> öğesi olarak yer alır. Her öğe, bir hedef sayfayı ve hizmet verdiği dili (ve isteğe bağlı olarak bölgeyi) adlandırır. İşte varsayılan bir yedekleme ile ABD İngilizcesi, Birleşik Krallık İngilizcesi ve Meksika İspanyolcası'nda mevcut olan bir sayfa için doğru bir hreflang etiketleri kümesi:
<link rel="alternate" hreflang="en-US" href="https://example.com/en-us/pricing/" />
<link rel="alternate" hreflang="en-GB" href="https://example.com/en-gb/pricing/" />
<link rel="alternate" hreflang="es-MX" href="https://example.com/es-mx/pricing/" />
<link rel="alternate" hreflang="x-default" href="https://example.com/pricing/" />
Kümedeki her sayfa, kendisi de dahil olmak üzere her alternatifi listeleyerek bu bloğun aynısını çıkarmalıdır. Bu son nokta çoğu kişinin kafasını karıştırır ve buna geri döneceğiz.
Neden SEO İçin Önemli
Hreflang olmadan Google, çevrilmiş sayfalarınızı aynı anahtar kelimeler için rekabet eden neredeyse yinelenen içerikler olarak kabul eder. Sonuç, seyreltmedir: sıralama sinyalleri birleşmek yerine sürümler arasında bölünür. Doğru hreflang ile her sürüm, kümenin bir bütün olarak yetkisini devralır ve doğru arama yapanlara görünür. Bu, çok dilli bir sitenin yapabileceği en yüksek kaldıraçlı SEO hareketlerinden biridir ve .po dosyalarınızdaki gerçek içerik çevirisini tamamlar, onun yerini almaz. İçerik tarafını, PO dosyalarını çevirmenin Google sıralamalarını nasıl etkilediği hakkındaki rehberimizde derinlemesine ele alıyoruz.
Dil vs Dil-Bölge Kodları
Hangisini kullanmalısınız, en mi yoksa en-GB mi? Doğru olan en sade kodu kullanın. İngilizce içeriğiniz genel ise ve ayrı İngiliz ve Amerikan sürümlerini sürdürmüyorsanız, yalnızca en kullanın. Yalnızca farklı ülkelere gerçekten farklı içerik sunuyorsanız bir bölge alt etiketi ekleyin.
Hreflang değerleri dil veya dil-bölge formatını izler. Dil kısmı bir ISO 639-1 kodudur (en, es, de, pt). İsteğe bağlı bölge, bir ISO 3166-1 Alpha 2 ülke kodudur (US, GB, MX, BR). Yani:
enülke fark etmeksizin tüm İngilizce konuşanları hedefler.en-GBBirleşik Krallık'taki İngilizce konuşanları hedefler.estüm İspanyolca konuşanları hedefler.es-MXözellikle Meksika'daki İspanyolca konuşanları hedefler.
Kritik bir detay: bölge alt etiketi bir ülkedir, bir dil varyantı değil. es-MX "Meksika İspanyolcası lehçesi" anlamına gelmez, "İspanyolca, Meksika'daki kullanıcılara gösterilen" anlamına gelir. Google yine de bunu kullanıcının konumuna göre sunar. Çevirilerinizde bölgesel lehçeleri koruyorsanız, bunları yönlendirme şekliniz bölge kodudur. Bunun dilbilimsel yönünü bölgesel İspanyolca ve Portekizce varyantları hakkındaki rehberimizde derinlemesine inceliyoruz.
Yaygın Bir Hatalı Örnek
İşte sürekli gördüğümüz bozuk bir hreflang bloğu:
<link rel="alternate" hreflang="en-uk" href="https://example.com/uk/" />
<link rel="alternate" hreflang="sp" href="https://example.com/es/" />
<link rel="alternate" hreflang="pt-PT_BR" href="https://example.com/pt/" />
Üç hata. en-uk geçersizdir çünkü Birleşik Krallık'ın ülke kodu GB'dir, UK değil. sp hiçbir şekilde bir dil kodu değildir; İspanyolca es'dir. Ve pt-PT_BR, hreflang'de hiçbir anlamı olmayan bir alt çizgiyle iki bölgeyi karıştırır. Arama motorları hatalı biçimlendirilmiş değerleri sessizce göz ardı eder, bu yüzden hiçbir hata veya fayda almazsınız, sadece hiçbir şeyin neden değişmediğini merak ederek saatlerce hata ayıklarsınız.
Not: hreflang kısa çizgi (en-GB) kullanırken, WordPress yerel ayar dosyaları alt çizgi (en_GB) kullanır. .po dosya adı kodlarınızı doğrudan hreflang etiketlerine kopyalamayın.
x-default ve Dönüş Etiketi Karşılıklılığı
Diğer her şeyden daha fazla sessiz hreflang hatasına neden olan iki kural: eksik x-default ve bozuk karşılıklılık.
x-default değeri, Google'a başka hiçbir dil kullanıcıyla eşleşmediğinde hangi sayfanın sunulacağını söyler. Bu sizin yedeklemenizdir, tipik olarak dil seçiciniz veya birincil pazar ana sayfanızdır. Spesifikasyona göre kesinlikle zorunlu değildir, ancak pratikte her zaman dahil etmelisiniz. Olmadan, Portekizce bir sürümünüz olmayan Portekizce konuşan bir ziyaretçi, kasıtlı bir varsayılan yerine yazı tura atışı gibi bir sonuç alır.
Dönüş etiketi karşılıklılığı tartışılamaz. Bir hreflang kümesindeki her sayfa, kendisi de dahil olmak üzere diğer her sayfaya geri dönmelidir. İngilizce sayfanız Almancayı bir alternatif olarak listeliyorsa, Almanca sayfanız İngilizceyi bir alternatif olarak listelemelidir. Almanca sayfa dönüş referansını atlarsa, Google tüm ilişkiye güvenmez ve açıklamaları yok sayar.
<!-- On the German page, the set must still list ALL versions -->
<link rel="alternate" hreflang="de" href="https://example.com/de/about/" />
<link rel="alternate" hreflang="en" href="https://example.com/en/about/" />
<link rel="alternate" hreflang="x-default" href="https://example.com/about/" />
Kendi kendine referans (Almanca sayfayı görüntülerken Almanca sayfayı işaret eden de) isteğe bağlı değil, zorunludur. Beş dil sürümünden oluşan bir küme, beş sayfanın her birinin beş <link> etiketinin yanı sıra x-default çıktısını verdiği anlamına gelir.
WordPress'te hreflang Uygulamanın Üç Yolu
Tam manuel kontrolden tamamen otomatik olana kadar üç pratik seçeneğiniz var.
Yöntem 1: wp_head aracılığıyla Manuel
Küçük, statik bir sayfa kümesi için, hreflang etiketlerini temanızın functions.php dosyasındaki wp_head eylemi aracılığıyla doğrudan ekleyebilirsiniz:
add_action( 'wp_head', function () {
if ( ! is_page( 'pricing' ) ) {
return;
}
$alternates = array(
'en-US' => 'https://example.com/en-us/pricing/',
'es-MX' => 'https://example.com/es-mx/pricing/',
'x-default' => 'https://example.com/pricing/',
);
foreach ( $alternates as $lang => $url ) {
printf(
'<link rel="alternate" hreflang="%s" href="%s" />' . "\n",
esc_attr( $lang ),
esc_url( $url )
);
}
} );
Bu size hassas kontrol sağlar ancak ölçeklenmez. Yüzlerce gönderi arasında karşılıklılığı elle sürdürmek bir bakım tuzağıdır.
Yöntem 2: Çok Dilli Bir Eklenti
Polylang, WPML veya TranslatePress kullanıyorsanız, hreflang çeviri ilişkilerinize göre otomatik olarak oluşturulur. Bu, çoğu site için doğru yanıttır çünkü eklenti hangi gönderinin hangisinin çevirisi olduğunu zaten bilir, böylece karşılıklılık ve x-default sizin için halledilir. Maliyet, bu eklentilerin eklediği çalışma zamanı yüküdür; bu, manuel ve yapay zeka çeviri yaklaşımlarının karşılaştırması rehberimizde incelediğimiz bir değiş tokuştur.
Yöntem 3: xhtml:link ile XML Site Haritası
Hreflang'i her sayfanın <head>'ine yerleştirmek yerine, xhtml:link ad alanını kullanarak XML site haritanızda ilişkileri beyan edebilirsiniz. Her <url> girişi tüm dil alternatiflerini listeler:
<url>
<loc>https://example.com/en/about/</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://example.com/en/about/" />
<xhtml:link rel="alternate" hreflang="de" href="https://example.com/de/about/" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://example.com/about/" />
</url>
Bu, sayfanızın HTML'ini yalın tutar ve dil haritasını Google'ın memnuniyetle okuduğu tek bir taranabilir dosyada merkezileştirir. Çoğu SEO eklentisi bunu otomatik olarak oluşturabilir.
hreflang Çeviriyi Tamamlar, Yerine Geçmez
İşte herkesin kaçırdığı nokta: temel sayfalar gerçekten çevrilmemişse hreflang değersizdir. Etiket Google'a "bu Almanca sürümüdür" der, ancak Almanca URL hala İngilizce eklenti metinlerini, çevrilmemiş ödeme etiketlerini veya yarım kalmış .po dosyalarını gösteriyorsa, Google'a Almanca kullanıcılara güvenle bozuk içerik sunmasını söylemiş olursunuz.
Gerçek çok dilli SEO iki katmanlıdır. İçerik katmanı, her tema ve eklenti metnini hedef dile taşıyan çevrilmiş .po, .pot, .json ve .xliff dosyalarınızdır. Sinyal katmanı ise her bitmiş sürümü hedef kitlesine yönlendiren hreflang'dir. Her ikisi de sağlam olmalıdır. Yüzde 40 çevrilmiş bir sitenin üzerine mükemmel bir hreflang kümesi kurmak, yalnızca daha kötü bir deneyimi daha hızlı garanti eder.
Çeviri katmanını temiz tutmak işte burada en çok önem kazanır. Arayüz dosyalarınızı çevirirken, %s, %1$s ve {name} gibi yer tutucuların bozulmadan kalması gerekir, aksi takdirde "çevrilmiş" Almanca sayfanız hem kullanıcılara hem de arama motorlarına bozuk görünen kelimesi kelimesine %s belirteçleri ile oluşturulur. Sözdizimi Kilitleme (Syntax Locking) özellikli gettext destekli bir çeviri boru hattı, bu belirteçleri otomatik olarak korur, böylece hreflang'i işaret ettiğiniz her alternatif sayfa gerçekten üretime hazır olur. Akıllı Gruplama (Smart Batching) ile bulutta çalıştığı için, tüm çoklu yerel ayar sitesini, bu sayfaları sunan çalışma zamanını şişiren çeviri eklentileri yüklemeden ondan geçirebilirsiniz.
Önce içeriği doğru yapın, sonra hreflang'in işini yapmasına izin verin. İkisi birlikte sıralama sinyallerini birleştiren, yanlış dildeki sonuçları ortadan kaldıran ve çevrilmiş her sayfayı okuyabilecek kişilerin önüne çıkaran şeydir.
Kaynaktan yanlış dildeki arama sonuçlarını düzeltmeye hazır mısınız? SimplePoTranslate'i ücretsiz deneyin — kredi kartı gerekmez.
.po,.potve.jsondosyalarınızı ücretsiz katmanda çevirin, ardından hreflang etiketlerinizi her pazar için gerçekten hazır olan sayfalara yönlendirin.