SEO//12 dk okuma

hreflang Etiketleri: Çok Dilli SEO için Eksiksiz Uygulama Rehberi

Eray Gündoğmuş
Paylaş

hreflang Etiketleri: Çok Dilli SEO için Eksiksiz Uygulama Rehberi

Birden fazla dilde web sitesi yönetiyorsanız ya da farklı ülkelerdeki kullanıcıları hedefliyorsanız, hreflang etiketleri uygulayabileceğiniz en önemli teknik SEO sinyalidir. Doğru yapılandırıldığında Google, her kullanıcıya doğru dil sürümünü sunar. Yanlış yapılandırıldığında ise yinelenen içerik cezalarıyla, kendi sayfalarınız arasındaki trafiği bölen kannibalizasyonla ve aktif olarak hedeflediğiniz bölgelerde düşen sıralamalarla karşı karşıya kalırsınız.

Bu rehber konunun tamamını ele alıyor: hreflang etiketlerinin gerçekte ne işe yaradığı, üç farklı uygulama yöntemi, gerçek dünyada karşılaşacağınız yaygın örüntüler, modern JavaScript stack'leri için çerçeveye özgü kod parçacıkları, uygulamaları sessizce bozan hatalar ve her şeyi yayına almadan önce doğrulamak için ihtiyaç duyduğunuz araçlar.


TL;DR / Temel Çıkarımlar

  • hreflang, Google'a belirli bir kitle için hangi dil ya da bölgesel sayfa varyantının sunulacağını söyleyen bir HTML özelliğidir. Bing hreflang kullanmaz; bunun yerine Content-Language HTTP başlıkları ve coğrafi konum verileri gibi başka sinyallere dayanır.
  • Bir hreflang kümesindeki her sayfa, diğer tüm varyantlara işaret eden etiketlere ek olarak kendine referans veren bir etiket içermelidir.
  • hreflang ilişkileri çift yönlü olmak zorundadır: A sayfası B sayfasını varyant olarak belirtiyorsa, B sayfası da A sayfasını varyant olarak belirtmelidir. Tek yönlü bildirimler dikkate alınmaz.
  • x-default değeri, bir dil kodu değil geri dönüş belirtecidir. Bunu dil seçici, yönlendirme ağ geçidi veya eşleşmeyen yerel ayarlar için genel yakalayıcı görevi gören sayfalar için kullanın.
  • hreflang üç yerde uygulanabilir: <head> içindeki HTML <link> etiketleri, HTTP yanıt başlıkları veya XML site haritaları. Google açısından üçü de eşit derecede geçerlidir; stack'inizin hangisini kolaylaştırdığına göre seçin.

hreflang Etiketleri Nedir?

hreflang etiketleri, arama motorlarına belirli bir sayfanın hangi sürümünün belirli bir dili konuşan ya da belirli bir ülkede bulunan kullanıcılara yönelik olduğunu bildiren HTML açıklamalarıdır. Bu özellik 2011 yılında Google tarafından tanıtılmış olup Google'ın Search Central geliştirici belgelerinde "Sayfanızın yerelleştirilmiş sürümleri hakkında Google'ı bilgilendirin" başlığı altında belgelenmiştir.

hreflang'ın çözdüğü temel sorun belirsizliktir. Web sitenizin /en/ adresinde İngilizce, /de/ adresinde Almanca ve özellikle Avusturyalı kullanıcıları hedefleyen /de-at/ adresinde Almanca olduğunu varsayalım. hreflang olmadan, bir arama motorunun tarayıcısı büyük ölçüde benzer içeriğe sahip üç sayfa görür ve hangisinin hangi kitle için sıralanacağını tahmin etmek zorunda kalır — ve çoğunlukla yanılır. hreflang ile tahmin işini ortadan kaldırır ve ilişkiyi açıkça beyan edersiniz.

Google hreflang'ı Nasıl Kullanır?

Google, hreflang açıklamalarıyla karşılaştığında bunları sayfaları denklik kümelerine gruplamak için kullanır. Bir küme içinde Google, kullanıcının arayüz diline ve daha az ölçüde konumuna göre her arama sorgusu için en uygun varyantı seçer. Seçilen varyant, o kullanıcı için arama sonuçlarında görünen içeriktir. hreflang sıralamayı garanti etmez; yalnızca Google'a, sayfanın zaten sıralama sinyallerine sahip olduğu durumda belirli bir kitle için hangi sayfayı tercih edeceğini söyler.

