Büyük Ölçekte Hreflang Nasıl Denetlenir?
Büyük sitede hreflang denetimi için tekrarlanabilir, araç destekli süreç: üç uygulama yönteminden tüm bildirimleri toplama, küme grafikleri ve karşılıklı eşleme matrislerini okuma, düzeltmeleri sıklığa değil zarara göre önceliklendirme.
Bu sayfada 1 kanıt sinyali
- İlgili canlı araç returntag - hreflang checker
Büyük ölçekte hreflang denetimi, etiket değil grafik doğrulama problemidir. Bir sayfada etiket olup olmadığını değil, kümedeki her sayfanın diğer her sayfaya geri işaret edip etmediğini kontrol edersiniz. Tarayıcı araçla üç uygulama yerinden — HTML head, HTTP başlıkları, XML site haritası — bütün bildirimleri toplayın. Google doğrulayıcı sunmaz; GSC Uluslararası Hedefleme raporu 22 Eylül 2022'de kaldırıldı. Ardından karşılıklı etiket matrisini oluşturun. Ücretsiz dönüş etiketi grafiğim ve matrisimle kümeyi görsel olarak örnekleyin veya tam site kapsamı için Ahrefs Site Audit ve Screaming Frog kullanın. Zarara göre önceliklendirin: önce eksik dönüş etiketleri — bütün çifti bozar —, sonra yanlış dil/bölge kodları ve canonical olmayan hedefler, en son eksik x-default; %56,3 ile en yaygın ama en az zararlı sorundur. Brighton SEO 2023'teki 374 756 alan adlı çalışmamda, hreflang kullananların %67'sinden fazlasında en az bir hata vardı.
TL;DR — Hreflang’i “büyük ölçekte” denetlemek, sayfalara münferit olarak bakmak yerine sitenin tüm hreflang yapısını bağlantılı bir ağ olarak kontrol etmektir. Hreflang eşleşen çiftlerle çalışır: A sayfası B’yi gösteriyorsa B de A’yı göstermelidir; aksi hâlde Google o çiftin tamamını yok sayar. Tek sayfalık kontrol eksik dönüş bağlantısını asla yakalayamaz. Bu yüzden her sayfayı okuyup kimin kimi gösterdiğini haritalayan bir crawler gerekir. Önce eksik dönüş bağlantılarını düzeltin; her aracın uyardığı eksik x-default bekleyebilir.
“Her seferinde bir sayfa” yaklaşımı neden çalışmaz?
Almanca sayfanızın kaynağını görüntüleyip düzenli bir hreflang etiket bloğu görürseniz her şey yolunda sanabilirsiniz. Ancak hreflang yalnızca gösterdiği sayfalar geri bağlantı verirse çalışır. Almanca sayfanız kusursuz olduğu hâlde, işaret ettiği İngilizce sayfa onu geri göstermeyi unutmuş olabilir. Bunu yalnızca Almanca sayfadan göremezsiniz; İngilizce, Fransızca ve diğer tüm sürümleri açıp elle çapraz kontrol etmeniz gerekir. On sayfalık sitede mümkün, on bin sayfalık sitede imkânsızdır.
“Büyük ölçekte hreflang denetimi”nin ayrı bir uzmanlık olmasının nedeni budur: etiketleri değil ilişkileri kontrol edersiniz. Bir araç her sayfayı tarar, tüm hreflang bildirimlerini kaydeder ve önemli tek soruyu sorar: Bu gruptaki her sayfa diğer tüm sayfaları iki yönde de gösteriyor mu?
Bu iddiaya ilişkin kanıt A hreflang audit must verify return links because Google says non-reciprocal annotations may be ignored or interpreted incorrectly. Kapsam: Google Search hreflang reciprocity guidance; impact is stated as possible, not guaranteed cluster-wide invalidation. Güven düzeyi: yüksek · Doğrulandı: Google: Hreflang guidelinesGerçekte neye ihtiyacınız var?
Üç şeye:
- Bir crawler. Google bir hreflang doğrulayıcısı sunmaz; bunların bir kısmını işaretleyen eski Search Console raporu da 2022’de kaldırıldı. Her şeyi tek yerde toplamak için Ahrefs Site Audit veya Screaming Frog gibi üçüncü taraf crawler’lara ihtiyaç duyarsınız. Bu iddiaya ilişkin kanıt A complete audit needs to inspect HTML, HTTP Link headers, and XML sitemaps because Google supports hreflang in all three locations. Kapsam: Google Search-supported hreflang delivery methods. Güven düzeyi: yüksek · Doğrulandı: Google: Localized versions
- Karşılıklılık kontrolü. Her iki araç da kimin kimi gösterdiğini haritalar ve tek yönlü bağlantıları işaretler. Bu tek yönlü bağlantılar “eksik dönüş etiketleri” olarak adlandırılır ve gerçekten önemli hatalardır.
- Bir öncelik sırası. Yüzlerce sorun bulabilirsiniz. Önce çiftleri bozan eksik dönüş bağlantılarını, ardından yanlış ülke/dil kodlarını düzeltin. En yaygın ama en az zararlı uyarı olan eksik x-default’u sona bırakın.
Hatırlanacak tek şey
Hreflang kullanan sitelerin çoğunda hata vardır. 2023 Brighton SEO çalışmamda 374 756 alan adını incelediğimde, hreflang kullananların %67’sinden fazlasında en az bir hata vardı. İlk taramanız kırmızı uyarılarla dolarsa paniğe kapılmayın; bu normaldir. Amaç sıfır hataya ulaşmak değil, hangi hataların gerçekten trafik kaybettirdiğini bilip önce onları düzeltmektir.
URL yapısı, coğrafi yönlendirmeler, içerik kalitesi ve ülke performansını da kapsayan daha geniş inceleme için Uluslararası SEO Denetimi yazısına bakın. Hreflang’in ne olduğu ve nasıl uygulanacağı için Hreflang rehberiyle başlayın. Karşılıklı etiket matrisi, küme grafiği açıklaması ve Screaming Frog filtrelerini içeren tam büyük ölçekli yöntem için İleri Düzey sekmesine geçin.
Hreflang düzeltmelerini doğrulayın
Karşılıklı küme yeniden testi
Uygulanacak test: Değiştirilen her kümeyi yeniden tarayın; gerçek self ve alternate kenarlarını beklenen dil matrisiyle karşılaştırın. Beklenen sonuç: Her üye kendisini ve amaçlanan tüm alternatifleri gösterir; her kenarın dönüş kenarı vardır. Hatanın anlamı: Düzeltme, kümenin tamamı yerine tek bir şablonu veya sayfayı değiştirmiştir. İzleme aralığı: Dağıtımdan ve sonraki üretim döngüsünden hemen sonra. Geri alma eşiği: Değiştirilen kümede öncelikli diller arasında hâlâ asimetrik çiftler vardır.
Hedef bütünlüğü
Uygulanacak test: Değiştirilen her hreflang hedefini yönlendirmeleri izlemeden
isteyin; durum kodunu, robots yönergelerini ve canonical’ı kaydedin.
Beklenen sonuç: Hedefler doğrudan 200 döndürür, dizine eklenebilir kalır ve
amaçlandığı gibi canonical olur. Hatanın anlamı: Dil haritası eski, yönlendirilen,
engellenen veya birleştirilmiş URL’leri gösteriyordur. İzleme aralığı: Sürüm
doğrulaması ve sonraki tam tarama. Geri alma eşiği: Değerli bir kümenin hedefleri
hata veya beklenmeyen canonical dışı URL döndürür.
Sunum yöntemi tutarlılığı
Uygulanacak test: Değiştirilen URL’lerde HTML, HTTP başlıkları ve XML sitemap’lerde bulunan bildirimleri karşılaştırın. Beklenen sonuç: Yalnızca amaçlanan yöntem vardır veya üretilen tüm yöntemler aynı kümeyi bildirir. Hatanın anlamı: Birden fazla sistem hreflang’i yönetiyor ve birbirinden sapmıştır. İzleme aralığı: Dağıtımdan ve sonraki sitemap yenilemesinden sonra. Geri alma eşiği: Çelişen yöntemler üretim URL’lerinde kalır.
Kod ve kapsam doğrulaması
Uygulanacak test: Değiştirilen her değeri desteklenen dil ve bölge kodlarıyla, ayrıca onaylanmış dil envanteriyle doğrulayın. Beklenen sonuç: Her değer geçerli bir dille başlar ve yalnızca amaçlanan geçerli bir bölge ekler. Hatanın anlamı: Ülke kodu dil olarak kullanılmış, desteklenmeyen pazar sızmış veya büyük/küçük harf ya da biçim üretimi yanlıştır. İzleme aralığı: CI veya dağıtım öncesi QA’da ve üretim taramasında yeniden. Geri alma eşiği: Geçersiz kodlar üretilen bir şablonu veya birden çok kümeyi etkiler.
TL;DR — Büyük ölçekli hreflang denetimi etiket değil, grafik doğrulamasıdır.
- adım: ccTLD/alt alan adı düzeninize göre yapılandırılmış bir crawler ile üç geçerli konumdaki (HTML head, HTTP
Linkbaşlıkları, XML sitemap) tüm bildirimleri alın. GSC bunu yapamaz; International Targeting 22 Eylül 2022’de kaldırıldı ve öncesinde bile kümenin yalnızca canonical üyesini raporluyordu. 2. adım: karşılıklı etiket matrisini kurun; kümedeki her URL’yi diğerleriyle eşleştirip A→B ve B→A bağlantılarını kontrol edin. Odaklı kontrolde returntag küme grafiğimi/matrisimi, site genelinde Ahrefs ve Screaming Frog’u kullanın. 3. adım: eksik dönüş etiketleri, yanlış kodlar, canonical olmayan hedefler ve karışık mutlak/göreli URL’ler olarak sınıflandırın. 4. adım: sıklığa değil zarara göre öncelik verin; önce çifti bozan dönüş etiketleri, sonra kodlar, en son en yaygın (%56,3) ama en az zararlı x-default. 5. adım: bildirilen canonical’a değil, dizine eklenen URL’ye göre yeniden doğrulayın.
Bu yazı, hreflang’i altı denetim alanından biri olarak ele alan geniş kapsamlı Uluslararası SEO Denetimi yazımın hreflang’e özel tamamlayıcısıdır. Burada yalnızca hreflang için büyük ölçekli yöntemi derinleştiriyorum. Temeller, üç uygulama yöntemi ve karşılıklılık kuralı için Hreflang merkezine; varsayılan etiket için x-default yazısına bakın.
Bu iddiaya ilişkin kanıt A complete audit needs to inspect HTML, HTTP Link headers, and XML sitemaps because Google supports hreflang in all three locations. Kapsam: Google Search-supported hreflang delivery methods. Güven düzeyi: yüksek · Doğrulandı: Google: Localized versionsTemel bakış açısı: Bu bir grafik problemidir
Büyük ölçekli denetimi yönetilebilir kılan zihinsel değişim şudur: “Bu sayfada hreflang etiketi var mı?” diye bakmıyorsunuz. “Bu sayfanın kümesindeki her sayfa ona geri bağlantı veriyor mu ve kümedeki her URL 200 döndüren, canonical ve dizine eklenebilir bir sayfa mı?” diye soruyorsunuz.
Bunun nedeni Google’ın kendi belgesidir:
Bu iddiaya ilişkin kanıt A hreflang audit must verify return links because Google says non-reciprocal annotations may be ignored or interpreted incorrectly. Kapsam: Google Search hreflang reciprocity guidance; impact is stated as possible, not guaranteed cluster-wide invalidation. Güven düzeyi: yüksek · Doğrulandı: Google: Hreflang guidelines“If page X links to page Y, page Y must link back to page X. If this is not the case for all pages that use
hreflangannotations, those annotations may be ignored or not interpreted correctly.” (çeviri) “X, Y’ye bağlanıyorsa Y de X’e geri bağlanmalıdır. Bu karşılıklılık hreflang bildirimli tüm sayfalarda sağlanmazsa bildirimler yok sayılabilir veya yanlış yorumlanabilir.”
Bunu dikkatle okuyun. Tek bir eksik dönüş bağlantısı, ilgili bildirimlerin yok sayılmasına veya yanlış yorumlanmasına neden olabilir. Bu yüzden tek sayfalık görünüm hreflang denetimi için yapısal olarak yetersizdir: hata bir sayfada değil, sayfalar arasındaki ilişkide bulunur. Tüm küme üyelerini kaydedip çapraz karşılaştıran bir tarama gerekir.
Kapsam da önemlidir: Yok sayılabilecek bildirimler, büyük kümedeki tüm ilişkiler değil, bozuk çiftteki bildirimlerdir. Bir dönüşü eksik beş sayfalık kümenin diğer tamamlanmış çiftleri genellikle çalışmaya devam eder. Aşağıdaki returntag görüntüsü tam bunu gösterir: dokuz karşılıklı çift sağlam, bir dönüş eksiktir. Tek bozuk kenarın tüm kümeyi yok ettiğini varsaymayın; araç her çifti kontrol ederek hangisinin bozuk olduğunu göstermelidir.
Site büyüdükçe iş zorlaşır; Google da büyük sitelerde hata görülmesini böyle açıklar. Search Off the Record bölümünde Gary Illyes, her birinin kendi URL yapısı olan çok sayıda mülkte kalıp değiştikçe hataların ortaya çıktığını anlattı. Lizzi Sassman da URL’ler yerelleştirilirken senkronizasyon ve yazım hatalarının zorlaştığını ekledi. Bu, farklı yayın kurallarına sahip çoklu ccTLD’li kurumsal düzenin tipik işaretidir. Bu nedenle iyi bir denetim bulguları mülk/alan adı grubuna göre ayırır; hatalar operasyonel olarak orada kümelenir.
1. adım — Site genelindeki tüm hreflang bildirimlerini alın
Hreflang’in bulunduğu üç yer
Google hreflang’i üç eşdeğer konumda kabul eder ve üçünü de kontrol etmelisiniz:
Bu iddiaya ilişkin kanıt A complete audit needs to inspect HTML, HTTP Link headers, and XML sitemaps because Google supports hreflang in all three locations. Kapsam: Google Search-supported hreflang delivery methods. Güven düzeyi: yüksek · Doğrulandı: Google: Localized versions<head>içindeki HTML<link>etiketleri — en yaygın yöntem.- HTTP
Link:yanıt başlıkları — PDF gibi HTML olmayan dosyalar için. - XML sitemap içindeki
xhtml:linkgirdileri — bildirimleri her sayfanın şablonuna koymak yerine tek dosyada merkezileştirdiği için büyük ölçekte yaygındır.
Yalnızca HTML head’i okuyan crawler, başlık veya sitemap üzerinden bildirilen alternatifleri sessizce kaçırır. Bunları bozuk diye işaretlemez; hiç görmez. Bu daha kötüdür, çünkü tam kümesi sitemap’te bulunan sayfada hreflang yok sanırsınız. Tek bir sayıya güvenmeden önce taramayı üç yöntemi de okuyacak şekilde yapılandırın.
Crawler’ı yapınıza göre yapılandırma
- Screaming Frog: Configuration > Spider > Crawl Hreflang seçeneğini etkinleştirin; sitemap ve başlık hreflang’ini de kaynakları verdiğinizde alır. Birbirine referans veren ccTLD/alt alan adlarını Config > CDNs altına ekleyin. Aksi hâlde alanlar arası hreflang bağlantıları bozuk diye işaretlenmek yerine hiç doğrulanmaz. Kurumsal siteler ccTLD kullanmaya daha yatkın olduğu için büyük ölçekte en yaygın kör nokta budur.
- Ahrefs Site Audit: Aynı nedenle kardeş alan adlarının proje kapsamında olduğundan emin olun. Ardından münferit olarak küme grafiklerine geçmeden önce sorun türüne göre büyük ölçekte filtrelemek için Page Explorer aracını kullanın.
GSC bunu neden yapamaz?
İki nedeni var; çoğu kişi ikincisini kaçırır:
- Rapor kaldırıldı. Bazı hreflang sorunlarını gösteren GSC International Targeting raporu kullanımdan kaldırıldı (Ağustos 2022’de duyuruldu; 22 Eylül 2022’den sonra kaldırıldı). Yerine doğrudan bir rapor gelmedi.
- Varken bile yalnızca canonical’ı gösteriyordu. Illyes, Search Off the Record’da Search Console’un yalnızca canonical URL’leri raporladığını açıkladı. Benzer dilli çoğu hreflang kümesinde alternatifler canonical değildir; Google bunları alternatif ayrıntıları tutmadan yinelenenler kümesinde sakladığı için canonical olmayan üyelerde olan biteni göremezdiniz. Bu, GSC’nin hiçbir zaman tam bir hreflang denetim aracı olamamasının yapısal nedenidir; yalnızca “rapor kaldırıldı” meselesi değildir ve crawler öncelikli yaklaşımı doğrudan gerekçelendirir.
Google ayrıca doğrulayıcı sunmaz. Aynı podcast’te Illyes, Google’ın hiç hreflang doğrulayıcısı sağlamadığını; az kullanılan raporlamayı kaldırıp kullanıcıları Aleyda Solis, Bill Hunt ve Merkle gibi haricî araçlara yönlendirdiğini söyledi. Bunu, GSC’nin yapamadığı işte üçüncü taraf crawler kullanma izni sayın; onay saymayın. Google kendi belgelerinde üçüncü taraf hreflang hata ayıklama araçlarını bakım veya kontrolden geçirmediğini açıkça belirtir. Benim aracım dâhil her aracın çıktısı, üzerinde düşünmeniz gereken tanısal kanıttır; resmî karar değildir. Önemli bir bulguyu aracın özetinde bırakmayın; ham HTTP yanıtı, sitemap XML’i veya oluşturulan HTML ile doğrulayın.
2. adım — Karşılıklı etiket matrisini oluşturun
Topladığınız verileri normalleştirin
Matrisi kurmadan önce her şeyi tek biçime getirin. Bildirilen her hreflang ilişkisi için kaynak URL, hedef URL, dil değeri, kaynak yöntemi (HTML head, HTTP başlığı veya sitemap) ve özellikle hedefin durum kodu, yönlendirme zinciri, dizine eklenebilirliği, canonical hedefi ile ham HTML’de mi oluşturulan DOM’da mı görüldüğünü kaydedin. Crawler’lar bunları farklı biçimlerde dışa aktarır. Bağlamı eklenmiş yönlü URL→URL kenarlarına normalleştirme, matrisi ve 3. adımdaki sınıflandırmayı güvenilir kılar.
Matris neyi gösterir?
Kavramsal olarak her küme için satır ve sütunları kümedeki URL’lerden oluşan bir tablo kurarsınız. Her hücre şu evet/hayır sorusunu yanıtlar: Satırdaki URL’den sütundaki URL’ye hreflang bağlantısı var mı? Doğru küme simetriktir: A→B varsa B→A da vardır. Her asimetrik hücre (yalnızca bir yönde bulunan bağlantı) eksik dönüş etiketidir.
Bu tabloyu büyük ölçekte elle kurmazsınız; araçlar kurar. Ancak matrisi zihninizde tutmak araç çıktısını doğru okumanızı sağlar. returntag matrisi grafik olarak çizer ve hücreleri gösterir; Screaming Frog’un “Missing Return Links” filtresi asimetrik hücreleri listeler, Ahrefs Site Audit ise başka bir büyük ölçekli küme görünümü sunar. Aynı ilişki kontrolü, farklı sunum ve tarama kapsamları.
Grafik olarak okuma: returntag küme doğrulayıcım
Odaklı küme kontrolünde ücretsiz returntag aracım, bildirilen dil ilişkilerini
grafik ve karşılıklı matris olarak gösterir. Her dil bir düğüm, her bildirim bir kenardır;
sorun listesi geri bağlantı vermeyen URL’yi belirtir. Aşağıdaki görüntü yalnızca sitemap
çalıştırmasıdır: sitemap bildirimlerini okur, sayfa head etiketlerini veya HTTP Link
başlıklarını bilerek getirmez. Bir sayfanın kümesinde üç kaynağın tamamını görmek için
Page URL modunu kullanın.
Nasıl okunur:
- Temiz küme, her düğümün diğerlerine iki yönde de bağlandığı tam ağdır.
- Tek yönlü kenar, asimetrik hücrenizdir: X, Y’yi gösterir ama Y geri göstermez. Okumak yerine gördüğünüz dönüş etiketi hatası budur.
- Yetim düğüm, kümede görünüp kümeye geri bağlanmayan URL’dir; bağlantısız hreflang URL’sidir.
Pratik kazanç, önceliklendirme hızı ve paydaş iletişimidir. Geliştiriciye soyut tablo satırı vermek yerine tek yönlü ilişkiyi ve tam eksik dönüş hatasını birlikte gösterirsiniz. Yüzlerce veya binlerce kümede tam tarama kapsamı için Ahrefs Site Audit ya da Screaming Frog’u koruyun; returntag belirli kümeyi hızla inceleyip açıklamak içindir.
Tablo olarak okuma: Screaming Frog filtreleri
Screaming Frog’da matris, dönüş bağlantısı verilerini doldurmak için tarama sonrasında Crawl Analysis çalıştırdığınızda filtreler olarak görünür. Bunları 4. adımdaki öncelik sırasına uyan şu sırayla ele alın:
- Missing Return Links — asimetrik hücreler; en öncelikli bulgular.
- Inconsistent Language & Region Return Links — dönüş bağlantısı vardır ama
giden bağlantıdan farklı kod kullanır (A, B’ye
fr-FRderken B, gerçekteen-USolan A’yaen-GBder); daha sinsi bir çift bozucudur. - Non-Canonical Return Links — dönüş bağlantısı başka yere canonical olan URL’yi gösterir; etiket bulunsa da sinyal zinciri kırılır.
- Noindex Return Links — dönüş hedefi noindex’tir, bildirimi taşıyamaz.
- Non-200 Hreflang URLs — hedef bir yönlendirme veya hata sayfasıdır.
- Unlinked Hreflang URLs ve Incorrect Language & Region Codes — yetim düğümler ve kod doğrulama hataları.
Tüm kümeyi Reports > Hreflang üzerinden dışa aktarın. Özet düzeyindeki tüm filtreleri açıklayan Screaming Frog hreflang rehberi mükemmeldir; yapılandırma adımlarını burada yinelemiyorum.
3. adım — Bulguları dört hata düzenine ayırın
Tarama çıktısı gürültülü olacaktır. Her bulguyu, 374 756 alan adlı çalışmada tekrarlanan dört gruptan birine koyun. Öncelik savını destekleyen iki sayıyı kullanıyorum; dokuz hata türünün tamamı zaten Uluslararası SEO Denetimi yazısındadır.
1. Eksik dönüş etiketleri — çifti bozan hata
Matrisinizdeki asimetrik hücrelerdir. Hreflang kullanan alan adlarının %15,3’ünde bulunur. Çalışma yazısında şöyle ifade ettim: “As I mentioned, hreflang tags work in pairs. If both pages don’t reference each other, they can’t establish the connection and swap properly in the search results.” (çeviri) “Hreflang etiketleri ikili ilişkiler kurar. İki sayfa birbirini göstermediğinde aralarındaki bağ kurulamaz ve arama sonuçlarında uygun biçimde birbirinin yerine geçemez.” Google belgelerine göre tüm çiftin sinyalini geçersiz kılan kategori budur. En yaygın hata olmasa bile bu yüzden ilk sıradadır.
2. Yanlış dil/bölge kodları — sessizce hoşgörülen hata
Dil için ISO 639-1, bölge için ISO 3166-1 alpha-2 kullanın. Klasik hatalar: Japonca için
ja yerine jp, ja yerine yazım hatası js, gb yerine üç harfli gbr
ve “Latin America” için yanlış kullanılan la (Laos).
Denetime eklenmesi gereken ayrım şudur: Temel dil etiketi standardı BCP 47, Google’ın
hreflang uygulamasının işlediğinden çok daha geniş değerleri kabul eder. Script alt
etiketleri ve BCP 47’ye uygun başka yapılar Google’ın hreflang belgelerinde tanınmış
değerler olarak doğrulanmayabilir. Bir kod BCP 47 bakımından kusursuz biçimlenmiş olup
Google tarafından desteklenmeyebilir. Genel BCP 47 sözdizimine değil, Google’ın
belgelenmiş dil/bölge/x-default kurallarına göre doğrulayın.
Ancak saf önceliklendirmeye karşı önemli nüans vardır: Google bunların bazılarını
sessizce düzeltir, bazılarını düzeltmez. Belge şöyle der: “Google Search ignores that part of the annotation (for example,
using EU, UN, or UK in hreflang annotations doesn’t have an effect on Google
Search).” (çeviri) “Google Arama bildirimin o bölümünü yok sayar; örneğin hreflang bildirimlerinde EU, UN veya UK kullanmanın Google Arama üzerinde etkisi yoktur.”
Dolayısıyla UK fiilen düşürülür (GB kullanmalısınız), ancak bildirimin kalanını
yok etmez. Basitçe yanlış jp ise ja eşleşmesini bozar. Denetim, “teknik olarak
yanlış ama Google işliyor” ile “yanlış ve çifti gerçekten bozuyor” durumlarını ayırmalıdır.
3. Hreflang’deki canonical olmayan URL’ler — görünmez hata
Etiket dışa aktarımında doğru görünüp yine de bozulan düzendir. Pubcon 2019’da vurguladığım temel ayrım: hreflang canonical değil, dizine eklenen sürümle ilgilidir. Hreflang gerçekten dizine eklenenden farklı bir URL’yi gösteriyorsa, etiket “geçerli” olsa bile sinyal zinciri kırılır. Bu ancak tarama dışa aktarımını dizin durumuyla çapraz karşılaştırdığınızda görülür; çoğu rehber hreflang’i dizine ekleme hattının parçası yerine yalıtılmış etiket kontrolü saydığı için bunu atlar. 5. adımda doğrulanır.
Buraya aynı dilde uyum kontrolünü de ekleyin. Birbirine çok benzeyen birkaç URL bir dil için canonical adayı olabiliyorsa Google’ın canonical kılavuzu aynı dildeki (veya en iyi ikame) URL’yi tercih eder ve eksiksiz karşılıklı hreflang kümesindeki sayfaya bir miktar öncelik verir. Hedefleri başka dildeki kopyaya kaydırmayın. Crawler bunu kesin kanıtlayamaz; yalnızca yapılandırılmış sinyalleri gösterir, Google’ın nihai seçimini değil. Tarama çıktısını doğrulama değil, tanısal kanıt sayın.
Bu iddiaya ilişkin kanıt Audit canonical targets for same-language or best-substitute alignment and compare reciprocal hreflang-cluster membership, because Google documents a cluster preference among otherwise similar URLs. Kapsam: localized HTML pages, HTTP headers, XML sitemaps and search systems as applicable Güven düzeyi: yüksek · Doğrulandı: How to specify a canonical URL with rel=canonical and other methods4. Karışık mutlak/göreli URL’ler — şablon hatası
Google açıkça şöyle der: “Alternate URLs must be fully-qualified, including the transport
method (http/https), so: https://example.com/foo, not //example.com/foo or
/foo.” (çeviri) “Alternatif URL’ler taşıma yöntemiyle (http/https) birlikte tam nitelikli olmalıdır; yani https://example.com/foo kullanılmalı, //example.com/foo veya /foo kullanılmamalıdır.”
Büyük ölçekte bu genellikle tek yazım hatası değil, kısmi URL kalıbından üretildiği için
binlerce URL’yi etkileyen şablon hatasıdır. Crawler’ların sistemik sorun olarak
işaretlemesinin nedeni budur: birini bulduğunuzda çoğunlukla tüm şablonu bulursunuz.
4. adım — Öncelik: Önce dönüş etiketleri, sonra kodlar, en son x-default
Bu yazının en önemli fikri: Hata önem derecesi, hata sıklığıyla orantılı değildir. Bulguları aracın döndürdüğü satır sayısına değil, zarara göre sıralayın.
| Kademe | Hata düzeni | Neden burada? |
|---|---|---|
| 1 — önce düzelt | Eksik dönüş etiketleri; tutarsız dönüş bağlantısı kodları | Google belgelerine göre tüm çiftin sinyalini bozar; en yüksek zarar. |
| 2 — sonra düzelt | Google’ın sessizce düzeltmediği yanlış kodlar (jp→ja); canonical olmayan/bozuk hedefler | Tekil ilişkileri bozar; bazıları sessizce işlenir, bazıları işlenmez. |
| 3 — toplu düzelt | Karışık mutlak/göreli URL’ler, eksik self-reference | Gerçek ve genellikle şablon geneli temizlik sorunlarıdır; her zaman kümeyi bozmaz. |
| 4 — en son | Eksik x-default | En yaygın, en az zararlı. |
x-default’un her yerde olmasına rağmen sona kalmasının nedeni, tüm çalışmalarda en yaygın bulgu olmasıdır: 374 756 alan adlı çalışmamda %56,3, Dan Taylor’ın bağımsız 18 786 alan adlı SALT.agency çalışmasında %47,95. Ölçekleri farklı iki çalışma aynı sonucu veriyor: çoğu sitede yok. Ancak çalışmada yazdığım gibi: “Setting an x-default is not required. But it is recommended if you need a fallback page for users whose language settings don’t match any of your localized versions.” (çeviri) “x-default ayarlamak zorunlu değildir; ancak dil ayarları yerelleştirilmiş sürümlerinizle eşleşmeyen kullanıcılar için yedek sayfaya ihtiyacınız varsa önerilir.” Google ekibi bunu dizine ekleme için kritik sinyal değil, kullanıcı deneyimi yedeği sayar. Illyes, eşleşen dil olmadığında yedek sayfayı bildirdiğini ve bunun özel seçici yerine başka dilde bir sayfa da olabileceğini anlattı. Düzeltin, ancak kümeyi gerçekten bozan sorunlardan sonra.
Self-reference aynı nedenle 3. kademededir. Google’ın hreflang uygulamasında çalışan Illyes bile neden zorunlu olduğunu tam hatırlamadığını ve kümelerin onsuz da çalışacağından oldukça emin olduğunu söyledi; bunu esas olarak aynı bloğu her yere kopyalayıp yapıştırmayı kolaylaştıran kurulum temizliği olarak anlattı. İşlevsel gereklilik değil, uygulama düzenidir.
Yalnızca hreflang değil, uluslararası denetimin altı alanını kapsayan daha geniş etki × emek matrisi için burada yeniden kurmak yerine Uluslararası SEO Denetimi yazısındaki Çerçeveler merceğini kullanın.
5. adım — Taramaya değil, dizine eklenen URL’ye göre yeniden doğrulayın
Taramanız etiketleri doğrular. Etiketin gösterdiği URL’nin Google’ın gerçekten dizine eklediği URL olduğunu doğrulamaz. Hreflang dizine eklenen sürümü izlediği için, başka yere canonical olan, yönlendirilen veya sonraki aşamada noindex olan bir URL’yi gösteren etiket, toplu düzeltmeniz “temiz” raporlasa bile sinyali bozar.
Düzeltmeler yayımlandıktan sonra en değerli kümeleri Search Console’daki URL Inspection ile örnekleyin. Google’ın dizine eklenmiş olarak bildirdiği URL’nin hreflang’in gösterdiği URL ile aynı olduğunu doğrulayın. Düz etiket dışa aktarımında görünmeyen canonical zinciri sapmasını bu adım yakalar. Her URL için değil, tarama tamamlandı dedikten sonra her pazardaki değerli sayfalar için yapın.
Bing hakkında tek satır
Bing Webmaster Tools’un bunları doğrulamasını beklemeyin. Bing hreflang’i Google’dan daha zayıf bir sinyal sayar ve Geo Targeting özelliğini 2020’de kaldırmıştır; onun yerine Content-Language başlığına dayanır. Büyük ölçekli hreflang denetimi esasen Google’a yöneliktir. Bing için Content-Language’i ayrıca kontrol edin; bu konu Uluslararası SEO Denetimi yazısında ele alınır.
Yapay zekâ özeti
İleri Düzey sürümün kısa özeti:
- Bu bir etiket değil, grafik problemidir. Bir sayfada etiket olup olmadığını değil, kümedeki her sayfanın diğerlerine geri bağlantı verip vermediğini kontrol edersiniz. Google’a göre “If page X links to page Y, page Y must link back to page X,” (çeviri) “X sayfası Y’ye bağlantı veriyorsa Y de X’e geri bağlantı vermelidir” aksi hâlde bildirimler yok sayılabilir. Tek eksik dönüş bağlantısı tüm çifti bozabilir.
- 1. adım — her şeyi alın. Hreflang üç yerde bulunur: HTML head, HTTP
Linkbaşlıkları ve XML sitemap. Crawler üçünü de okumalıdır. ccTLD/alt alan adı kardeşlerini yapılandırın (Screaming Frog: Config > CDNs; Ahrefs: proje kapsamı), yoksa alanlar arası bağlantılar doğrulanmaz. GSC bunu yapamaz: International Targeting raporu 22 Eylül 2022’de kaldırıldı ve öncesinde yalnızca kümenin canonical üyesini gösteriyordu. - 2. adım — karşılıklı etiket matrisi. Kümedeki her URL × her URL; asimetrik hücreler eksik dönüş etiketleridir. Odaklı kümeyi returntag grafiği ve matrisiyle, site genelini Ahrefs Site Audit ve Screaming Frog ile inceleyin.
- 3. adım — dört hata düzeni: eksik dönüş etiketleri; yanlış kodlar (Google
UKgibi ayrılmış kodları sessizce yok sayar,jayerinejpgibi hataları değil); canonical olmayan hedefler (hreflang dizine eklenen URL’yi izler); karışık mutlak/göreli URL’ler (büyük ölçekte şablon hatası). - 4. adım — sıklığa değil zarara göre öncelik verin. Önce dönüş etiketleri (çifti bozar), sonra kodlar/bozuk hedefler, en son x-default. Çalışmamda %56,3, SALT.agency çalışmasında %47,95 ile en yaygın olsa da en az zararlıdır ve “zorunlu değildir”.
- 5. adım — dizine eklenen URL’ye göre yeniden doğrulayın. Düzeltmeden sonra URL Inspection kullanın; tarama etiketi doğrular, dizin durumu sapmasını değil.
- Ölçek bağlamı: 374 756 alan adlı Brighton SEO 2023 çalışmamda hreflang kullanan alan adlarının %67’sinden fazlasında en az bir hata vardı. Bing için kısa not: hreflang değil Content-Language’i kontrol edin.
Resmî belgeler
Hreflang denetimi için birincil kaynaklar.
- Sayfanızın yerelleştirilmiş sürümlerini Google’a bildirin — karşılıklı dönüş etiketi gerekliliği, tam nitelikli URL kuralı, ayrılmış kodların işlenmesi ve üç eşdeğer uygulama yöntemi (HTML link etiketleri, HTTP
Linkbaşlıkları, XML sitemap). - International Targeting raporu kullanımdan kaldırıldı — Search Console Yardım — bazı hreflang sorunlarını gösteren ve 22 Eylül 2022’den sonra kaldırılan rapor.
- Çok bölgeli ve çok dilli siteleri yönetme — çok mülklü düzenlerin neden en fazla hreflang hatasını ürettiğine dair URL yapısı bağlamı.
- rel=canonical ve diğer yöntemlerle canonical URL belirtme — 3. adımdaki canonical olmayan hreflang kontrolünün ardındaki aynı dilde canonical tercih kılavuzu.
Bing / Microsoft
- Bing Webmaster Tools yardımı — Bing’in hreflang doğrulama iş akışı yoktur; bunun yerine Content-Language başlığına ağırlık verir ve Geo Targeting’i 2020’de kaldırmıştır.
Kaynaktan alıntılar
Denetim yönteminin dayandığı kayda geçmiş açıklamalar.
Google — karşılıklılık gerekliliği (tüm denetimin omurgası)
- “If page X links to page Y, page Y must link back to page X. If this is not the case for all pages that use
hreflangannotations, those annotations may be ignored or not interpreted correctly.” (çeviri) “X sayfası Y sayfasına bağlantı veriyorsa Y sayfası da X sayfasına geri bağlantı vermelidir. Hreflang bildirimlerini kullanan tüm sayfalarda durum böyle değilse bu bildirimler yok sayılabilir veya doğru yorumlanmayabilir.” — Google Search Central belgeleri. Alıntıya git
Google — tam nitelikli URL’ler (karışık mutlak/göreli düzenin temel nedeni)
- “Alternate URLs must be fully-qualified, including the transport method (http/https), so:
https://example.com/foo, not//example.com/fooor/foo.” (çeviri) “Alternatif URL’ler taşıma yöntemiyle (http/https) birlikte tam nitelikli olmalıdır; yani https://example.com/foo kullanılmalı, //example.com/foo veya /foo kullanılmamalıdır.” — Google Search Central belgeleri. Alıntıya git
Google — ayrılmış kodlar sayfayı bozmak yerine sessizce düşürülür
- “If you use codes that are listed as reserved for something else, Google Search ignores that part of the annotation (for example, using
EU,UN, orUKinhreflangannotations doesn’t have an effect on Google Search).” (çeviri) “Başka bir amaç için ayrılmış kodları kullanırsanız Google Arama bildirimin o bölümünü yok sayar; örneğin hreflang bildirimlerinde EU, UN veya UK kullanmanın Google Arama üzerinde etkisi yoktur.” — Google Search Central belgeleri. Alıntıya git
Patrick Stox — çiftlerin neden belirleyici olduğu (374 756 alan adlı çalışmadan)
-
“As I mentioned, hreflang tags work in pairs. If both pages don’t reference each other, they can’t establish the connection and swap properly in the search results.” (çeviri) “Belirttiğim gibi hreflang etiketleri çiftler hâlinde çalışır. İki sayfa birbirine referans vermezse bağlantı kuramaz ve arama sonuçlarında doğru biçimde yer değiştiremez.” — Hreflang Kullanan Alan Adlarının %67’sinden Fazlasında Sorun Var, Ahrefs
-
“Setting an x-default is not required. But it is recommended if you need a fallback page for users whose language settings don’t match any of your localized versions.” (çeviri) “x-default ayarlamak zorunlu değildir; ancak dil ayarları yerelleştirilmiş sürümlerinizle eşleşmeyen kullanıcılar için yedek sayfaya ihtiyacınız varsa önerilir.” — Hreflang Kullanan Alan Adlarının %67’sinden Fazlasında Sorun Var, Ahrefs
Gary Illyes, Google — GSC’nin hreflang’i neden denetleyemediği ve neden doğrulayıcı bulunmadığı
- Search Off the Record’da Illyes, Search Console’un yalnızca canonical URL’leri raporladığını; alternatiflerin canonical olmadığı birçok kümede canonical olmayan üyelerin görünmediğini açıkladı. Google bunları alternatif ayrıntılarını saklamadan yinelenenler kümesine koyar. Ayrıca Google’ın hiç hreflang doğrulayıcısı sunmadığını, az kullanılan raporu kaldırıp kullanıcıları haricî araçlara yönlendirdiğini söyledi. Bu, transcript’ten özetlenmiştir; kelimesi kelimesine alıntılamadan önce bölüm sayfasından ifadeyi doğrulayın.
Önce hangi bulguyu düzeltmeliyim?
Taramayı çalıştırdınız ve kırmızı uyarılarla karşı karşıyasınız. Her bulguyu şu sıradan geçirin:
-
Dönüş bağlantısı eksik veya kodu tutarsız mı (asimetrik hücre)? → Evet → 1. kademe. Hemen düzeltin. Google belgelerine göre tüm çifti bozar. Diğer her şey bekler. → Hayır → devam edin.
-
Hreflang 200 döndürmeyen, yönlendirilen, noindex veya canonical olmayan URL’yi mi gösteriyor? → Evet → 2. kademe. Sonra düzeltin. Hedef bildirimi taşıyamaz. Canonical olmayan hedefte yalnızca canonical etiketi değil, dizine eklenen URL’yi (URL Inspection) doğrulayın. → Hayır → devam edin.
-
Dil/bölge kodu yanlış mı? → Google’ın sessizce yok saydığı ayrılmış kod mu (
UK,EU,UN)? → Evet → düşük öncelik. Google yalnızca o bölümü düşürür; acil durum olarak değil, doğruluk için düzeltin. → Eşleşmeyi bozan gerçekten yanlış kod mu (jayerinejp,jsyazım hatası, üç harfligbr)? → Evet → 2. kademe. Sonra düzeltin. İlişkiyi bozar. -
Karışık mutlak/göreli URL mi (
//example.com/…veya/…)? → Evet → 3. kademe; ancak şablonu kontrol edin. Neredeyse her zaman site genelindeki şablon hatasıdır; bir örnek binlercesi demektir. Şablonda düzeltip kalanını toplu işleyin. -
Self-reference veya x-default eksik mi? → Evet → 4. kademe. En son. Gerçek temizlik sorunudur, kümeyi bozmaz. x-default “önerilir, zorunlu değildir”; self-reference kopyala/yapıştır kolaylığıdır. Son temizlik turunda yapın.
Ağacın temel kuralı: Aracın döndürdüğü satır sayısına değil, zarara göre sıralayın. En yaygın hata (x-default), en az zararlı olandır.
SOP: Düzenli hreflang denetimi
Geliştiriciler yerelleştirilmiş şablonları değiştirdiğinde hreflang sessizce bozulabilir. Etkin uluslararası sitelerde bunu aylık veya ilgili her sürümden sonra çalıştırın.
Hazırlık
- Crawler kapsamının ağdaki her mülkü — tüm ccTLD’ler, alt alan adları ve alt klasörler — içerdiğini doğrulayın. Screaming Frog’da kardeşleri Config > CDNs altına ekleyin; Ahrefs Site Audit’te proje kapsamında olduklarını doğrulayın.
- Crawler’ın bildirimlerin üç konumunu da (HTML head, HTTP
Linkbaşlıkları, XML sitemap) okuduğunu doğrulayın. Sitemap tabanlı hreflang kullandığını bildiğiniz bir sayfayla sınayın.
Tarama 3. Hreflang çıkarmayı etkinleştirin (Screaming Frog: Configuration > Spider > Crawl Hreflang) ve taramayı çalıştırın. 4. Dönüş bağlantısı filtrelerinin dolması için tarama sonrası analizi çalıştırın (Screaming Frog: Crawl Analysis). Ahrefs’te Site Audit’in bitmesini bekleyip hreflang sorun kümesini açın.
Önceliklendirme (bu sırayla) 5. 1. kademe — Missing Return Links + Inconsistent Return-Link Codes. Önce bunları dışa aktarın. En çok etkilenen kümeleri returntag grafiği/matrisinde açarak bozuk kenarları açıklayın; site geneli kapsamın kaynağı olarak crawler dışa aktarımını saklayın. 6. 2. kademe — Canonical olmayan/bozuk/noindex hedefler ve gerçekten yanlış kodlar. 7. 3. kademe — Karışık mutlak/göreli URL’ler (şablonda düzeltin), eksik self-reference. 8. 4. kademe — Eksik x-default. En son.
Bölümlendirme 9. Her bulguyu yalnızca hata türüne değil, mülk/alan adına göre gruplayın. Hatalar, URL kalıplarının mülkler arasında değiştiği yerde kümelenir; böylece hangi ekibin şablonunu düzelteceğinizi görürsünüz.
Doğrulama 10. Düzeltmeler yayımlandıktan sonra yeniden tarayın. Ardından hreflang’in canonical dışı URL’yi değil, dizine eklenen URL’yi gösterdiğini doğrulamak için pazar başına değerli sayfaları URL Inspection ile örnekleyin. 11. Zaman içindeki sapmayı görmek için her döngüde hata sayılarını kademeye göre kaydedin.
Hreflang denetimi efsaneleri ve hataları
İnsanları yanlış şeyleri denetlemeye iten somut yanılgılar ve doğru yaklaşım:
1. “Bozuk hreflang ceza getirir; her hata acildir.”
- Neden yanlış: Google bozuk veya asimetrik hreflang’i yok sayar; ceza vermez. Gary Illyes, yanlış uygulamanın siteye zarar vermeyeceğini, Google’ın yalnızca yok sayacağını söyledi (Search Engine Roundtable; Search Engine Journal). Maliyet sıralama cezası değil, kaçırılmış fırsattır: yanlış dilde sayfalar ve pazar yamyamlaşması.
- Bunun yerine: Olmayan cezadan korkuya göre değil, küme başına trafik/gelir kaybına göre öncelik verin.
2. “Eksik x-default en yaygın hatadır; önce onu düzeltin.”
- Neden yanlış: Sıklık ve önem farklı eksenlerdir. x-default çalışmamda %56,3, SALT.agency çalışmasında %47,95 ile en yaygın bulgudur; ancak “önerilir, zorunlu değildir” ve küme için kritik sinyal değil, kullanıcı deneyimi yedeğidir.
- Bunun yerine: x-default’u sona koyun. Önce tüm çiftleri bozan eksik dönüş etiketlerini düzeltin.
3. “Self-reference etiketleri zorunludur; her eksiği kritik sayın.”
- Neden yanlış: Google’ın hreflang uygulamasında çalışan Illyes bile neden gerekli olduğundan emin olmadığını, kümelerin onsuz çalışacağına inandığını söyledi; asıl yararı kopyala/yapıştır kolaylığıdır.
- Bunun yerine: Self-reference’ı dönüş etiketi ve kod hatalarından önce değil, son temizlik turunda (3–4. kademe) düzeltin.
4. “html lang özelliği Google’ın kontrol ettiği dil sinyalidir; hreflang ile
birlikte denetleyin.”
- Neden yanlış: Search Off the Record’da sorulduğunda Illyes hayır dedi. Bu değer CMS şablonlarına varsayılan gömüldüğü için güvenilmez; Google dili görünür içerikten algılar.
- Bunun yerine:
html langdeğerini erişilebilirlik ve diğer motorlar için doğru tutun; ancak hreflang-languyuşmazlığını gerçek dönüş etiketi hatasının önüne koymayın.
5. “GSC raporu yoksa ücretli crawler olmadan denetim yapamam.”
- Neden yanlış: Elle view-source örneklemesi ve ücretsiz/freemium doğrulayıcılar (Aleyda Solis, Bill Hunt, Merkle; Illyes’in çalıştığını bildiği araçlar) küçük sitelerde yeterlidir. Google bunların bakımını veya kontrolünü yapmadığını açıkça belirtir. Crawler’ı gerektiren GSC’nin yokluğu değil, ölçektir.
- Bunun yerine: Aracı site boyutuna uydurun. Küçük siteleri elle örnekleyin; crawler’ı kümeleri elle kontrol etmenin gerçekten imkânsız olduğu sitelere ayırın.
6. “Hreflang dışa aktarımım temiz; her şey yolunda.”
- Neden yanlış: Temiz etiket dışa aktarımı hedeflerin dizine eklendiği anlamına gelmez. Hreflang canonical’ı değil, dizine eklenen URL’yi izler. Canonical dışı veya noindex URL’yi gösteren etiket geçerli görünse de bozulur.
- Bunun yerine: Etiket turundan sonra en önemli kümeleri dizin durumuyla (URL Inspection) çapraz karşılaştırın.
Önce / sonra: Dört hata düzenini okumak
Her hata düzeni ve düzeltmesi için kısa, somut örnekler. (İşaretleme örnek amaçlıdır.)
1. Eksik dönüş etiketi (çifti bozan hata)
Önce — ABD sayfası Birleşik Krallık sayfasını gösteriyor, ancak Birleşik Krallık sayfası geri bağlantı vermiyor:
<!-- https://example.com/us/ (present) -->
<link rel="alternate" hreflang="en-US" href="https://example.com/us/" />
<link rel="alternate" hreflang="en-GB" href="https://example.com/uk/" />
<!-- https://example.com/uk/ (BROKEN — no link back to /us/) -->
<link rel="alternate" hreflang="en-GB" href="https://example.com/uk/" />Sonra — Birleşik Krallık sayfası ABD sayfasını geri gösterdiği için çift simetriktir:
<!-- https://example.com/uk/ (fixed) -->
<link rel="alternate" hreflang="en-US" href="https://example.com/us/" />
<link rel="alternate" hreflang="en-GB" href="https://example.com/uk/" />2. Yanlış dil/bölge kodu
Önce — jp ülke kodudur, Japoncanın dil kodu değildir; en-UK geçerli değildir:
<link rel="alternate" hreflang="jp" href="https://example.com/jp/" />
<link rel="alternate" hreflang="en-UK" href="https://example.com/uk/" />Sonra — ISO 639-1 dil kodu (ja) ve ISO 3166-1 alpha-2 bölge kodu (UK değil GB):
<link rel="alternate" hreflang="ja" href="https://example.com/jp/" />
<link rel="alternate" hreflang="en-GB" href="https://example.com/uk/" />3. Karışık mutlak/göreli URL’ler (büyük ölçekli şablon hatası)
Önce — protokole göreli ve köke göreli URL’ler; Google tam nitelikli URL ister:
<link rel="alternate" hreflang="fr-FR" href="//example.com/fr/" />
<link rel="alternate" hreflang="de-DE" href="/de/" />Sonra — taşıma yöntemi dâhil tam nitelikli URL’ler:
<link rel="alternate" hreflang="fr-FR" href="https://example.com/fr/" />
<link rel="alternate" hreflang="de-DE" href="https://example.com/de/" />4. Canonical olmayan hedef (geçerli görünür, yine de bozulur)
Önce — hreflang, dizine eklenen sürümden başka bir URL’ye canonical olan hedefi gösteriyor:
<!-- hreflang points here… -->
<link rel="alternate" hreflang="es-ES" href="https://example.com/es/producto?ref=nav" />
<!-- …but /es/producto?ref=nav has: <link rel="canonical" href="https://example.com/es/producto"> -->Sonra — hreflang canonical/dizine eklenen URL’yi gösterir ve sinyal zinciri korunur:
<link rel="alternate" hreflang="es-ES" href="https://example.com/es/producto" />- örneğin püf noktası: Bunu yalnızca etiketten göremezsiniz. Düzelmiş saymadan önce dizine eklenen URL’yi URL Inspection ile doğrulayın.
Hreflang’i kendiniz alma ve kontrol etme
Örnek kontroller, geçici veri çıkarma ve sonraki tam taramadan önce düzeltmeyi doğrulamak için. Büyük ölçekte doğruluk kaynağınız hâlâ crawler’dır; bunlar ara kontroller içindir.
Chrome DevTools Console — geçerli sayfadaki tüm hreflang bildirimlerini çıkarın
Bildirimleri listelemek ve protokole/köke göreli URL’leri işaretlemek için herhangi bir sayfada Console’a yapıştırın:
[...document.querySelectorAll('link[rel="alternate"][hreflang]')]
.map(l => {
const href = l.getAttribute('href');
const bad = /^\/\//.test(href) || /^\/(?!\/)/.test(href);
return `${l.hreflang}\t${href}${bad ? '\t⚠ not fully-qualified' : ''}`;
})
.join('\n') || 'No HTML hreflang tags on this page (check headers / sitemap).';“No HTML hreflang tags” yazdırırsa sayfa hreflang’i HTTP başlığı veya sitemap ile sunuyor olabilir. Console yalnızca DOM’u görür; diğerlerini ayrı kontrol edin.
Bookmarklet — kümede tek tıklamalı karşılıklılık örneklemesi
Geçerli sayfanın belirttiği her alternatifi alır ve hangisinin geri bağlantı vermediğini raporlar. Tarayıcı CORS’u nedeniyle yalnızca aynı origin’de çalışır; ccTLD’ler arası çiftler crawler gerektirir.
javascript:(async()=>{const base=location.href.split('#')[0];const alts=[...document.querySelectorAll('link[rel="alternate"][hreflang]')].map(l=>({lang:l.hreflang,href:l.href})).filter(a=>a.lang!=='x-default');const out=[];for(const a of alts){try{const html=await(await fetch(a.href)).text();const back=/hreflang=["'][^"']*["']\s+href=["']([^"']+)["']/gi;let m,found=false;while((m=back.exec(html))){if(m[1].split('#')[0].replace(/\/$/,'')===base.replace(/\/$/,'')){found=true;break;}}out.push(`${found?'✓':'✗ MISSING RETURN'} ${a.lang} ${a.href}`);}catch(e){out.push(`? ${a.lang} ${a.href} (fetch blocked — cross-origin)`);}}alert(out.join('\n'));})();grep / regex — kaydedilmiş sitemap veya HTML dökümünden hreflang çıkarın
İndirilmiş XML sitemap veya tarama HTML dışa aktarımındaki tüm bildirimleri alın:
# From an XML sitemap using xhtml:link hreflang
grep -oE 'hreflang="[^"]+"[^>]*href="[^"]+"' sitemap.xml
# From a directory of saved HTML pages — list hreflang value + href per file
grep -rhoE '<link[^>]*hreflang="[^"]+"[^>]*>' ./pages/ \
| grep -oE 'hreflang="[^"]+"|href="[^"]+"'Python — Screaming Frog dışa aktarımından karşılıklılık matrisi oluşturun
Kaynak URL, hreflang değeri ve hedef URL sütunlarına sahip Screaming Frog
hreflang_all.csv benzeri dışa aktarımı tek yönlü (eksik dönüşlü) çiftlere dönüştürün:
import csv
from collections import defaultdict
links = defaultdict(set) # source -> set of targets it points to
with open("hreflang_export.csv", newline="", encoding="utf-8") as f:
for row in csv.DictReader(f):
src, tgt = row["Address"].strip(), row["Occurrence URL"].strip()
if src and tgt and src != tgt:
links[src].add(tgt)
missing = [(a, b) for a, targets in links.items()
for b in targets
if a not in links.get(b, set())]
print(f"{len(missing)} one-way (missing-return) pairs:")
for a, b in missing[:50]:
print(f" {a} -> {b} (no return link)")Sütun adlarını kendi dışa aktarımınıza göre ayarlayın. Çıktı, karşılıklı etiket matrisindeki asimetrik hücrelerin tam karşılığıdır: 1. kademe düzeltmeleri.
Büyük ölçekli hreflang denetimi araçları
- returntag (grafik/matris örneklemeleri için birincil). Ücretsiz aracım sayfa veya sitemap kümesini grafik ve karşılıklı matrise dönüştürür, eksik dönüş ilişkilerini ve düzeltmelerini belirtir. Page URL modu sayfa kümesini, Sitemap modu yalnızca sitemap bildirimlerini doğrular. Belirli kümeyi inceleyip anlatmak için kullanın; site geneli taramanın yerine koymayın.
- Ahrefs Site Audit (büyük ölçekte). HTML, başlık ve sitemap’lerden hreflang’i çıkarır, karşılıklılık kontrollerini yapar ve her kümeyi kırık kenarlar kırmızı olacak şekilde ağ grafiği olarak gösterir: URL Details > Hreflangs. Tekil grafiklere geçmeden önce sorun türüne göre filtrelemek için Page Explorer kullanın.
- Screaming Frog SEO Spider. Configuration > Spider > Crawl Hreflang seçeneğini açın; alanlar arası doğrulama için kardeş ccTLD’leri Config > CDNs altına ekleyin; dönüş bağlantısı filtrelerini doldurmak için Crawl Analysis çalıştırın. Missing Return Links, Inconsistent Language & Region Return Links, Non-Canonical Return Links, Noindex Return Links, Non-200 Hreflang URLs ve Unlinked Hreflang URLs filtrelerini Reports > Hreflang üzerinden dışa aktarın. Hreflang rehberleri kesin yapılandırma kaynağıdır.
- Google Search Console — URL Inspection. Toplu denetim için değildir; International Targeting kaldırıldı ve GSC yalnızca canonical üyeyi raporluyordu. Ancak 5. adımda düzeltme sonrası hreflang’in dizine eklenen URL’yi gösterdiğini doğrulamak için gereklidir.
- Küçük siteler ve örnek kontroller için ücretsiz/freemium doğrulayıcılar: Aleyda Solis’in hreflang üretici/test aracı, Bill Hunt ve Merkle araçları. Gary Illyes bunları iyi çalışan araçlar olarak anmıştır; ancak Google üçüncü taraf araçların bakım veya kontrolünü yapmadığını belirtir. Elle kontrol mümkünken kullanın, gerçek ölçekte crawler’a geçin ve sonucu resmî değil tanısal sayın.
- Bing Webmaster Tools: hreflang doğrulaması yoktur; Bing pazarları için Content-Language değerini ayrıca denetleyin.
Zaman ayırmaya değer kaynaklar
İlgili yazılarım
- Hreflang Kullanan Alan Adlarının %67’sinden Fazlasında Sorun Var (374 756 Alan Adı Çalışması) — bugüne kadarki en büyük hreflang çalışması olan Brighton SEO 2023 araştırmam ve bu yöntemin omurgası; hata dağılımı ile dönüş etiketi/x-default sayıları buradan gelir.
- Hreflang: Başlangıç İçin Kolay Rehber — bu yazının bilindiğini varsaydığı temeller için Ahrefs uygulama rehberi.
- Teknik SEO’ya Başlangıç Rehberi — uluslararası sinyallerin geniş teknik resimdeki yeri.
Konuşmalarım
- Hreflang Çalışması ve İlginç Sorunlar — Brighton SEO 2023 (Speaker Deck) — çalışmanın sunum slaytları.
- 374 756 alan adındaki en yaygın hreflang sorunları — Brighton SEO, Eylül 2023 (YouTube) — konuşmanın videosu.
- Uluslararası SEO’nun Tuhaf Teknik Yönleri — Pubcon Vegas 2019 (SlideShare) — 3. ve 5. adımı belirleyen “hreflang canonical’ı değil, dizine eklenen sürümü izler” noktası.
Sektörden
- Sayfanızın yerelleştirilmiş sürümlerini Google’a bildirin — Google’ın karşılıklılık, tam nitelikli URL ve ayrılmış kodlar için temel hreflang kaynağı.
- Google’ın sunum ve hreflang podcast bölümü — Google Arama İlişkileri ekibinin GSC’nin neden yalnızca canonical’ları raporladığına, neden doğrulayıcı bulunmadığına ve çok mülklü büyük sitelerde neden hata oluştuğuna dair açıklaması.
- Hreflang Nasıl Denetlenir ve Test Edilir? (Screaming Frog) — filtre ve yapılandırmaları münferit olarak açıklayan kesin rehber.
- Çalışma: Uluslararası sitelerin %31’inde hreflang hatası var (Search Engine Land) — Dan Taylor / SALT.agency’nin bağımsız 18 786 alan adı çalışması.
- Google, Yanlış Hreflang Uygulamasını Yok Sayacağını Söylüyor (Search Engine Roundtable) — önceliklendirmeyi panikten uzaklaştıran “ceza değil, yok sayma” noktası.
- Google Açıklaması: Yanlış Hreflang Etiketleri SEO’ya Zarar Verebilir mi? (Search Engine Journal) — aynı bulguyu doğrular.
Kendinizi sınayın: Büyük ölçekte hreflang denetimi
Büyük ölçekli yöntem hakkında beş kısa soru. Her biri için bir yanıt seçip kontrol edin.
Değişiklik günlüğü
20 Eyl 2026 tarihinde güncellendi.
Editoryal özet ve kaydedilen değişiklik ayrıntıları.Özet
Applied a bounded AI correction pass to the localized article while preserving the source lock and MDX structure.
Değişiklik ayrıntıları
-
Corrected 1 source-locked block(s); machine-fixed output remains provisional and requires native review.
Tam karşılaştırma kullanılamıyor — bu sürüm için önceki anlık görüntü arşivlenmemiş.
14 Eyl 2026 tarihinde güncellendi.
Editoryal özet ve kaydedilen değişiklik ayrıntıları.Özet
Bağımsız inceleme sonrası Türkçe yüzde yazımı, görünür mercek adı ve asimetrik hücre terimi düzeltildi.
Değişiklik ayrıntıları
-
Yüzdeler Türkçe önekli biçime çevrildi; Frameworks göndermesi Çerçeveler olarak, çalışma zamanı test sorusu da asimetrik hücre olarak düzeltildi.
Tam karşılaştırma kullanılamıyor — bu sürüm için önceki anlık görüntü arşivlenmemiş.
14 Eyl 2026 tarihinde güncellendi.
Editoryal özet ve kaydedilen değişiklik ayrıntıları.Özet
Makalenin tüm güncel lensleri kaynak kilidine göre doğal Türkçeyle yeniden yazıldı; alıntılar, kod, URL'ler, bileşen topolojisi ve yayın kapıları korundu.
Değişiklik ayrıntıları
-
Okuyucuya görünen lens etiketleri yerelleştirildi; istatistiklerde Türkçe sayı biçimi kullanıldı; kaynak alıntılarına bitişik Türkçe karşılıklar eklendi.
Tam karşılaştırma kullanılamıyor — bu sürüm için önceki anlık görüntü arşivlenmemiş.
8 Eyl 2026 tarihinde güncellendi.
Editoryal özet ve kaydedilen değişiklik ayrıntıları.Özet
İşaretlenen açıklayıcı alanlardaki karışık İngilizce-Türkçe metin, kaynakla karşılaştırılarak doğal Türkçeyle yeniden çevrildi; makale gövdesi, çeviri belleği ve bileşenler değiştirilmedi.
Değişiklik ayrıntıları
-
Önce
Büyük ölçekte hreflang denetimiSonraBüyük Ölçekte Hreflang Nasıl Denetlenir? -
Önce
Büyük sitede hreflang denetimi için tekrarlanabilir, araç destekli süreç; üç uygulama yöntemindeki bildirimleri toplama, küme grafikleri ve karşılıklı matrisleri okuma, düzeltmeleri sıklığa değil zarara göre sıralama.SonraBüyük sitede hreflang denetimi için tekrarlanabilir, araç destekli süreç: üç uygulama yönteminden tüm bildirimleri toplama, küme grafikleri ve karşılıklı eşleme matrislerini okuma, düzeltmeleri sıklığa değil zarara göre önceliklendirme. -
Önce
Büyük ölçekte hreflang denetimi etiket değil, grafik doğrulama problemidir. Üç uygulama konumundaki bildirimleri crawler ile toplayın, karşılıklı etiket matrisini kurun, kümeyi returntag ile örnekleyin veya site genelinde Ahrefs Site Audit ve Screaming Frog kullanın. Önce eksik dönüş etiketlerini, sonra yanlış kodları ve canonical olmayan hedefleri, en son x-default'u düzeltin.SonraBüyük ölçekte hreflang denetimi, etiket değil grafik doğrulama problemidir. Bir sayfada etiket olup olmadığını değil, kümedeki her sayfanın diğer her sayfaya geri işaret edip etmediğini kontrol edersiniz. Tarayıcı araçla üç uygulama yerinden — HTML head, HTTP başlıkları, XML site haritası — bütün bildirimleri toplayın. Google doğrulayıcı sunmaz; GSC Uluslararası Hedefleme raporu 22 Eylül 2022'de kaldırıldı. Ardından karşılıklı etiket matrisini oluşturun. Ücretsiz dönüş etiketi grafiğim ve matrisimle kümeyi görsel olarak örnekleyin veya tam site kapsamı için Ahrefs Site Audit ve Screaming Frog kullanın. Zarara göre önceliklendirin: önce eksik dönüş etiketleri — bütün çifti bozar —, sonra yanlış dil/bölge kodları ve canonical olmayan hedefler, en son eksik x-default; %56,3 ile en yaygın ama en az zararlı sorundur. Brighton SEO 2023'teki 374 756 alan adlı çalışmamda, hreflang kullananların %67'sinden fazlasında en az bir hata vardı.
Tam karşılaştırma kullanılamıyor — bu sürüm için önceki anlık görüntü arşivlenmemiş.
8 Ağu 2026 tarihinde güncellendi.
Editoryal özet ve kaydedilen değişiklik ayrıntıları.Özet
Türkçe kaynak-kilitli Luna revizyonu üretildi; MDX topolojisi, URL’ler, teknik belirteçler, kanıt sınırları ve geçici yayın kapısı korundu.
Değişiklik ayrıntıları
-
Yapay zekâ tarafından üretilmiş geçici yerelleştirme; ana dil incelemesi, somutlaştırılmış QA ve yayın kapalı kalır.
Tam karşılaştırma kullanılamıyor — bu sürüm için önceki anlık görüntü arşivlenmemiş.
8 Ağu 2026 tarihinde güncellendi.
Editoryal özet ve kaydedilen değişiklik ayrıntıları.Özet
Türkçe kaynak-kilitli Luna revizyonu üretildi; MDX topolojisi, URL’ler, teknik belirteçler, kanıt sınırları ve geçici yayın kapısı korundu.
Değişiklik ayrıntıları
-
Yapay zekâ tarafından üretilmiş geçici yerelleştirme; ana dil incelemesi, somutlaştırılmış QA ve yayın kapalı kalır.
Tam karşılaştırma kullanılamıyor — bu sürüm için önceki anlık görüntü arşivlenmemiş.
25 Tem 2026 tarihinde güncellendi.
Editoryal özet ve kaydedilen değişiklik ayrıntıları.Özet
Eski araç adları returntag ve Scout Site Audit Free'nin güncel görünen adlarıyla eşleştirildi.
Değişiklik ayrıntıları
-
Bağlantılı araç adları güncel herkese açık etiketleriyle eşleştirildi.
Tam karşılaştırma kullanılamıyor — bu sürüm için önceki anlık görüntü arşivlenmemiş.
18 Tem 2026 tarihinde güncellendi.
Editoryal özet ve kaydedilen değişiklik ayrıntıları.Özet
Denetim yöntemi Google'ın kendi belgeleriyle sıkılaştırıldı: karşılıklılık hatası tüm küme yerine ilgili çiftle sınırlandı; Google'ın desteklediği hreflang kodları genel BCP 47 geçerliliğinden ayrıldı; matris öncesi normalleştirilmiş veri çıkarma şeması eklendi; canonical olmayan hedef kontrolleri Google'ın canonical tercih kılavuzuna bağlandı; üçüncü taraf hreflang araçlarının Google tarafından bakım veya kontrolden geçirilmediği uyarısı eklendi.
Değişiklik ayrıntıları
-
Eksik dönüş bağlantısının kümedeki tüm ilişkileri değil, yalnızca ilgili çiftin bildirimlerini etkilediği açıklandı.
-
Yanlış kodlar bölümüne BCP 47 geçerliliği ile Google'ın desteklediği değerler arasındaki ayrım eklendi.
-
Matris kurmadan önce dil, canonical, durum, yönlendirme, dizine eklenebilirlik, ham/oluşturulmuş görünüm ve kaynak yöntemini normalleştirme adımı eklendi.
-
Canonical olmayan hreflang kontrolü Google'ın aynı dilde canonical tercih kılavuzuna bağlandı; tarama çıktısının Google'ın nihai seçiminin kanıtı değil, tanısal veri olduğu belirtildi.
-
Google'ın üçüncü taraf hreflang hata ayıklama araçlarının bakım veya kontrolünü yapmadığı uyarısı ve ham kaynakla doğrulama adımı İleri Düzey, Araçlar ve Kaçınılacak Yaklaşımlar lenslerine eklendi.
Tam karşılaştırma kullanılamıyor — bu sürüm için önceki anlık görüntü arşivlenmemiş.