AMP (Accelerated Mobile Pages) sayfalar bir dönem mobil arama deneyiminin merkezine oturdu; Google, bu sayfaları öncelikli olarak indeksliyor ve SERP'te özel bir biçimde sunuyordu. Çok dilli bir sitede AMP kullanımı teknik açıdan zaten karmaşık bir süreçtir. Buna hreflang katmanını eklediğinizde, yani her dil sürümünün hem AMP hem de canonical versiyonunu yönetmeniz gerektiğinde, iki ayrı teknik gereksinimin birbiriyle nasıl çakıştığını anlamak zorunlu hale gelir.
Pek çok site bu konuyu geç fark eder: hreflang etiketleri AMP sayfaya eklenmemiş ya da AMP ile canonical sürüm birbirini yanlış işaret ediyor; hreflang hata tespiti bu çifti ayrı bir madde olarak okumalıdır. Sonuç, Google'ın hangi sayfayı hangi dil-ülke hedefine eşleyeceğini kestiremediği karışık bir sinyal tablosudur. Bu karışıklık indeks kayıplarına, yanlış dil sürümü sunumuna veya her ikisine birden yol açabilir.
AMP sayfada hreflang yoksa veya AMP ile canonical birbirini yanlış işaret ediyorsa Google dil-ülke eşlemesini kendi çıkarımına bırakır. Sık hata bu iki kümenin karışmasıdır: AMP hreflang'ı canonical URL'ye, canonical hreflang'ı AMP URL'ye bakar. Sinyal düzeyinde sonuç tek bir bozuk etiketten ağırdır; kümenin iki yarısı çelişir.
AMP sayfanın canonical ile ilişkisi temel çerçeveyi belirler
AMP mimarisinde her AMP sayfanın bir canonical karşılığı vardır. AMP sayfada şu etiket bulunur:
<link rel="canonical" href="https://example.com/tr/makale/">
Canonical sayfada ise AMP'e işaret eden amphtml etiketi:
<link rel="amphtml" href="https://example.com/tr/makale/amp/">
Bu çift yönlü işaret, Google'ın iki sayfayı aynı içeriğin farklı sunumları olarak görmesini sağlar; ilişki canonical ile hreflang sırasına bağlı kalır. Google genellikle canonical sürümü dizine alır, AMP versiyonunu mobil sunum için kullanır; küme sitemap alternate satırlarıyla da aynı URL'leri taşımalıdır. Hreflang katmanı devreye girdiğinde kritik soru şudur: hreflang etiketleri nereye konulmalı? Yöntem seçimi HTML, sitemap veya header katmanında da aynı netliği ister.
Hreflang etiketinin AMP ve canonical arasındaki dağılımı
Google'ın resmi önerisi açıktır: hreflang etiketleri hem AMP sayfada hem canonical sayfada bulunmalıdır. Yalnızca canonical'a koymak yeterli değildir; Google AMP sayfayı taradığında orada da dil sinyalini görmek ister.
AMP sayfada hreflang şu şekilde görünür:
<link rel="alternate" hreflang="tr" href="https://example.com/tr/makale/amp/">
<link rel="alternate" hreflang="en" href="https://example.com/en/article/amp/">
<link rel="alternate" hreflang="x-default" href="https://example.com/en/article/amp/">
Canonical sayfada ise aynı küme, AMP değil canonical URL'lerle kurulur:
<link rel="alternate" hreflang="tr" href="https://example.com/tr/makale/">
<link rel="alternate" hreflang="en" href="https://example.com/en/article/">
<link rel="alternate" hreflang="x-default" href="https://example.com/en/article/">
İki küme birbirini karıştırmamalıdır. AMP sayfasındaki hreflang değerleri AMP URL'lerine, canonical sayfasındaki değerler canonical URL'lerine işaret etmelidir. Bu ayrımı korumak, hreflang kümesindeki karşılıklı işaret gerekliliğini de AMP katmanında tutarlı tutar.
AMP URL'lerinin hreflang kümesine dahil edilmemesi ne anlama gelir?
Sık görülen hata şudur: hreflang yalnızca canonical sayfalara tanımlanır, AMP sürümler bu kümenin dışında bırakılır. Google AMP sayfayı taradığında hreflang sinyali bulamaz. Bu durumda Google, AMP sayfanın hangi dil-bölge hedefine ait olduğunu kendi çıkarımıyla belirlemek durumundadır.
Pratik sonuç değişkendir. Bazı durumlarda Google canonical'ı dil kümesiyle eşleştirir, AMP sayfayı ise yalnızca hız katmanı olarak değerlendirir ve sorun görünmez. Ancak özellikle büyük ve karmaşık çok dilli yapılarda (farklı alt dizin veya alt alan yapılarında) bu eksiklik yanlış dil atamasına neden olabilir. Hreflang kümesinde eksik üye bulunması, kümenin bütünlüğünü bozar; AMP sayfaların bu kümeden dışarıda kalması da benzer bir bütünlük sorunudur.
AMP URL biçimi hreflang doğrulamasını nasıl etkiler?
AMP URL'leri genellikle şu iki biçimden birini alır: alt dizin (/amp/ eki) veya sorgu parametresi (?amp=1). Her ikisi de hreflang kümesinde kullanılabilir; ancak sorgu parametreli AMP URL'leri bazı doğrulama araçlarında sorun çıkarır.
Google Search Console, hreflang hatalarını canonical URL düzeyinde raporlar. AMP sayfası kaynaklı bir hata (örneğin AMP sürümde hreflang'ın eksik olması veya yanlış URL'e işaret etmesi) bazen canonical sayfanın hata listesinde belirir, bazen de görünmez. Bu belirsizlik, sorunun geç fark edilmesine yol açar.
Bir diğer nokta: Google AMP Cache üzerinden sunulan sayfalarda (özellikle https://www.google.com/amp/s/... biçiminde) hreflang etiketleri farklı işlenebilir. Cache URL'si ile origin URL arasındaki fark, bazı eski AMP uygulamalarında hreflang'ın cache URL'sine değil origin'e işaret etmesinden kaynaklanıyordu. Güncel AMP spesifikasyonunda bu sorun büyük ölçüde giderilmiştir; ama eski yapılar kaldıysa kontrol edilmesi gerekir.
x-default AMP sayfalar için nasıl kurulmalı?
x-default etiketi, hiçbir dil-ülke eşleşmesi sağlanamadığında yönlendirilecek sayfayı belirtir. AMP sayfalarında x-default için de net bir karar gerekir: x-default AMP sürümüne mi yoksa canonical sürümüne mi işaret edecek?
Genel yaklaşım tutarlılık üzerine kuruludur. AMP kümesi içinde x-default AMP URL'ini, canonical kümesi içinde ise canonical URL'ini işaret etmelidir. Hreflang ve geotargeting sinyallerinin çakıştığı yapılarda x-default değerinin belirsiz bırakılması, Google'ın yanlış dil sürümünü varsayılan olarak belirlemesine neden olabilir.
Karar protokolü basittir: x-default hedefini önce canonical kümesinde belirle, ardından AMP kümesinde aynı mantıkla çoğalt. İkisi arasında farklı hedef kullanmak karışık sinyal üretir.
Sitemap'te AMP ve canonical URL'lerin birlikte yönetimi
XML sitemap'te canonical URL'ler listelenir; AMP URL'leri ayrı bir sitemap'e veya aynı sitemap'te <xhtml:link> etiketiyle eklenebilir. Hreflang açısından bakıldığında sitemap üzerinden verilen hreflang sinyalleri ile sayfa içindeki etiketlerin tutarlı olması gerekir.
AMP URL'leri sitemap'e ekleniyorsa ve bu URL'ler için de hreflang bildirimi yapılacaksa, <xhtml:link> blokları AMP URL'lerini kapsayan bir çift küme oluşturmalıdır. Ancak pratikte birçok site sitemap'te yalnızca canonical hreflang bildirimini tutar ve AMP için sayfa içi etiketlere güvenir. Bu yaklaşım işe yarar, koşul tutarlılık sağlanmasıdır.
Çok dilli sitelerdeki iç arama sayfaları gibi AMP sürümü olmayan sayfa tipleri bu hesaplamanın dışındadır; AMP yalnızca makale veya içerik sayfaları için geçerliyse sitemap yönetimi buna göre bölümlendirilmelidir.
AMP'in kullanımdan kalkması hreflang yapısını nasıl etkiliyor?
Google, 2021 yılından itibaren AMP'i Core Web Vitals sıralamasında zorunlu olmaktan çıkardı. Mobil arama deneyiminde AMP özel kartını kaldırdı. Bu değişiklikle birlikte pek çok site AMP'ten vazgeçmeye başladı. Ancak halihazırda AMP kullanan siteler için mevcut yapının yönetimi devam ediyor.
AMP kaldırma sürecinde hreflang üzerindeki etki genellikle ihmal edilir. AMP sayfalar devre dışı bırakılırken hreflang kümesindeki AMP URL işaretleri temizlenmezse, Google bu URL'lere gidip 404 döndüklerini görür. 404 dönen bir hreflang hedefi kümenin güvenilirliğini düşürür. Kaynak dil değişikliği veya yapısal geçiş süreçlerinde bu tür kalıntı etiketler ciddi sorunlara yol açabilir.
AMP kaldırma planı şu sırayla işlemelidir: önce canonical sayfalardaki amphtml etiketlerini kaldır, ardından hreflang kümelerinden AMP URL'lerini temizle, son olarak AMP URL'lerine canonical'a yönlendirme kur ve sitemap'i güncelle.
Doğrulama: hangi sinyallere bakılmalı?
AMP ve hreflang uyumluluğunu kontrol etmek için birkaç katmanlı yaklaşım gerekir. İlk katman sayfa kaynağıdır: hem AMP hem canonical sayfayı tarayıcıda kaynak görünümüyle aç ve her ikisinde de hreflang kümesinin tam olduğunu doğrula.
İkinci katman Search Console'dur. Uluslararası Hedefleme raporunda hreflang uyarıları ve hatalar listelenir; ancak bu rapor AMP'e özgü hataları her zaman ayrı bir satırda göstermez. Kapsama raporu ise AMP sayfaların indexlenip indexlenmediğini ve hangi kuralla dışlandığını gösterir.
Üçüncü katman log analizidir. Googlebot-AMP kullanıcı ajanının hangi URL'leri taradığını sunucu loglarından takip etmek, hreflang sinyalinin nerede koptuğunu bulmak için en güvenilir yöntemdir. Arama motorlarının çok dilli sorguları işleme biçimi değişse de teknik sinyal bütünlüğü bu tür doğrulamaları zorunlu kılmaya devam ediyor.
Hreflang hatası göründüğünde sıra sabittir: önce sayfa kaynağı, sonra sitemap, en sonda GSC URL İnceleme ile yeniden tarama. Console raporu Googlebot sayfayı yeniden görmeden güncellenmez. AMP sayfalar canonical'dan farklı tarama sıklığıyla işlenebildiği için inceleme isteği AMP URL'sine ayrı gitmelidir; aksi halde canonical temizlenmiş görünür, AMP kuyrukta eski kümeyi taşımaya devam eder.
AMP hreflang kümesi kurulumda bir kez doğrulanıp unutulmaz. Yeni dil, URL değişikliği veya AMP kaldırma, canonical kümesini güncellerken AMP yarısını eski URL'de bırakır; Google 404 hedef gördüğünde kümenin güvenilirliği düşer. Doğrulama döngüsü (kaynak kod, GSC, gerekirse AMP bot logu) bu üç müdahaleden sonra yeniden çalıştırılır. Canonical düzelmiş, AMP sürümü hâlâ bozuksa iki sayfa çelişen sinyal gönderir.