hreflang aynı zamanda yinelenen içerik sorununu da çözer. Google iki URL'de özdeş veya neredeyse özdeş içerik görüp bunları birbirine bağlayan geçerli hreflang bağlantıları bulduğunda, bunları kazara kopyalar olarak değil kasıtlı bölgesel varyantlar olarak değerlendirir. Bu, Google yinelenen sayfaları birleştirip "yanlış" kanonik sayfayı seçtiğinde oluşan sıralama seyrelmesini önler.

Google ve Bing: Önemli Bir Ayrım

hreflang, Google (ve Yandex) özelliğidir. Bing hreflang etiketlerini açıkça kullanmaz. Bing Webmaster Yönergeleri'ne göre Bing, bir sayfanın hedef dil ve bölgesini belirlemek için şu sinyalleri kullanır:

  • Content-Language HTTP yanıt başlığı
  • <html> öğesindeki lang özelliği
  • Sunucunun coğrafi konumu
  • Uygun olduğunda ülke kodu üst düzey alan adı (ccTLD)
  • Sayfanın içeriğinin kendisi

Bing uluslararası kitleleri için anlamlı bir trafik kaynağıysa, bu sinyalleri hreflang kurulumunuzdan bağımsız olarak uygulamanız gerekir. İyi oluşturulmuş çok dilli bir site genellikle her ikisini de uygular: Google için hreflang, Bing için <html> üzerinde lang özelliği ve Content-Language başlıkları. İki yaklaşım çakışmaz.


Söz Dizimi ve Yerleşim

Dil ve Bölge Kodu Biçimi

hreflang değerleri IETF BCP 47 tarafından tanımlanan biçimi izler. Pratikte bu şu anlama gelir:

  • Yalnızca dil: en, de, fr, ja, zh-Hans, zh-Hant
  • Dil artı bölge: en-US, en-GB, de-AT, fr-CA, pt-BR
  • Özel değer: x-default

Dil kodları ISO 639-1 iki harfli kodlarıdır. Bölge kodları ISO 3166-1 alpha-2 iki harfli ülke kodlarıdır. Ayırıcı bir kısa çizgidir, alt çizgi değil. Yaygın bir hata en-US (kısa çizgi) yerine en_US (alt çizgi) yazmaktır — Google alt çizgi varyantını tamamen yoksayar.

En yaygın kullanılan yöntem budur. hreflang kümesindeki her sayfanın <head> bölümüne <link> öğeleri yerleştirin.

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8" />
  <title>Product Page</title>

  <!-- Self-referencing tag (required) -->
  <link rel="alternate" hreflang="en" href="https://example.com/en/product/" />

  <!-- Other language variants -->
  <link rel="alternate" hreflang="de" href="https://example.com/de/product/" />
  <link rel="alternate" hreflang="fr" href="https://example.com/fr/product/" />
  <link rel="alternate" hreflang="de-AT" href="https://example.com/de-at/product/" />

  <!-- Fallback for unmatched locales -->
  <link rel="alternate" hreflang="x-default" href="https://example.com/product/" />
</head>
<body>
  <!-- page content -->
</body>
</html>

Bu sayfanın her dil varyantı aynı <link> etiketleri kümesini içermelidir. /de/product/ adresindeki Almanca sayfa da, /en/product/ adresine işaret eden etiket dahil olmak üzere beş <link> öğesinin tamamına sahip olmalıdır.

Yöntem 2: HTTP Yanıt Başlıkları

HTML olmayan kaynaklar için — en yaygın durumda PDF'ler — HTML etiketleri yerleştiremezsiniz. Bunun yerine web sunucusu hreflang'ı HTTP Link yanıt başlığının bir parçası olarak yayar. Bu aynı zamanda <head> öğeleri eklemenin mimari olarak güç olduğu dinamik olarak oluşturulan sayfalar için de kullanışlıdır.

HTTP/1.1 200 OK
Content-Type: text/html; charset=UTF-8
Link: <https://example.com/en/product/>; rel="alternate"; hreflang="en",
      <https://example.com/de/product/>; rel="alternate"; hreflang="de",
      <https://example.com/fr/product/>; rel="alternate"; hreflang="fr",
      <https://example.com/product/>; rel="alternate"; hreflang="x-default"

