nasıl -e denetim Hreflang ölçekte
bir repeatable, araç-driven süreç bençin auditing hreflang genelinde bir büyük site — pulling her annotation -den tümü three implementation methods, okuma küme graphs ve reciprocal matrices, ve prioritizing düzeltmeler tarafından damage, değil frequency.
Diller
Bu sayfada 1 kanıt sinyali
- İlgili canlı araçreturntag - hreflang checker
Auditing hreflang ölçekte dır bir graph-validation sorun, değil bir tag-validation sorun: siz kontrol et whether her sayfa in bir küme benşaret eder back -e her diğer sayfa, değil whether bir sayfa sahiptir bir tag. Pull her annotation -den tümü three implementation locations (HTML head, HTTP headers, XML sitemap) ile bir crawler — Google verir siz no validator ve GSC's International Targeting rapor idi removed Sept 22, 2022 — o hâlde oluştur reciprocal-tag matrix. Spot-kontrol et bir küme visually ile benim free returntag graph ve matrix, veya kullan Ahrefs site denetimi ve Screaming Frog bençin full-site coverage. Triage tarafından damage: missing döndür tags ilk (onlar break whole pair), o hâlde yanlış language/region codes ve non-canonical targets, o hâlde missing x-default son (en çok yaygın at 56,3%, least harmful). In benim Brighton SEO 2023 study of 374 756 domains, üzerinde 67% kullanarak hreflang sahipti at least bir error.
TL;DR — Auditing hreflang “at scale” anlamına gelir checking sizin whole site’s hreflang olarak bir connected network yerine looking at sayfalar bir at bir time. trick dır şu hreflang çalışır in matched pairs — eğer sayfa bir benşaret eder -e sayfa B, B sahiptir -e benşaret et back -e bir, veya Google throws whole pair out. bir tek-sayfa kontrol et -ebilir never catch bir missing döndür bağlantı, bu nedenle siz ihtiyaç duy bir crawler şu reads her sayfa ve maps kim benşaret eder -e whom. düzelt missing döndür bağlantılar ilk; missing x-default şu her araç complains hakkında -ebilir wait.
neden “one page at a time” yapmaz çalışır
-erseniz view-kaynak on sizin German sayfa ve see bir tidy block of hreflang tags, o görünür fine. ama hreflang yalnızca çalışır eğer sayfalar o references benşaret et back. sizin German sayfa -ebilir olmak perfect ve hâlâ olmak broken, çünkü English sayfa o names forgot -e name o in döndür. -ebilirsiniz’t see şu -den German sayfa alone — siz’d sahip -e open English sayfa de, ve French sayfa, ve her diğer sürüm, ve cross-kontrol et them tümü tarafından hand. On bir ten-sayfa site, fine. On bir ten-thousand-sayfa site, impossible.
şu’s whole neden “auditing hreflang at scale” dır onun kendi skill: siz durdur checking tags ve başla checking relationships. bir araç tarar her sayfa, records her hreflang annotation, ve o hâlde asks yalnızca soru şu önem taşır — yapar her sayfa in bu grup benşaret et -e her diğer sayfa, her ikisi directions?
Evidence for this claim A hreflang audit must verify return links because Google says non-reciprocal annotations may be ignored or interpreted incorrectly. Scope: Google Search hreflang reciprocity guidance; impact is stated as possible, not guaranteed cluster-wide invalidation. Confidence: high · Verified: Google: Hreflang guidelinesne siz aslında ihtiyaç duy
Üç şey:
- bir crawler. Google verir siz no hreflang validator, ve eski arama Console rapor şu kullanılan -e flag bazı of bu idi removed back in 2022. bu nedenle siz lean on üçüncü-party crawlers — Ahrefs site denetimi veya Screaming Frog — -e pull everything -e bir place. Evidence for this claim A complete audit needs to inspect HTML, HTTP Link headers, and XML sitemaps because Google supports hreflang in all three locations. Scope: Google Search-supported hreflang delivery methods. Confidence: high · Verified: Google: Localized versions
- ** reciprocal kontrol et.** her ikisi araçlar yap aynı temel thing: onlar oluştur bir map of kim-benşaret eder—e-whom ve flag bir-way bağlantılar. şunlar bir-way bağlantılar dır sizin “missing return tags,” ve onlar’re errors şu aslında önem taşır.
- bir priority sıra. siz -ecek bul hundreds of sorunlar. düzelt missing döndür bağlantılar ilk (onlar break pairs), o hâlde yanlış country/language codes, ve leave missing x-default bençin son — o’s en çok yaygın complaint ama least harmful.
bir thing -e remember
en çok siteler şu kullan hreflang sahip errors. ne zaman ben studied 374 756 domains bençin Brighton SEO in 2023, üzerinde 67% of ones kullanarak hreflang sahipti at least bir error. bu nedenle yapmayın panic ne zaman sizin ilk tarama lights up red — şu’s olağbir. skill değildir getting -e zero errors; o’s knowing hangi of them aslında maliyet siz trafik ve düzeltme şunlar ilk.
bençin broader international denetim — URL structure, geo-yönlendirmeler, bençerik kalitesi, country performance — see International SEO denetim. bençin ne hreflang hatta dır ve nasıl -e implement o, başla ile Hreflang. iste full at-scale methodology — reciprocal-tag matrix, küme-graph walkthrough, Screaming Frog filters? Switch -e Advanced tab.
Validate hreflang düzeltmeler
Reciprocal küme retest
test et -e çalıştır: Re-tarama her changed küme ve compare gerçek self ve alternate edges ile beklenen locale matrix. beklenen sonuç: her member references itself ve tümü intended alternates, ve her edge sahiptir bir döndür edge. başarısızlık interpretation: düzelt changed bir template veya sayfa olmadan updating whole küme. izleme window: Immediately sonra deployment ve sonra sonraki generation cycle. Rollback trigger: bir changed küme hâlâ contains asymmetric priority-locale pairs.
Hedef bütünlüğü
test et -e çalıştır: istek her changed hreflang destination olmadan following yönlendirmeler ve collect status, robots directives, ve canonical. beklenen sonuç: Targets döndür direct 200 responses, kal indexable, ve canonical’laştır olarak intended. başarısızlık interpretation: locale map benşaret eder -e obsolete, redirected, blocked, veya consolidated URLs. izleme window: Release verification ve sonraki full tarama. Rollback trigger: herhangi bir high-değer küme targets errors veya unexpected non-canonical URLs.
Delivery-yöntem consistency
test et -e çalıştır: Compare annotations found in HTML, HTTP headers, ve XML sitemaps bençin changed URLs. beklenen sonuç: yalnızca intended yöntem dır present, veya tümü generated methods declare aynı küme. başarısızlık interpretation: birden çok systems kendi hreflang ve sahip drifted. izleme window: sonra deployment ve sonra sonraki sitemap refresh. Rollback trigger: Contradictory methods kal on production URLs.
Code ve scope validation
test et -e çalıştır: Validate her changed değer karşı supported language ve region codes ve approved locale inventory. beklenen sonuç: her değer begins ile bir valid language ve adds yalnızca bir intentional valid region. başarısızlık interpretation: bir country idi kullanılan olarak bir language, bir unsupported market leaked in, veya casing/format generation dır yanlış. izleme window: In CI veya predeployment QA ve yeniden in production tarama. Rollback trigger: Invalid codes affect bir generated template veya birden çok kümeler.
TL;DR — bir ölçekli hreflang denetim dır graph validation, değil tag validation. adım 1: pull her annotation -den tümü three legal locations (HTML head, HTTP
Linkheaders, XML sitemap) ile bir crawler configured bençin sizin ccTLD/subdomain setup — GSC -ebilir’t yap bu (International Targeting removed Sept 22, 2022, ve hatta önce şu o yalnızca reported canonical member of bir küme). adım 2: oluştur reciprocal-tag matrix — her URL in bir küme × her diğer, yapar bir→B var ol, yapar B→bir. okuyun o in benim returntag küme graph/matrix bençin bir focused kontrol et, veya kullan Ahrefs ve Screaming Frog bençin site-wide tarama. adım 3: classify -e four patterns — missing döndür tags, yanlış codes, non-canonical targets, mixed absolute/relative URLs. adım 4: prioritize tarafından damage, değil frequency — döndür tags ilk (onlar break whole pair), o hâlde codes, o hâlde x-default son (en çok yaygın at 56,3%, least harmful). adım 5: re-verify karşı dizine eklenmiş URL, değil declared canonical.
bu article dır hreflang-specific companion -e benim broader International SEO denetim, hangi treats hreflang olarak bir of six denetim areas. burada ben’m going bir level deeper on hreflang-yalnızca methodology ölçekte. bençin fundamentals — ne hreflang dır, three ways -e implement o, reciprocal kural — see Hreflang hub ve, bençin fallback tag, x-default.
Evidence for this claim A complete audit needs to inspect HTML, HTTP Link headers, and XML sitemaps because Google supports hreflang in all three locations. Scope: Google Search-supported hreflang delivery methods. Confidence: high · Verified: Google: Localized versionstemel reframe: bu bir graph sorun
burada’s mental shift şu yapar ölçekli auditing tractable. siz dır değil checking “does this page have a hreflang tag.” siz’re checking “yapar her sayfa in bu sayfa’s küme benşaret et back -e o, ve yapar her URL in küme resolve -e bir 200, canonical, indexable sayfa.”
Google’ın kendi dokümantasyon dır neden:
Evidence for this claim A hreflang audit must verify return links because Google says non-reciprocal annotations may be ignored or interpreted incorrectly. Scope: Google Search hreflang reciprocity guidance; impact is stated as possible, not guaranteed cluster-wide invalidation. Confidence: high · Verified: Google: Hreflang guidelines“eğer sayfa X bağlantılar -e sayfa Y, sayfa Y -meli bağlantı back -e sayfa X. eğer bu değil durum bençin tümü sayfalar şu kullan
hreflangannotations, şunlar annotations -ebilir olmak ignored veya değil interpreted yapğru biçimde.”
okuyun şu carefully. bir missing döndür bağlantı -ebilir neden ol affected annotations -e olmak ignored veya interpreted incorrectly. şu’s neden bir tek-sayfa view dır structurally incapable of auditing hreflang: başarısızlık lives in relationship arasında sayfalar, değil on herhangi bir bir sayfa. siz ihtiyaç duy bir tarama şu records her küme member ve cross-references them.
Scope önem taşır burada de: ignored annotations dır ones in broken pair, otomatik olarak değil her relationship in bir larger küme. bir five-sayfa küme ile bir missing döndür typically keeps processing onun diğer complete pairs normally — şu’s tam olarak ne benim returntag screenshot below shows: nine reciprocal pairs intact, bir missing döndür flagged. yapmayın assume bir broken edge nukes whole küme; go kontrol et her pair, çünkü araç sahiptir -e kontrol et her pair -e söyle siz şu.
ve o alır harder olarak site grows — bu da tam olarak Google’ın kendi explanation bençin neden big siteler dır ones ile errors. On arama Off Record, Gary Illyes described errors olarak emerging ne zaman bir site sahiptir çok söyleıda properties, her ile onun kendi URL structure — olarak soon olarak siz sahip -e vary pattern genelinde properties, şu’s nerede errors come in, ile Lizzi Sassman adding şu o’s harder -e sync them up -dığınızda’re localizing URLs ve o hâlde making typos. şu’s signature of bir enterprise setup: birden çok ccTLDs, her on bir slightly farklı publishing convention. bu nedenle bir good denetim segments findings tarafından property/domain grup, çünkü şu’s nerede errors aslında küme operationally.
adım 1 — Pull her hreflang annotation site-wide
three places hreflang lives
Google accepts hreflang in three eşdeğeri locations, ve siz -meli kontrol et tümü three:
Evidence for this claim A complete audit needs to inspect HTML, HTTP Link headers, and XML sitemaps because Google supports hreflang in all three locations. Scope: Google Search-supported hreflang delivery methods. Confidence: high · Verified: Google: Localized versions- HTML
<link>tags in<head>— yaygın durum. - HTTP
Link:response headers — kullanılan bençin non-HTML files like PDFs. xhtml:linkentries in bir XML sitemap — yaygın ölçekte çünkü o centralizes annotations in bir file yerine templating them üzerine her sayfa.
bir crawler şu yalnızca reads HTML head -ecek silently miss header- veya sitemap-declared alternates. o won’t flag them olarak broken — o sadece won’t see them, bu da worse, çünkü siz’ll think bir sayfa sahiptir no hreflang ne zaman o aslında sahiptir bir full ayarla delivered via sitemap. Configure tarama -e okuyun tümü three önce siz trust bir tek number.
Configuring crawler bençin sizin structure
- Screaming Frog: enable Configuration > Spider > tarama Hreflang (bu ayrıca picks up sitemap ve header hreflang -dığınızda benşaret et o at them). bençin ccTLDs/subdomains şu reference her diğer, ekle sibling domains altında Config > CDNs — otherwise cross-domain hreflang bağlantılar dır basitçe değil validated, değil flagged olarak broken. bu tek en çok yaygın blind spot at scale, çünkü enterprise siteler dır ones en çok muhtemel -e kullan ccTLDs, ve ccTLDs dır tam olarak ne gerektirir bu extra adım.
- Ahrefs site denetimi: emin olun sibling domains dır bençinde project scope bençin aynı neden. o hâlde kullan sayfa Explorer -e filter sayfalar tarafından hreflang sorun type ölçekte önce siz drill -e individual küme graphs.
neden GSC -ebilir’t yap bu bençin siz
Two nedenler, ve ikinci dır bir en çok kişiler miss:
- ** rapor dır gone.** GSC International Targeting rapor — hangi kullanılan -e flag bazı hreflang sorunlar — idi deprecated ve removed (announced August 2022; removed sonra September 22, 2022). Nothing replaced o yapğrudan.
- hatta ne zaman o existed, o yalnızca ever showed canonical. On arama Off Record, Illyes explained şu arama Console yalnızca raporlar on canonicals — bençin en çok benzer-language hreflang kümeler, alternates değildir canonical, bu nedenle siz idi effectively blind -e ne idi happening on non-canonical members of bir küme, çünkü Google stores them in yinelenen küme olmadan tutma alternate details. şu’s bir structural neden GSC idi never bir complete hreflang denetim araç, değil sadece “the report got removed.” o’s direct justification bençin going crawler-ilk.
Google ayrıca sadece yapmaz ship bir validator. On aynı podcast, Illyes said Google sahiptir never provided bir hreflang validator — onlar sahipti bazı underused reporting ve o hâlde removed o — ve now benşaret eder kişiler -e external araçlar like Aleyda Solis’ araç, Bill Hunt’s hreflang checker, ve Merkle’s araç. Take şu olarak permission -e lean on üçüncü-party crawlers bençin job GSC -ebilir’t yap — ama değil olarak bir endorsement. Google’s kendi dokümantasyon dır explicit şu o yapmaz maintain veya kontrol et üçüncü-party hreflang debugging araçlar, bu nedenle ele al herhangi bir araç’s output, mine included, olarak diagnostic evidence siz hâlâ sahip -e neden hakkında, değil bir resmî verdict. ne zaman bir bulma aslında önem taşır, yapğrula o karşı raw artifact — HTTP response, sitemap XML, veya rendered HTML — yerine stopping at araç’s parsed özet.
adım 2 — oluştur reciprocal-tag matrix
Normalize ne siz pulled
önce siz oluştur matrix, al everything -e bir consistent shape. bençin her declared hreflang relationship, record kaynak URL, target URL, locale değer, kaynak yöntem (HTML head, HTTP header, veya sitemap), ve — critically — target’s status code, yönlendirme chain, indexability, canonical target, ve whether tarama saw o in raw HTML veya rendered DOM. farklı crawlers export bu differently; normalizing o -e directed URL—e-URL edges ile şu context attached dır ne yapar matrix, ve her classification in adım 3, reliable yerine bir pile of disconnected rows.
ne matrix represents
Conceptually, her biri bençin küme siz oluştur bir table nerede rows ve columns dır her URL in şu küme, ve her cell yanıtlar bir yes/no soru: yapar bir hreflang bağlantı var ol -den row URL -e column URL? bir correct küme dır symmetric — eğer bir→B dır present, B→bir dır present. her asymmetric cell (bir bağlantı şu vardır in bir direction yalnızca) dır bir missing döndür tag.
siz yapmayın literally hand-oluştur bu spreadsheet ölçekte — araçlar oluştur o bençin siz. ama holding matrix in sizin head dır ne lets siz okuyun araç output yapğru biçimde. benim returntag araç draws matrix olarak bir graph ve ayrıca exposes underlying cells; Screaming Frog’s “Missing Return Links” filter pulls asymmetric cells -e bir liste, ve Ahrefs site denetimi provides başka bir at-scale küme view. aynı relationship kontrol et, farklı presentations ve tarama scopes.
okuma o olarak bir graph: benim returntag küme validator
bençin bir focused küme kontrol et, benim free returntag araç renders declared locale
relationships olarak bir graph ve bir reciprocal matrix. her locale dır bir node, her
declared hreflang annotation dır bir edge, ve sorun liste identifies exact URL
şu fails -e bağlantı back. screenshot below dır bir sitemap-yalnızca çalıştır: o reads ne
sitemap declares ve deliberately yapmaz fetch sayfa head tags veya HTTP Link headers.
kullan sayfa URL’si mode -dığınızda ihtiyaç duy full three-kaynak picture bençin bir sayfa’s küme.
nasıl -e okuyun o:
- bir temiz küme dır bir fully-connected mesh — her node linked -e her diğer node, her ikisi directions.
- bir bir-way edge dır sizin asymmetric cell: sayfa X benşaret eder -e Y ama Y yapmaz benşaret et back. şu’s döndür-tag error, seen yerine okuyun.
- bir orphaned node — bir URL şu görünür in küme ama yapmaz bağlantı back -e o — dır bir unlinked hreflang URL.
practical win dır triage speed ve stakeholder communication: yerine handing bir developer bir abstract spreadsheet row, siz göster bir-way relationship ve exact missing döndür-tag error together. bençin hundreds veya thousands of kümeler, koru Ahrefs site denetimi veya Screaming Frog in workflow bençin complete tarama coverage; returntag dır fast way -e inspect ve explain bir specific küme.
okuma o olarak bir spreadsheet: Screaming Frog filters
-erseniz’re in Screaming Frog, matrix surfaces olarak bir ayarla of filters (sonra siz çalıştır tarama Analysis post-tarama -e populate döndür-bağlantı data). çalışır them in kabaca bu sıra, çünkü o maps -e priority sıra in adım 4:
- Missing döndür bağlantılar — asymmetric cells; sizin highest-priority findings.
- Inconsistent Language & Region döndür bağlantılar — bir döndür bağlantı vardır ama ile bir
farklı code -den outbound bir (bir söyler B dır
fr-FR, B söyler bir dıren-GBne zaman bir dır gerçektenen-US) — bir subtler pair-breaker. - Non-Canonical döndür bağlantılar — döndür bağlantı benşaret eder at bir URL şu’s canonicalized elsewhere, bu nedenle sinyal chain breaks hatta gerçben bir tag vardır.
- Noindex döndür bağlantılar — döndür target dır noindexed, bu nedenle o -ebilir’t carry annotation.
- Non-200 Hreflang URLs — target dır bir yönlendirme veya bir error sayfa.
- Unlinked Hreflang URLs ve Incorrect Language & Region Codes — orphaned nodes ve code-validation errors.
Export whole ayarla via raporlar > Hreflang. (bençin full filter-tarafından-filter walkthrough at özet level, Screaming Frog hreflang tutorial dır excellent — ben’m değil going -e re-type onların config adımlar burada.)
adım 3 — Classify ne siz bul -e four error patterns
sizin tarama output -ecek olmak noisy. Sort her bulma -e bir of four buckets — bunlar dır patterns şu repeat genelinde 374 756-domain study. (ben’m pulling yalnızca two figures şu anchor priority argument; full nine-type error table dır zaten in International SEO denetim article — no benşaret et re-pasting o.)
1. Missing döndür tags — pair-breaker
asymmetric cells -den sizin matrix. 15,3% of hreflang-kullanarak domains sahip bunlar. olarak ben put o in study writeup: “olarak ben mentioned, hreflang tags çalışır in pairs. eğer her ikisi sayfalar yapmayın reference her diğer, onlar -ebilir’t establish connection ve swap uygun biçimde in arama sonuçları.” bu category şu invalidates whole pair’s sinyal per Google’s docs, bu da neden o’s ilk in priority sıra — hatta gerçben o’s değil en çok yaygın error.
2. yanlış language/region codes — quietly-forgiving bir
kullan ISO 639-1 bençin language ve ISO 3166-1 alpha-2 bençin region. classic breakers:
jp yerine ja bençin Japanese, typo js bençin ja, three-letter codes like
gbr yerine gb, la (Laos) misused bençin “Latin America.”
bir daha distinction worth building -e sizin denetim: BCP 47 ( underlying
language-tag spec) permits bir much broader ayarla of values -den Google’s hreflang
implementation aslında acts on — script subtags ve diğer BCP 47-legal constructs
şu Google’ın kendi hreflang dokümantasyon yapmaz yapğrula olarak recognized values. bir
code -ebilir olmak perfectly well-formed BCP 47 ve hâlâ değil olmak something Google’s
hreflang rehberlik belgeler olarak supported. Validate karşı Google’s documented
language/region/x-default kurallar specifically, değil generic BCP 47 well-formedness
— bir syntactically valid tag -ebilir hâlâ olmak functionally invisible -e Google.
ama burada’s nuance şu cuts karşı naive prioritization: Google silently corrects
bazı of bunlar ve değil others. onun dokümantasyon states şu -erseniz kullan codes reserved
bençin something else, “Google arama ignores şu part of annotation (örneğin,
kullanarak EU, UN, veya UK in hreflang annotations yapmaz sahip bir effect on Google
arama).” bu nedenle UK dır effectively dropped (siz iste GB), ama o yapmaz nuke rest
of annotation — whereas bir code şu’s basitçe yanlış (jp bençin ja) yapar break şu
pair. bir denetim gerektirir -e distinguish “technically wrong but Google handles it” -den
“wrong and actually breaks the pair,” çünkü onlar yapmayın al aynı urgency.
3. Non-canonical URLs in hreflang — invisible bir
bu pattern şu görünür fine in bir tag export ve breaks anyway. bir key distinction ben drew at Pubcon 2019: hreflang dır hakkında dizine eklenmiş sürüm, değil canonical. eğer sizin hreflang benşaret eder -e bir URL şu’s canonicalized away -den ne’s aslında dizine eklenmiş, sinyal chain breaks hatta gerçben tag itself dır “valid.” bu yalnızca surfaces -dığınızda cross-reference tarama export karşı dizine ekleme status — en çok hreflang tutorials skip o çünkü onlar ele al hreflang olarak bir isolated tag kontrol et yerine part of dizine ekleme pipeline. (daha on verifying bu in adım 5.)
orada’s bir aynı-language alignment kontrol et worth adding burada de. ne zaman several yakın kopya URLs -ebilirdi plausibly sun olarak canonical bençin bir locale, Google’ın kendi canonical’laştırma rehberlik favors bir aynı-language (veya en iyi-substitute) URL, ve verir bazı preference -e bir sayfa şu’s part of bir complete reciprocal hreflang küme üzerinde bir şu değildir. şu’s bir neden -e koru hreflang targets pointed at aynı-language canonical candidates yerine letting them drift üzerine bir farklı-language yinelenen. None of bu something bir crawler veya checker -ebilir prove outright, gerçben — o -ebilir göster siz configured sinyaller (canonical tags, hreflang edges, küme membership), değil Google’s gerçek final selection. ele al tarama output olarak diagnostic evidence, değil confirmation.
Evidence for this claim 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. Scope: localized HTML pages, HTTP headers, XML sitemaps and search systems as applicable Confidence: high · Verified: How to specify a canonical URL with rel=canonical and other methods4. Mixed absolute/relative URLs — templating bug
Google dır explicit: “Alternate URLs -meli olmak fully-qualified, dahil transport
yöntem (http/https), bu nedenle: https://example.com/foo, değil //example.com/foo veya
/foo.” ölçekte bu almost never bir bir-off typo — o’s bir templating bug şu hits
thousands of URLs at once çünkü hreflang block dır generated -den bir partial URL
pattern. şu’s neden crawlers flag o olarak bir systemic sorun: bul bir, ve siz’ve genellikle
found bir whole template’s worth.
adım 4 — Prioritize: döndür tags ilk, codes sonraki, x-default son
tek en çok önemli idea in bu whole article: error severity değildir proportional -e error frequency. Sort sizin findings tarafından damage, değil tarafından nasıl çok söyleıda rows araç returned.
| Tier | Error pattern | neden burada |
|---|---|---|
| 1 — düzelt ilk | Missing döndür tags; inconsistent döndür-bağlantı codes | Breaks entire pair’s sinyal per Google’s docs. Highest damage. |
| 2 — düzelt sonraki | yanlış codes şu Google yapmaz silently düzelt (jp→ja); non-canonical / broken targets | Breaks individual relationships; bazı dır silently ele alınır, bazı değildir — triage accordingly. |
| 3 — batch | Mixed absolute/relative URLs, missing self-reference | gerçek hygiene sorunlar, genellikle template-wide, ama değil her zaman küme-breaking. |
| 4 — son | Missing x-default | en çok yaygın, least damaging. |
neden x-default goes son despite olma everywhere: o’s tek en çok yaygın bulma in her study — 56,3% in benim 374 756-domain study, ve 47,95% in Dan Taylor’s independent 18 786-domain SALT.agency study (two studies, çok farklı scales, aynı headline: en çok siteler dır missing o). ama olarak ben wrote in study: “ayarlama bir x-default değildir required. ama o dır recommended -erseniz ihtiyaç duy bir fallback sayfa bençin kullanıcılar whose language settings yapmayın match herhangi bir of sizin localized sürümler.” Google’ın kendi ekip treats o olarak bir UX fallback, değil bir dizine ekleme-critical sinyal — on arama Off Record, Illyes described x-default olarak annotating bir fallback sayfa bençin ne zaman orada’s no matching language bençin bir kullanıcı, ve noted o -ebilir hatta olmak başka bir language sayfa yerine bir dedicated selector. düzelt o, ama düzelt o sonra things şu aslında break kümeler.
Self-reference sits in tier 3 bençin aynı neden: hatta Illyes, kim worked on Google’s hreflang implementation, said on record he yapmaz fully remember neden self-reference dır required ve dır fairly sure kümeler -irdi çalışır olmadan o — he framed o mainly olarak making kümeler easier -e ayarla up çünkü -ebilirsiniz kopya/paste aynı block everywhere. o’s implementation hygiene, değil bir functional requirement.
bençin broader impact × effort matrix şu spans tümü six international denetim areas (değil sadece hreflang), kullan Frameworks lens in International SEO denetim yerine rebuilding o burada.
adım 5 — Re-verify karşı dizine eklenmiş URL, değil tarama
sizin tarama validates tags. o yapmaz validate şu URL tag benşaret eder -e dır bir Google aslında dizine eklenmiş. çünkü hreflang follows dizine eklenmiş sürüm (adım 3, pattern 3), bir tag şu benşaret eder at bir URL şu’s olmuş canonicalized away — veya şu yönlendirmeler, veya dır noindexed downstream — hâlâ breaks sinyal hatta sonra sizin bulk düzelt geç raporlar “clean.”
bu nedenle sonra düzeltmeler ship, spot-kontrol et highest-değer kümeler ile URL Inspection in arama Console: yapğrula URL Google raporlar olarak dizine eklenmiş dır aynı URL sizin hreflang references. bu adım şu catches canonical-chain drift, bu da invisible in bir plain hreflang-tag export. siz yapmayın yap o bençin her URL — siz yap o bençin sizin money sayfalar in her market, sonra tarama söyler siz’re done.
bir bir-line note on Bing
yapmayın expect Bing Webmaster araçlar -e validate herhangi bir of bu. Bing treats hreflang olarak bir much weaker sinyal -den Google yapar ve removed onun Geo Targeting feature back in 2020 — o leans on bençerik-Language header instead. bir hreflang-at-scale denetim dır fundamentally bir Google-facing exercise; kontrol et bençerik-Language bençin Bing separately (covered in International SEO denetim).
AI özet
bir condensed take on Advanced sürüm:
- o’s bir graph sorun, değil bir tag sorun. siz kontrol et whether her sayfa in bir küme benşaret eder back -e her diğer sayfa — değil whether bir sayfa sahiptir bir tag. Per Google: “If page X links to page Y, page Y must link back to page X,” veya annotations “-ebilir olmak ignored.” bir missing döndür bağlantı -ebilir invalidate bir whole küme.
- adım 1 — pull everything. Hreflang lives in three places (HTML head, HTTP
Linkheaders, XML sitemap); bir crawler -meli okuyun tümü three. Configure ccTLD/subdomain siblings (Screaming Frog: Config > CDNs; Ahrefs: project scope) veya cross-domain bağlantılar go unvalidated. GSC -ebilir’t yap bu — International Targeting rapor idi removed Sept 22, 2022, ve hatta önce şu o yalnızca reported canonical member of bir küme. - adım 2 — reciprocal-tag matrix. her URL × her URL in bir küme; asymmetric cells = missing döndür tags. okuyun bir focused küme visually in returntag’s graph ve matrix, veya çalışır site-wide aracılığıyla Ahrefs site denetimi ve Screaming Frog.
- adım 3 — four error patterns: missing döndür tags; yanlış codes (Google silently düzeltmeler
reserved ones like
UK→ignored, değil others likejpbençinja); non-canonical targets (hreflang follows dizine eklenmiş URL); mixed absolute/relative URLs (bir template bug at scale). - adım 4 — prioritize tarafından damage, değil frequency. döndür tags ilk (break whole pair), o hâlde codes/broken targets, o hâlde x-default son — en çok yaygın (56,3% in benim 374 756-domain study; 47,95% in SALT.agency’s) ama least harmful ve “not required.”
- adım 5 — re-verify karşı dizine eklenmiş URL ile URL Inspection sonra düzelt geç; tarama validates tags, değil dizine ekleme-status drift.
- Scale context: üzerinde 67% of hreflang-kullanarak domains sahip at least bir error (benim Brighton SEO 2023 study of 374 756 domains). Bing dır bir bir-line caveat — kontrol et bençerik-Language, değil hreflang.
resmî dokümantasyon
birincil-kaynak references bençin bir hreflang denetim.
- söyle Google hakkında localized sürümler of sizin sayfa — hreflang reference: reciprocal döndür-tag requirement, fully-qualified-URL kural, reserved-code handling, ve three eşdeğeri implementation methods (HTML bağlantı tags, HTTP
Linkheaders, XML sitemap). - International Targeting rapor dır deprecated — arama Console yardım et — removed rapor şu kullanılan -e flag bazı hreflang sorunlar (removed sonra September 22, 2022).
- Managing Multi-Regional ve Multilingual siteler — URL-structure context bençin neden multi-property setups generate en çok hreflang errors.
- nasıl -e specify bir canonical URL ile rel=canonical ve diğer methods — aynı-language canonical-preference rehberlik behind adım 3’s non-canonical hreflang kontrol et.
Bing / Microsoft
- Bing Webmaster araçlar yardım et — Bing sahiptir no hreflang validation workflow; o weights bençerik-Language header instead ve removed Geo Targeting in 2020.
Quotes -den kaynak
On—record statements şu anchor denetim methodology.
Google — reciprocal requirement ( backbone of whole denetim)
- “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.” — Google arama Central docs. Jump -e quote
Google — fully-qualified URLs (root neden ol of mixed absolute/relative pattern)
- “Alternate URLs must be fully-qualified, including the transport method (http/https), so:
https://example.com/foo, not//example.com/fooor/foo.” — Google arama Central docs. Jump -e quote
Google — reserved codes dır silently dropped, değil sayfa-breaking
- “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).” — Google arama Central docs. Jump -e quote
Patrick Stox — neden pairs dır load-bearing (-den 374 756-domain study)
-
“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.” — üzerinde 67% of Domains kullanarak Hreflang sahip sorunlar, 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.” — üzerinde 67% of Domains kullanarak Hreflang sahip sorunlar, Ahrefs
Gary Illyes, Google — neden GSC -ebilir’t denetim hreflang, ve neden orada’s no validator
- On arama Off Record, Illyes explained şu arama Console yalnızca raporlar canonicals, bu nedenle bençin çok söyleıda hreflang kümeler nerede alternates değildir canonical siz’re effectively blind -e non-canonical members — Google puts them in yinelenen küme olmadan storing alternate details. He ayrıca said Google sahiptir never provided bir hreflang validator (onlar sahipti underused reporting ve removed o) ve now benşaret eder kişiler -e external araçlar. Paraphrased -den transcript — verify wording karşı episode sayfa önce quoting verbatim.
hangi bulma yap ben düzelt ilk?
siz’ve çalıştır tarama ve siz’re staring at bir wall of red. Walk her bulma aracılığıyla bu:
-
dır döndür bağlantı missing veya code-inconsistent (asymmetric cell)? → Yes → Tier 1. düzelt now. bu breaks whole pair per Google’s docs. Everything else waits behind bu. → No → continue.
-
yapar hreflang benşaret et -e bir non-200, redirected, noindexed, veya non-canonical URL? → Yes → Tier 2. düzelt sonraki. target -ebilir’t carry annotation. bençin non-canonical specifically, yapğrula karşı dizine eklenmiş URL (URL Inspection), değil sadece canonical tag. → No → continue.
-
dır language/region code yanlış? → dır o bir reserved code Google silently ignores (
UK,EU,UN)? → Yes → low urgency. Google drops sadece şu part; düzelt bençin correctness, değil olarak bir emergency. → dır o bir genuinely yanlış code şu breaks match (jpbençinja,jstypo, three-lettergbr)? → Yes → Tier 2. düzelt sonraki. bu breaks relationship. -
dır o bir mixed absolute/relative URL (
//example.com/…veya/…)? → Yes → Tier 3, ama kontrol et template. Almost her zaman bir site-wide templating bug — bir instance anlamına gelir thousands. düzelt at template, batch rest. -
dır o bir missing self-reference veya missing x-default? → Yes → Tier 4. son. gerçek hygiene, değil küme-breaking. x-default dır “recommended, değil required”; self-reference dır kopya/paste convenience. yap bunlar in bir final sweep.
** kural underneath tree:** sort tarafından damage, değil tarafından nasıl çok söyleıda rows araç returned. en çok yaygın error (x-default) dır least damaging.
SOP: recurring hreflang denetim
Hreflang breaks silently her time developers ship bir template change, bu nedenle çalıştır bu on bir schedule (monthly bençin active international siteler, veya sonra herhangi bir release şu touches localized templates).
Prep
- yapğrula crawler scope kapsar her property in hreflang network — tümü ccTLDs, subdomains, subfolders. In Screaming Frog, ekle siblings altında Config > CDNs; in Ahrefs site denetimi, yapğrula onlar’re in project scope.
- yapğrula crawler reads tümü three annotation locations (HTML head, HTTP
Linkheaders, XML sitemap). Verify tarafından checking bir sayfa siz know kullanır sitemap-based hreflang.
tarama 3. Enable hreflang extraction (Screaming Frog: Configuration > Spider > tarama Hreflang). çalıştır tarama. 4. çalıştır post-tarama analysis (Screaming Frog: tarama Analysis) bu nedenle döndür-bağlantı filters populate. In Ahrefs, izin ver site denetimi finish ve open hreflang sorun ayarla.
Triage (in bu sıra) 5. Tier 1 — Missing döndür bağlantılar + Inconsistent döndür-bağlantı Codes. Export bunlar ilk. Open worst-hit kümeler in returntag’s graph/matrix -e explain broken edges; retain crawler export olarak site-wide kaynak of coverage. 6. Tier 2 — Non-canonical / broken / noindexed targets, ve genuinely yanlış codes. 7. Tier 3 — Mixed absolute/relative URLs (düzelt at template), missing self-reference. 8. Tier 4 — Missing x-default. son.
Segment 9. grup her bulma tarafından property/domain, değil sadece tarafından error type — errors küme nerede URL patterns vary genelinde properties. bu söyler siz hangi ekip’s template -e düzelt.
Verify 10. sonra düzeltmeler ship, re-tarama. o hâlde spot-kontrol et money sayfalar per market ile URL Inspection -e yapğrula hreflang benşaret eder -e dizine eklenmiş URL, değil bir canonicalized-away bir. 11. Record error counts tarafından tier her cycle bu nedenle -ebilirsiniz see drift üzerinde time.
Hreflang denetim myths ve mistakes
Concrete misconceptions şu lead kişiler -e denetim yanlış things — her ile neden o’s yanlış ve ne yapılacağı instead.
1. “Broken hreflang gets my site penalized, so any error is urgent.”
- neden yanlış: Google ignores broken veya asymmetric hreflang; o yapmaz cezalandır bençin o. Gary Illyes sahiptir said yapğrudan şu bir incorrect hreflang implementation won’t hurt bir site — Google basitçe ignores o (reported tarafından arama motoru Roundtable ve corroborated tarafından arama motoru Journal). maliyet dır lost opportunity (yanlış-language sayfalar surfacing, market cannibalization), değil bir sıralama penalty.
- yap instead: Triage tarafından lost opportunity per küme (trafik, revenue), değil tarafından fear of bir penalty şu yapmaz var ol.
2. “Missing x-default is the most common error, so fix it first.”
- neden yanlış: Frequency ve severity dır farklı axes. x-default dır tek en çok yaygın bulma (56,3% in benim study; 47,95% in SALT.agency’s) ama o’s “recommended, değil required” ve functions olarak bir UX fallback, değil bir küme-critical sinyal.
- yap instead: Put x-default son. düzelt missing döndür tags ilk — onlar break entire pairs.
3. “Self-referencing tags are mandatory, flag every missing one as critical.”
- neden yanlış: hatta Illyes, kim worked on Google’s hreflang implementation, said on record he değildir sure neden self-reference dır required ve believes kümeler -irdi çalışır olmadan o — o’s mainly kopya/paste convenience.
- yap instead: düzelt self-reference in final hygiene sweep (tier 3–4), değil ahead of döndür-tag ve code errors.
4. ” html lang attribute dır bir language sinyal Google kontroller, bu nedenle denetim o alongside
hreflang.”
- neden yanlış: Asked yapğrudan on arama Off Record whether Google cares hakkında HTML
langattribute, Illyes said no — o’s çoğu zaman baked -e CMS templates tarafından default ve therefore untrustworthy, bu nedenle Google detects language -den visible bençerik instead. - yap instead: koru
html langcorrect bençin accessibility ve diğer motorlar, ama yapmayın izin ver bir hreflang-vs-langmismatch outrank bir gerçek döndür-tag error in sizin triage.
5. “GSC’s report is gone, so without a paid crawler I can’t audit hreflang at all.”
- neden yanlış: bir manual view-kaynak spot-kontrol et plus free/freemium validators (Aleyda Solis’ araç, Bill Hunt’s checker, Merkle’s araç — tümü named tarafından Illyes olarak araçlar he’s found reliable, gerçben Google’ın kendi dokümantasyon dır clear o yapmaz maintain veya kontrol et üçüncü-party hreflang araçlar) çalışır fine bençin küçük siteler. o’s scale şu requires bir crawler, değil absence of GSC.
- yap instead: Match araç -e size. Spot-kontrol et küçük siteler manually; reserve crawler bençin siteler nerede hand-checking kümeler dır genuinely impossible.
6. “My hreflang export is clean, so hreflang is fine.”
- neden yanlış: bir temiz tag export yapmaz anlamına gel targets dır dizine eklenmiş. Hreflang follows dizine eklenmiş URL, değil canonical — bir tag pointing at bir canonicalized-away veya noindexed URL hâlâ breaks hatta gerçben tag “looks” valid.
- yap instead: Cross-reference karşı dizine ekleme status (URL Inspection) bençin sizin top kümeler sonra tag-level geç.
önce / sonra: okuma four patterns
Concrete, minimal örnekler of her error pattern ve onun düzelt. (Illustrative markup.)
1. Missing döndür tag ( pair-breaker)
önce — US sayfa benşaret eder -e UK sayfa, ama UK sayfa never benşaret eder back:
<!-- 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 — UK sayfa names US sayfa in döndür, bu nedenle pair dır symmetric:
<!-- 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ış language/region code
önce — jp dır bir country code, değil language code bençin Japanese; en-UK değildir valid:
<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 language (ja) ve ISO 3166-1 alpha-2 region (GB, değil UK):
<link rel="alternate" hreflang="ja" href="https://example.com/jp/" />
<link rel="alternate" hreflang="en-GB" href="https://example.com/uk/" />3. Mixed absolute/relative URLs (bir template bug ölçekte)
önce — protokol-relative ve root-relative URLs; Google requires fully-qualified:
<link rel="alternate" hreflang="fr-FR" href="//example.com/fr/" />
<link rel="alternate" hreflang="de-DE" href="/de/" />sonra — fully-qualified, dahil transport yöntem:
<link rel="alternate" hreflang="fr-FR" href="https://example.com/fr/" />
<link rel="alternate" hreflang="de-DE" href="https://example.com/de/" />4. Non-canonical target (görünür valid, hâlâ breaks)
önce — hreflang benşaret eder at bir URL şu’s canonicalized away -den dizine eklenmiş sürüm:
<!-- 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 benşaret eder at canonical/dizine eklenmiş URL, bu nedenle sinyal chain holds:
<link rel="alternate" hreflang="es-ES" href="https://example.com/es/producto" />catch ile #4: -ebilirsiniz’t see o -den tag alone. yapğrula dizine eklenmiş URL ile URL Inspection önce siz trust şu bu bir’s düzeltilmiş.
Pulling ve checking hreflang yourself
bençin spot-kontroller, ad-hoc extraction, ve validating bir düzelt önce sonraki full tarama. crawler dır hâlâ sizin kaynak of truth ölçekte — bunlar dır bençin in-arasında.
Chrome DevTools Console — dump her hreflang on güncel sayfa
Paste -e Console on herhangi bir sayfa -e liste onun annotations ve flag protokol-relative veya root-relative URLs:
[...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).';eğer o prints “No HTML hreflang tags,” sayfa -ebilir deliver hreflang via HTTP header veya sitemap — Console yalnızca sees DOM, bu nedenle kontrol et şunlar separately.
Bookmarklet — bir-click reciprocity spot-kontrol et genelinde bir küme
Fetches her alternate güncel sayfa names ve raporlar hangi ones başarısız ol -e bağlantı back (aynı-origin yalnızca, due -e browser CORS — cross-ccTLD pairs ihtiyaç duy crawler):
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 — extract hreflang -den bir saved sitemap veya HTML dump
Pull her annotation out of bir downloaded XML sitemap veya tarama HTML export:
# 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 — oluştur reciprocity matrix -den bir Screaming Frog export
Turn bir Screaming Frog hreflang_all.csv-style export (columns: kaynak URL, hreflang değer,
target URL) -e bir ayarla of bir-way (missing-döndür) pairs:
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)")Adjust column names -e match sizin export. output dır tam olarak asymmetric cells of reciprocal-tag matrix — tier-1 düzeltmeler.
araçlar bençin bir ölçekli hreflang denetim
- returntag (birincil bençin graph/matrix spot-kontroller). benim free araç turns bir sayfa veya sitemap küme -e bir graph ve reciprocal matrix, o hâlde names missing döndür relationships ve onların düzeltmeler. sayfa URL’si mode kontroller bir sayfa küme; Sitemap mode validates yalnızca ne sitemap declares. kullan o -e investigate ve communicate bir specific küme, değil olarak bir substitute bençin bir whole-site tarama.
- Ahrefs site denetimi (ölçekte). Extracts hreflang -den HTML, headers, ve sitemaps, runs reciprocal kontroller, ve renders her küme olarak bir network graph — URL Details > Hreflangs tab, broken edges in red. fastest way -e see hangi relationship in bir küme dır broken, ve easiest -e göster bir stakeholder. kullan sayfa Explorer -e filter sayfalar tarafından hreflang sorun type önce drilling -e individual graphs.
- Screaming Frog SEO Spider. Enable Configuration > Spider > tarama Hreflang; ekle sibling ccTLDs altında Config > CDNs bençin cross-domain validation; çalıştır tarama Analysis -e populate döndür-bağlantı filters (Missing döndür bağlantılar, Inconsistent Language & Region döndür bağlantılar, Non-Canonical döndür bağlantılar, Noindex döndür bağlantılar, Non-200 Hreflang URLs, Unlinked Hreflang URLs). Export via raporlar > Hreflang. onların hreflang tutorial dır definitive config reference.
- Google arama Console — URL Inspection. değil bençin bulk auditing ( International Targeting rapor dır gone, ve GSC yalnızca ever reported canonical member of bir küme), ama essential bençin adım 5: confirming sizin hreflang benşaret eder at dizine eklenmiş URL sonra düzelt geç.
- Free/freemium validators bençin küçük siteler ve spot-kontroller — Aleyda Solis’ hreflang tag generator/tester, Bill Hunt’s hreflang checker, ve Merkle’s hreflang araç (named tarafından Google’s Gary Illyes olarak araçlar he knows çalışır well — gerçben Google’ın kendi dokümantasyon dır explicit şu o yapmaz maintain veya kontrol et üçüncü-party hreflang araçlar). kullan bunlar ne zaman hand-checking dır hâlâ feasible; reserve crawler bençin true scale, ve ele al herhangi bir araç’s verdict olarak diagnostic, değil resmî.
- Bing Webmaster araçlar — no hreflang validation; denetim bençerik-Language separately bençin Bing markets.
kaynaklar worth sizin time
benim related yazma
- üzerinde 67% of Domains kullanarak Hreflang sahip sorunlar (Study of 374 756 Domains) — benim Brighton SEO 2023 study, largest hreflang study -e date ve spine of bu whole methodology; error distribution ve döndür-tag/x-default figures come -den burada.
- Hreflang: Easy rehber bençin Beginners — Ahrefs implementation rehber, bençin fundamentals bu article assumes siz zaten know.
- Beginner’s rehber -e teknik SEO — nerede international sinyaller sit in wider teknik picture.
benim speaking
- Hreflang Study ve Interesting sorunlar — Brighton SEO 2023 (Speaker Deck) — slides behind study.
- en çok yaygın hreflang sorunlar genelinde 374 756 domains — Brighton SEO, Sept 2023 (YouTube) — talk itself.
- International SEO: Weird teknik Parts — Pubcon Vegas 2019 (SlideShare) — nerede ben yap “hreflang follows the indexed version, not the canonical” benşaret et şu drives adım 3 ve adım 5.
-den yaklaşık industry
- söyle Google hakkında localized sürümler of sizin sayfa — Google’s canonical hreflang reference (reciprocity, fully-qualified URLs, reserved codes).
- arama Off Record — “How serving works, hreflang, and more!” — Google’s arama Relations ekip (Illyes, Splitt, Sassman) on neden GSC yalnızca raporlar canonicals, neden orada’s no validator, ve neden big multi-property siteler generate en çok errors.
- nasıl -e denetim & test et Hreflang (Screaming Frog) — definitive filter-tarafından-filter config walkthrough.
- Study: 31% of international web siteleri contain hreflang errors (arama motoru Land) — Dan Taylor / SALT.agency’s independent 18 786-domain study, bir yararlı cross-kontrol et on benim larger bir.
- Google şunu söylüyor onlar -ecek Ignore Incorrect hreflang Implementation (arama motoru Roundtable) — “ignored, not penalized” benşaret et şu reorders sizin triage away -den panic.
- Google Insights: -ebilir Incorrect Hreflang Tags Hurt SEO? (arama motoru Journal) — corroborates aynı bulma.
test et yourself: Auditing hreflang ölçekte
Five quick questions on at-scale methodology. seç bir yanıt her biri bençin, o hâlde kontrol et.
Değişiklik günlüğü
8 Ağu 2026 tarihinde güncellendi.
Editoryal özet ve kaydedilen değişiklik ayrıntıları.Değişiklik ayrıntıları
-
Ayrıntılı değişiklik notları şu anda İngilizce olarak mevcut.
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ı.Değişiklik ayrıntıları
-
Ayrıntılı değişiklik notları şu anda İngilizce olarak mevcut.
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ı.Değişiklik ayrıntıları
-
Ayrıntılı değişiklik notları şu anda İngilizce olarak mevcut.
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ı.Değişiklik ayrıntıları
-
Ayrıntılı değişiklik notları şu anda İngilizce olarak mevcut.
-
Ayrıntılı değişiklik notları şu anda İngilizce olarak mevcut.
-
Ayrıntılı değişiklik notları şu anda İngilizce olarak mevcut.
-
Ayrıntılı değişiklik notları şu anda İngilizce olarak mevcut.
-
Ayrıntılı değişiklik notları şu anda İngilizce olarak mevcut.
Tam karşılaştırma kullanılamıyor — bu sürüm için önceki anlık görüntü arşivlenmemiş.