Hreflang heeft een eigenschap die het uniek vervelend maakt om te debuggen: elke faalmodus produceert markup die er correct uitziet Er is geen consolefout, geen rode badge in de browser, geen buildfout De tags renderen, de pagina valideert als HTML, en de annotatie doet niets U komt er weken later achter, uit een Search Console-rapport of van iemand in een ander land die u vertelt dat ze de verkeerde pagina hebben.
Ik heb genoeg van deze nu gedebugd om een lijst te hebben Dit is die lijst, grofweg geordend op hoe vaak ik ze allemaal vind, met het symptoom dat je zou waarnemen en de oplossing. Het zit onder de complete hreflang gids naast de stukken op x-standaard en hreflang versus canoniek.
tl;dr: De meest voorkomende hreflang-fouten zijn ontbrekende retourneringstags, niet-ISO-codes zoals
en-UK, relatieve URL's, een canonieke die naar verschillende talen verwijst, ontbrekenx-default, en het mixen van implementatiemethoden voor dezelfde URL's Ze zijn allemaal stil: de markup geeft en doet niets. Zoeken Console's International Targeting-rapport vangt return-tag- en onbekende codefouten op grote schaal op; de rest heeft een crawl of een blik op de weergegeven HTML nodig. De hreflang tag generator valideert codes, URL's, duplicaten en de ontbrekende fallback voordat u implementeert.
1. Ontbrekende retourtags
Symptoom: Zoek Console rapporten & quot; geen retourneren tags" Taalversies niet in te ruilen voor de juiste markten, en de hele set gedraagt zich alsof hreflang afwezig was.
Oorzaak: Pagina A verklaart pagina B als zijn alternatief, maar pagina B declareert pagina A niet. Google vereist dat beide partijen de relatie bevestigen en annotaties weggooien die niet worden beantwoord.
Fix: Zet de volledige, identieke set annotaties op elke pagina in de groep, inclusief een zelfreferentiële invoer Probeer niet slim te zijn over welke pagina welke invoer nodig heeft De Engelse pagina vermeldt Engels, Frans, Duits en x-standaard; dat geldt ook voor de Franse pagina; dat geldt ook voor de Duitse pagina. Overal hetzelfde blok.
Dit is met ruime marge de meest voorkomende fout, en wordt bijna altijd veroorzaakt door handbewerking per pagina of door een sjabloon dat " de andere talen" in plaats van " alle talen".
2. Het gebruik van niet-ISO-regiocodes
Symptoom: Search Console-rapporten & quot; onbekende taalcode" of helemaal niets terwijl de annotatie stilletjes wordt genegeerd.
Oorzaak: en-UK leidt het veld. UK is geen ISO 3166-1 alfa-2-code; het Verenigd Koninkrijk is GB. Uitgevonden regionale codes zoals en-EU en es-LATAM zijn dezelfde klasse van fouten, zoals het is en-uk met de verkeerde behuizing gecombineerd met een toch al ongeldige regio.
Fix: Taal van ISO639-1, regio uit ISO 3166-1 alpha-2, verbonden door een koppelteken Voor Latijns-Amerika is het geldige antwoord de UN M49-code es-419. Voor Chinees, geef de voorkeur aan scriptsubtags: zh-Hant en zh-Hans.
| Fout | Right | waarom |
|---|---|---|
en-UK |
en-GB |
UK is geen ISO 3166-1-code |
en-EU |
Afzonderlijke vermeldingen per land, of gewoon en |
De EU is geen landcode |
es-LATAM |
es-419 |
UN M49-regiocode voor Latijns-Amerika |
zh-CH |
zh-Hans of zh-CN |
CH is Zwitserland |
CA |
en-CA en fr-CA |
Regio alleen is niet geldig |
3. Annotaties die alleen voor regio's beschikbaar zijn
Symptoom: Er gebeurt niets De annotatie wordt geheel genegeerd.
Oorzaak: Proberen een land te targeten zonder een taal te noemen, zoals in hreflang="US" of hreflang="CA". Hreflang is qua ontwerp de eerste taal; de regio is een optionele vernauwing van een taal, en geen doel op zichzelf.
Fix: Noem de taal Als je Canada in twee talen bedient, zijn dat twee vermeldingen: en-CA en fr-CA.
4. Relatieve URL's
Symptoom: De annotatie wordt genegeerd Vaak vergezeld door & quot; dit werkt op mijn machine" omdat relatieve URL's prima oplossen in een browser.
Oorzaak: href="/fr/pricing" in plaats van href="https://example.com/fr/pricing". Hreflang vereist volledig gekwalificeerde absolute URL's, inclusief protocol en host.
Fix: Absolute URL's weglaten Als u ze in een sjabloon bouwt, bouw ze dan op vanuit een geconfigureerde site-oorsprong in plaats van een hardgecodeerde string, dus een staging-implementatie publiceert geen productie-URL's of omgekeerd.
5. Een canoniek boek dat in verschillende talen wijst
Symptoom: Een hele taalversie verdwijnt uit de index Hreflang lijkt correct en heeft geen effect.
Oorzaak: De Franse pagina verklaart de Engelse pagina als zijn canonieke Dat instrueert Google om de Franse URL te laten vallen, en een URL die is weggekanonicaliseerd kan aan niemand worden geserveerd, ongeacht wat hreflang zegt Canonical is het sterkere signaal en het wint.
Fix: Elke pagina canonicaliseert voor zichzelf Hreflang beschrijft de relaties tussen die zelfcanonieke pagina's Deze is zijn eigen leeswaarde waard hreflang vs canoniek werkt door de combinaties inclusief geparametriseerde URL's.
6. Geen x-standaard
Symptoom: Bezoekers uit landen waar je niet op land mikt, richten zich op een ogenschijnlijk willekeurige taalversie.
Oorzaak: Geen terugval gedeclareerd, dus Google pikt Zijn keuze is gebaseerd op gelijkenissignalen die niet voor jou zichtbaar zijn, zo komen Nederlandse bezoekers op een Duitse pagina terecht.
Fix: Voeg een x-default invoer per set, wijzend naar een taalkiezer of uw primaire internationale versie De x-standaard gids dekt waar je het moet richten en de fouten die het nutteloos maken.
7. Het mengen van implementatiemethoden
Symptoom: Intermitterend, moeilijk te reproduceren gedrag Sommige pagina's wisselen correct en andere niet.
Oorzaak: HTML <link> tags en XML-sitemap xhtml:link inzendingen die beide hreflang voor dezelfde URL's declareren Elk is alleen geldig Samen zijn het twee bronnen van waarheid die afdrijven, en als ze het niet eens zijn, kun je op geen enkele manier weten welke Google heeft gebruikt.
Fix: Kies één methode per URL-set HTML-tags voor de meeste sites, sitemapvermeldingen wanneer u veel locales hebt en lean page heads wilt, HTTP-headers voor niet-HTML-bestanden zoals PDF's Verwijder vervolgens de andere in plaats van deze als back-up te laten.
8. Trailing-slash en protocolmismatches
Symptoom: Retourtags mislukken, ook al bevatten beide pagina's annotaties.
Oorzaak: De annotatie wijst op https://example.com/fr terwijl de indexeerbare URL dat wel is https://example.com/fr/. Of het wijst naar http:// op een HTTPS site Dit zijn verschillende URL's, dus de return tag op de echte pagina komt niet overeen met de URL die de andere pagina noemde.
Fix: Gebruik de exacte canonieke vorm van elke URL, dezelfde tekenreeks die u in een sitemap zou plaatsen Genereer hreflang van dezelfde URL-bouwer die uw canonieke tags gebruiken, dus de twee kunnen het niet oneens zijn.
9. Wijzen op omleidingen of 404's
Symptoom: Gedeeltelijk of verslechterd gedrag; Zoekconsolefouten op de getroffen paren.
Oorzaak: Een locale werd buiten gebruik gesteld en de URL's worden nu omgeleid, of een vertaalde pagina werd verwijderd terwijl de annotaties met de naam bleef. Een omleidingsdoel wordt nog steeds opgelost, dus het is niet fataal, maar het voegt een hop toe en de retourneertag op de uiteindelijke URL komt mogelijk niet overeen met de URL die werd genoemd. Een 404-doel vergiftigt het paar regelrecht.
Fix: Kruip door je eigen hreflang-doelen en controleer statuscodes. Dit is de controle die niemand uitvoert, en het is degene die rot aantreft in sets die correct waren toen ze werden geschreven.
10. Annoteren van noindex-pagina's
Symptoom: De set gedraagt zich inconsistent; sommige alternatieven verschijnen nooit.
Oorzaak: Een pagina wordt geadverteerd als taalalternatief tijdens het dragen noindex. U hebt Google verteld deze URL aan een markt te serveren en buiten de index te houden. De tegenstrijdigheid lost op in het voordeel van noindex.
Fix: Laat de annotatie vallen of laat de noindex. Het ensceneren van restjes en onvertaalde tijdelijke pagina's zijn de gebruikelijke boosdoeners.
11. Het blokkeren van hreflang-doelen in robots.txt
Symptoom: Alternatieven worden nooit bevestigd Search Console toont return-tag fouten voor pagina's die zichtbaar return tags dragen.
Oorzaak: Het doel is niet toegestaan in robots.txt, dus Googlebot kan het niet ophalen en kan de retourneringstag niet zien De annotatie aan jouw kant is prima; de bevestiging aan de andere kant is onbereikbaar.
Fix: Sta crawlen toe van elke URL die u noemt in een hreflang-annotatie Als een sectie echt niet gecrawld mag worden, mag deze ook niet in een hreflang-set staan De Robots.txt-generator is handig om te controleren wat je huidige regels blokkeren, wat vaak breder is dan de bedoeling was.
12. Codes dupliceren binnen één set
Symptoom: Onvoorspelbaar Google kan de eerste, de laatste nemen of het paar weggooien.
Oorzaak: Twee vermeldingen met dezelfde hreflangwaarde die naar verschillende URL's verwijzen, meestal omdat twee systemen beide annotaties uitzenden, of omdat een landkaart een dubbele sleutel heeft Twee x-default inzendingen zijn hetzelfde probleem in de meest voorkomende vorm.
Fix: Eén invoer per code per set Bekijk de gerenderde bron in plaats van de sjabloon; een plugin die een tweede blok toevoegt, is alleen onzichtbaar vanuit de sjabloon De gratis hreflang generator vlaggen dupliceren codes in de set die u bouwt, hoewel deze niet kan zien wat de pagina nog meer uitzendt.
Hoe vindt u deze fouten systematisch?
Drie passen, in deze volgorde, omdat elk een andere klasse vangt.
Zoek Console eerst. Het International Targeting-rapport bestrijkt het hele pand en vindt de twee fouten die schalen: ontbrekende retourneringstags en onbekende taalcodes. Het blijft achter bij uw implementaties, hoe lang een volledige recrawl ook duurt, dus behandel een week zonder verandering als normaal.
Een kruipseconde. Elke crawler die hreflang extraheert geeft je de set per URL Groepeer op cluster en vergelijk telt: een pagina met vier vermeldingen in een groep van vijf is de bug Controleer vervolgens de statuscode van elk doel, dat is de pas die fouten 8, 9, 10 en 11 vindt.
HTML als laatste weergegeven, voor de specifieke pagina die zich misdraagt. curl het, tel de annotatieblokken, tel de x-default invoeren, en vergelijk de URL's karakter voor karakter met de canonieke Dit is waar duplicaten en mismatches met trailing-slash verschijnen, en het is de enige pas die ziet wat een plug-in tijdens runtime injecteert.
De generator is de moeite waard om eerder te draaien, omdat het valideren van de set op het punt dat u schrijft de fouten 2, 3, 4, 6 en 12 verwijdert voordat ze kunnen verzenden Wat geen enkel hulpmiddel kan afdwingen is wederkerigheid, aangezien dat een eigenschap is van andere pagina's dan die voor u. Daarvoor is de discipline structureel: één landkaart, één renderer, het volledige blok op elke pagina. De Volgende.js en WordPress gidsen laten zien hoe dat eruit ziet in code.
Veelgestelde vragen
Wat is de meest voorkomende hreflang fout?
Ontbrekende retourtags Pagina A noemt pagina B als alternatief, maar pagina B noemt pagina A niet, dus Google gooit de relatie weg. De oplossing is om de volledige identieke reeks annotaties, inclusief een zelfreferentiële invoer, op elke pagina in de groep te plaatsen.
Waarom zegt Search Console dat mijn hreflang geen retourtags heeft?
Omdat de pagina waar je naar hebt gewezen niet terug wijst met een overeenkomende annotatie, of het terug wijst naar een iets andere URL Achterliggende slashes, protocolverschillen, en www versus non-www tellen allemaal als verschillende URL's.
Is en-UK een geldige hreflangcode?
Nee. UK is geen ISO 3166-1 alpha-2 code De juiste code voor het Verenigd Koninkrijk is GB, dus de waarde is en-GB. en-UK wordt geruisloos genegeerd.
Kunnen hreflang URL's relatief zijn?
Nr. Hreflang vereist volledig gekwalificeerde absolute URL's, inclusief het protocol en de host. Relatieve URL's worden genegeerd, ook al worden ze normaal opgelost in een browser.
Heeft een canonieke tag voorrang op hreflang?
Effectief wel Als een pagina canonicaliseert naar een andere taalversie, wordt die URL uit de index geschrapt en kan hreflang deze niet terugbrengen Elke pagina moet zichzelf canonicaliseren.
Hoe lang duurt het voordat hreflang-oplossingen verschijnen?
Dagen tot weken Google moet elke pagina in de set opnieuw crawlen voordat het de retourtags kan bevestigen, en Search Console rapporteert update volgens hetzelfde schema.
Kan ik zowel HTML-tags als sitemap hreflang gebruiken?
Dat kan, maar doe het niet Twee bronnen voor dezelfde URL's drijven uit elkaar, en als ze het er niet mee eens zijn, is er geen manier om te zeggen welke er is gebruikt Kies één methode per URL-set.
Moeten hreflang-doelen crawlbaar zijn?
Ja. als een doel is geblokkeerd in robots.txt of gemarkeerd met noindex, kan Google de retourneringstag niet bevestigen en mislukt de annotatie, ook al is uw opmaak correct.