Nginx yapılandırmasında bu şöyle görünür:

location /en/product/ {
    add_header Link '<https://example.com/en/product/>; rel="alternate"; hreflang="en", <https://example.com/de/product/>; rel="alternate"; hreflang="de", <https://example.com/fr/product/>; rel="alternate"; hreflang="fr"';
}

HTTP başlıkları HTML gövdesinden önce ayrıştırılır ve bu onları tarayıcılar için biraz daha verimli kılar; ancak pratik sıralama farkı ihmal edilebilir düzeydedir.

Yöntem 3: XML Site Haritası

Binlerce URL içeren büyük siteler için her sayfada hreflang etiketlerini ayrı ayrı yönetmek operasyonel açıdan pahalıdır. XML site haritaları merkezi bir alternatif sunar. Google'ın site haritası spesifikasyonu, her <url> bloğu içindeki xhtml:link öğesi aracılığıyla hreflang'ı destekler.

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
        xmlns:xhtml="http://www.w3.org/1999/xhtml">

  <!-- English variant -->
  <url>
    <loc>https://example.com/en/product/</loc>
    <xhtml:link rel="alternate" hreflang="en"       href="https://example.com/en/product/" />
    <xhtml:link rel="alternate" hreflang="de"       href="https://example.com/de/product/" />
    <xhtml:link rel="alternate" hreflang="fr"       href="https://example.com/fr/product/" />
    <xhtml:link rel="alternate" hreflang="x-default" href="https://example.com/product/" />
  </url>

  <!-- German variant — same set of xhtml:link elements -->
  <url>
    <loc>https://example.com/de/product/</loc>
    <xhtml:link rel="alternate" hreflang="en"       href="https://example.com/en/product/" />
    <xhtml:link rel="alternate" hreflang="de"       href="https://example.com/de/product/" />
    <xhtml:link rel="alternate" hreflang="fr"       href="https://example.com/fr/product/" />
    <xhtml:link rel="alternate" hreflang="x-default" href="https://example.com/product/" />
  </url>

  <!-- French variant — same set of xhtml:link elements -->
  <url>
    <loc>https://example.com/fr/product/</loc>
    <xhtml:link rel="alternate" hreflang="en"       href="https://example.com/en/product/" />
    <xhtml:link rel="alternate" hreflang="de"       href="https://example.com/de/product/" />
    <xhtml:link rel="alternate" hreflang="fr"       href="https://example.com/fr/product/" />
    <xhtml:link rel="alternate" hreflang="x-default" href="https://example.com/product/" />
  </url>

</urlset>

Çift yönlülük gereksinimi burada da geçerlidir: kümedeki her URL bir <url> girişi olarak görünmelidir ve her giriş, kendine referans dahil olmak üzere xhtml:link öğelerinin tam kümesini listelemelidir.


Yaygın hreflang Örüntüleri

Aynı Dil, Farklı Bölgeler

Aynı dil için ülkeler arasında anlamlı ölçüde farklı içeriğiniz varsa — farklı fiyatlandırma, farklı yasal metin, farklı ürün kullanılabilirliği — dil artı bölge etiketleri kullanın.

<!-- United States English -->
<link rel="alternate" hreflang="en-US" href="https://example.com/us/checkout/" />

<!-- United Kingdom English -->
<link rel="alternate" hreflang="en-GB" href="https://example.com/uk/checkout/" />

<!-- Australian English -->
<link rel="alternate" hreflang="en-AU" href="https://example.com/au/checkout/" />

<!-- Fallback for all other English speakers -->
<link rel="alternate" hreflang="en" href="https://example.com/en/checkout/" />

Farklar önemsizse (bir para birimi sembolü veya telefon numarası biçimi gibi), ayrı URL'leri yönetmenin yükü SEO faydasını haklı kılmayabilir. Dinamik olarak sunulan yerelleştirilmiş içeriğe sahip tek bir en etiketi çoğunlukla daha basittir.

x-default Etiketi

x-default, Google'ın beyan ettiğiniz varyantların hiçbiriyle eşleşmeyen dile sahip kullanıcılara göstereceği sayfayı belirtir. Aynı zamanda dil seçici veya bölgesel ağ geçidi işlevi gören sayfalar için de kullanılır.

<!-- Language-specific variants -->
<link rel="alternate" hreflang="en" href="https://example.com/en/" />
<link rel="alternate" hreflang="de" href="https://example.com/de/" />
<link rel="alternate" hreflang="ja" href="https://example.com/ja/" />

<!-- x-default: shown when no variant matches the user's language -->
<link rel="alternate" hreflang="x-default" href="https://example.com/" />

x-default bir dil kodu değildir. İngilizce için eş anlamlı olarak kullanmayın. example.com/ adresindeki kök URL'niz, kullanıcıları uygun yerel ayara yönlendiren JavaScript güdümlü bir dil seçiciyse, x-default için doğru hedef budur. Siteniz varsayılan olarak İngilizce ise ve bölgesel bir varyantla eşleşmeyen İngilizce kullanıcıların /en/ adresine ulaşmasını istiyorsanız, x-default'u /en/ adresine yönlendirin ve aynı URL'ye işaret eden ayrı bir hreflang="en" etiketi de ekleyin.

Kendine Referans Zorunluluğu

hreflang kümesindeki her sayfa, kendine işaret eden bir etiket içermelidir. Bu zorunludur. Google'ın belgeleri bunu açıkça belirtir: "Her dil sürümü hem kendisini hem de diğer tüm dil sürümlerini listelemelidir."

<!-- On the /de/ page, the self-reference is the hreflang="de" tag -->
<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="fr" href="https://example.com/fr/about/" />

Kendine referans olmadan Google, kümeden farklı bir kanonik seçebilir ya da o sayfa için hreflang bildirimini tamamen görmezden gelebilir.

Geri Dönüş Bağlantısı Zorunluluğu (Çift Yönlülük)

A sayfası B sayfasını alternatif olarak belirtiyorsa, B sayfası da A sayfasını alternatif olarak belirtmelidir. Bu olmadan Google ilişkiyi doğrulayamaz ve açıklamaları yoksayar. Bu, hreflang uygulamalarındaki en yaygın sessiz başarısızlıktır: ilişkinin bir tarafı eksiktir çünkü o dil varyantı için şablon hiç güncellenmemiştir.


Popüler Framework'lerde Uygulama

Next.js (App Router)

Next.js App Router'da generateMetadata işlevindeki alternates özelliğini kullanın. Next.js bunları belgenin <head> bölümünde <link rel="alternate"> etiketleri olarak işler.

// app/[locale]/product/[slug]/page.tsx
import type { Metadata } from 'next';

type Props = {
  params: { locale: string; slug: string };
};

export async function generateMetadata({ params }: Props): Promise<Metadata> {
  const { locale, slug } = params;
  const baseUrl = 'https://example.com';

  return {
    alternates: {
      canonical: `${baseUrl}/${locale}/product/${slug}/`,
      languages: {
        'en': `${baseUrl}/en/product/${slug}/`,
        'de': `${baseUrl}/de/product/${slug}/`,
        'fr': `${baseUrl}/fr/product/${slug}/`,
        'x-default': `${baseUrl}/en/product/${slug}/`,
      },
    },
  };
}

Next.js, languages nesnesinin anahtarlarını doğrudan hreflang özellik değerleri olarak serileştirir; bu nedenle BCP 47 biçimini kullanın (en-US, en_US değil).

Nuxt 3

Nuxt'ın @nuxtjs/i18n modülü, modül yapılandırmasında seo: true ayarlandığında hreflang etiketlerini otomatik olarak oluşturur. Manuel kontrol için useHead composable'ı kullanın.

// composables/useHreflang.ts
export function useHreflang(slug: string) {
  const baseUrl = 'https://example.com';
  const locales = ['en', 'de', 'fr'];

  useHead({
    link: [
      ...locales.map((locale) => ({
        rel: 'alternate' as const,
        hreflang: locale,
        href: `${baseUrl}/${locale}/${slug}/`,
      })),
      {
        rel: 'alternate' as const,
        hreflang: 'x-default',
        href: `${baseUrl}/en/${slug}/`,
      },
    ],
  });
}

hreflang çıktısı gerektiren her sayfa bileşeni içinde useHreflang(slug) çağırın.

Astro

Astro'nun getStaticPaths özelliği, her sayfa için varyantların tam kümesini oluşturmayı ve bunları paylaşılan bir layout'a aktarmayı kolaylaştırır.

---
// src/layouts/BaseLayout.astro
interface Props {
  hreflangLinks: Array<{ hreflang: string; href: string }>;
}
const { hreflangLinks } = Astro.props;
---
<html>
  <head>
    {hreflangLinks.map((link) => (
      <link rel="alternate" hreflang={link.hreflang} href={link.href} />
    ))}
  </head>
  <body>
    <slot />
  </body>
</html>
---
// src/pages/[locale]/[slug].astro
export async function getStaticPaths() {
  const baseUrl = 'https://example.com';
  const locales = ['en', 'de', 'fr'];
  const slugs = ['about', 'pricing', 'contact'];

  return locales.flatMap((locale) =>
    slugs.map((slug) => ({
      params: { locale, slug },
      props: {
        hreflangLinks: [
          ...locales.map((l) => ({
            hreflang: l,
            href: `${baseUrl}/${l}/${slug}/`,
          })),
          { hreflang: 'x-default', href: `${baseUrl}/en/${slug}/` },
        ],
      },
    }))
  );
}
const { hreflangLinks } = Astro.props;
---
<BaseLayout hreflangLinks={hreflangLinks}>
  <!-- page content -->
</BaseLayout>

TanStack Start

TanStack Start, dosya tabanlı yönlendirme ve createFileRoute kullanır. hreflang etiketlerini bir route dosyasındaki head dışa aktarımı aracılığıyla ekleyin.

// routes/$locale.product.$slug.tsx
import { createFileRoute } from '@tanstack/start';

const locales = ['en', 'de', 'fr'] as const;
const baseUrl = 'https://example.com';

export const Route = createFileRoute('/$locale/product/$slug')({
  head: ({ params }) => {
    const { locale, slug } = params;

    const hreflangLinks = [
      ...locales.map((l) => ({
        tag: 'link' as const,
        attrs: {
          rel: 'alternate',
          hreflang: l,
          href: `${baseUrl}/${l}/product/${slug}/`,
        },
      })),
      {
        tag: 'link' as const,
        attrs: {
          rel: 'alternate',
          hreflang: 'x-default',
          href: `${baseUrl}/en/product/${slug}/`,
        },
      },
    ];

    return { links: hreflangLinks };
  },
  component: ProductPage,
});

function ProductPage() {
  const { locale, slug } = Route.useParams();
  return <div>{/* page content */}</div>;
}

@formatjs/intl ile Next.js veya çeviri teslimatını yöneten Better i18n gibi platformlar gibi yerleşik i18n yönlendirmesine sahip framework'ler, derleme veya çalışma zamanında hreflang çıktısını oluşturabilir ya da otomatikleştirebilir — yerel ayar ve rota sayısı elle yönetilebilir sınırın ötesine geçtiğinde bu özellikle kullanışlıdır.


Yaygın Hatalar

Eksik Kendine Referans

Her sayfa kendini bildirmelidir. Bunu unutmak, Google'ın Search Console'un hreflang hatası bildirmesinin bir numaralı nedenidir. Kendine referans, site haritasındaki <loc> değeriyle tam olarak aynı URL'yi kullanmalıdır; buna sondaki eğik çizgi, protokol ve alt alan adı da dahildir.

<!-- WRONG: /de/ page does not reference itself -->
<link rel="alternate" hreflang="en" href="https://example.com/en/about/" />
<link rel="alternate" hreflang="fr" href="https://example.com/fr/about/" />

<!-- CORRECT: /de/ page includes its own self-reference -->
<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="fr" href="https://example.com/fr/about/" />

Eksik Geri Dönüş Bağlantıları

Sitenize yeni bir dil varyantı ekler ama yalnızca yeni dilin şablonlarını güncellerseniz, mevcut sayfalar yeni varyanta geri dönmez. Google tek yönlü bir bildirim görür ve yoksayar.

Yeni bir yerel ayar eklediğinizde, kümedeki tüm mevcut sayfaları yeni varyanta bir bağlantı içerecek şekilde güncellemelisiniz.

Yanlış Dil Kodları

hreflang değerleri spesifikasyonda büyük/küçük harfe duyarsızdır; ancak yanlış kodlar kullanmak sessiz başarısızlıklara yol açar. Yaygın hatalar:

  • en-US yerine en_US (alt çizgi vs kısa çizgi)
  • zh-Hans (Basitleştirilmiş) veya zh-Hant (Geleneksel) demek istediğinizde zh
  • pt-PT (Portekiz) ile pt-BR'yi (Brezilya) ayırt etmeniz gerektiğinde pt
  • İki harfli ISO 639-1 kodu (zh, de) yerine üç harfli ISO 639-2 kodu (zho, deu) kullanmak

Google'ın belgeleri dil kodları için ISO 639-1 ve ülke kodları için ISO 3166-1 alpha-2 belirtir. İki harfli ISO 639-1 kodunun bulunmadığı az sayıda istisna vardır; ancak neredeyse tüm uluslararası web sitelerinin kapsadığı diller için iki harfli kod doğrudur.

hreflang'ı Yanlış Kanonik Etiketlerle Karıştırma

Bir sayfadaki kanonik etiketiniz hreflang kendine referansından farklı bir URL'ye işaret ediyorsa, Google çakışmayı hreflang'ı yoksayarak ve bunun yerine kanonikliği kullanarak çözebilir. Kanonik ve hreflang kendine referansı aynı URL'yi göstermelidir.

<!-- WRONG: canonical and hreflang self-reference disagree -->
<link rel="canonical" href="https://example.com/product/" />
<link rel="alternate" hreflang="en" href="https://example.com/en/product/" />

<!-- CORRECT: canonical and self-reference point to the same URL -->
<link rel="canonical" href="https://example.com/en/product/" />
<link rel="alternate" hreflang="en" href="https://example.com/en/product/" />

hreflang'ı Eşdeğer Olmayan Sayfalar İçin Kullanmak

hreflang, iki sayfanın birbirinin çevirisi veya bölgesel varyantı olduğunu bildirir. Gerçekten eşdeğer olmayan sayfaları bağlamak için kullanmak — örneğin, her ikisi de İngilizce olduğu için bir blog yazısını ana sayfaya bağlamak — Google'ın site yapınızı yanlış yorumlamasına neden olur.


Doğrulama Araçları

Google Search Console

Google Search Console'daki Kapsam raporu, hreflang hatalarını doğrudan gösterir. Göreceğiniz yaygın hata türleri:

  • Uygun kanonik etiketli alternatif sayfa: Alternatif sayfanın kendine işaret eden bir kanonik etiketi vardır (doğru davranış, etikete rağmen hata değil).
  • Geri dönüş etiketi eksik: Google bir hreflang bağlantısı buldu ancak hedef sayfa geri bağlantı vermiyor. Bildirilen URL'yi kontrol edin ve eksik geri dönüş etiketini ekleyin.
  • hreflang etiketi yok: Bir sayfa alternatif olarak başvuruluyor ancak kendisi hreflang etiketleri içermiyor.

Search Console'un Uluslararası Hedefleme raporu (Eski Araçlar altında), ccTLD'siz siteler için coğrafi hedef belirlemenize de olanak tanır ve bu da bölgesel hedefleme için hreflang'ı tamamlar.

hreflang Denetleyici Araçları

Birçok üçüncü taraf araç, bir URL'yi tarayarak ve tüm geri dönüş bağlantılarını kontrol ederek hreflang uygulamalarını doğrular:

  • hreflang.org Tag Checker: Bir URL yapıştırarak o sayfada bulunan tüm hreflang açıklamalarını ve her hedef sayfada geri dönüş bağlantısının var olup olmadığını görebilirsiniz.
  • Aleyda Solis'in hreflang Tags Testing Tool: Önde gelen uluslararası SEO uzmanlarından birinin ücretsiz aracı; tek tek URL'leri nokta atışı kontrol etmek için kullanışlıdır.
  • Merkle'ın hreflang Tag Generator: Yapılandırılmış girişten sözdizimsel olarak doğru HTML, HTTP başlığı veya site haritası işaretlemesi oluşturur.

Screaming Frog SEO Spider

Büyük ölçekli denetimler için Screaming Frog SEO Spider, sitenizin tamamını tarar ve bulunan her hreflang açıklamasını, hedef URL'leri ve çift yönlülük gereksiniminin karşılanıp karşılanmadığını gösteren bir rapor üretir. Rapordaki "hreflang" sekmesi, tüm tarama genelinde eksik geri dönüş bağlantılarını, geçersiz dil kodlarını ve uyumsuz kanonikları işaretler. Bu, yüzlerce veya binlerce sayfaya sahip sitelerde yayın öncesi uygulamayı doğrulamak için en pratik araçtır.


SSS

hreflang sıralamaları doğrudan etkiler mi?

Hayır. hreflang Google'a belirli bir kitle için hangi sayfayı sunacağını söyler; ancak sıralama artışı sağlamaz. Yinelenen içerik sorunlarını önler ve doğru sayfanın doğru kitle için rekabet etmesini sağlar; bu da dolaylı olarak tıklama oranlarını ve etkileşim sinyallerini iyileştirebilir.

Tek dilli ama birden fazla ülke sürümü olan bir sitede hreflang kullanabilir miyim?

Evet. ABD, İngiltere ve Avustralya'daki İngilizce konuşanlar için gerçekten farklı içeriğe (fiyatlandırma, yasal metin, ürün kullanılabilirliği) sahip ayrı sayfalarınız varsa, en-US, en-GB ve en-AU etiketleri kullanmak doğrudur. İçerik özdeşse, ayrı URL'leri yönetmek minimal fayda karşısında karmaşıklık ekler — bunun yerine Google Search Console'un Uluslararası Hedefleme aracı aracılığıyla coğrafi hedeflemeyi düşünün.

Google hreflang değişikliklerini işlemek için ne kadar bekler?

Google, hreflang açıklamalarını normal tarama döngüsünde işler. Çoğu site için bu, değişikliklerin tam olarak yansıması birkaç günden birkaç haftaya kadar sürebilir anlamına gelir. Search Console üzerinden güncellenmiş bir XML site haritası göndermek, Googlebot'a içeriğin değiştiğini bildirerek süreci hızlandırır.

hreflang'ı her sayfada mı, yoksa yalnızca önemli sayfalarda mı kullanmalıyım?

Uluslararası SEO için hreflang, çevrilmiş varyantı olan her sayfaya uygulanmalıdır. Kısmi uygulama tutarsızlıklara yol açar: Google kümedeki bazı URL'leri işleyip diğerlerini görmezden gelebilir; bu da hangi varyantın hangi kitle için gösterileceği konusunda öngörülemeyen davranışlara neden olur.

hreflang hatalarım varsa ve hiçbir şey yapmazsam ne olur?

Google, hatalı veya eksik hreflang açıklamalarını yokmuş gibi değerlendirir ve hangi sayfayı göstereceğini belirlemek için kendi sinyallerine geri döner. Benzer dilli içerikle birden fazla ülkeyi hedefleyen siteler için bu, genellikle arama sonuçlarında yanlış bölgesel varyantın görünmesi ya da sıralama sinyallerinin URL'ler arasında birleştirilmek yerine bölünmesi anlamına gelir.


Sonuç

hreflang etiketleri, uluslararası siteler için teknik açıdan en zorlu SEO gereksinimlerinden biridir — tek başına etiket karmaşık olmadığı için değil, uygulamanın her sayfa, her varyant ve seçtiğiniz her yöntem genelinde tutarlı olması gerektiği için. Tek bir bozuk geri dönüş bağlantısı ya da bir eksik kendine referans, uluslararası hedeflemenizin bir bölümünü sessizce geçersiz kılabilir.

Sağlam bir uygulama için pratik kontrol listesi kısadır: BCP 47 dil kodlarını kısa çizgilerle kullanın, her zaman kendine referans ekleyin, her zaman çift yönlü bağlantıları koruyun, kanonik etiketlerinizi hreflang kendine referanslarınızla hizalayın ve yayın öncesi Screaming Frog ile Search Console ile doğrulayın.

Yeni projeler için en az dirençli yol, hreflang çıktısını i18n yönlendirmesinin bir parçası olarak otomatik olarak oluşturan bir framework veya platform seçmek — ve ardından çıktıyı elle yönetmek yerine doğrulamaktır. Mevcut siteler için XML site haritası uygulaması genellikle en düşük sürtünmeli geri dönüşüm yoludur.


Kaynaklar

Comments

Loading comments...