Hreflangi seadistamine | Õppetund 25/34 | SEMrushi akadeemia

Saab hreflang asetada body HTML-i? Või peab see olema head?

Ma ei leia selle kohta selget teavet.

  • 1 Selge on päev, kui loete spetsifikatsiooni.

Google toetab:

  • Link Hreflang
  • HTTP päis Hreflang
  • Saidiplaan Hreflang

Kasutamine <link rel='alternate' href='#' hreflang='en-ie' /> piires <body>ja mitte <head>, selle W3C validaatoris testimine ebaõnnestub ja teatab järgmisest:

W3C

Lingielement ei tohi ilmuda kehaelemendi järeltulijana, välja arvatud juhul, kui lingielemendil on atribuut itemprop või rel-atribuut, mille väärtus sisaldab dns-prefetch, pingback, preonnect, prefetch, eellaadimine, eellaadija või stiililehte

Seda on Rob ja Boldewyn maininud nii vastustes kui ka kommentaarides, et hreflangi saab kasutada a piires , kuna need sildid on kehas lubatud. See on tõsi ja mõlemad kasutajad toovad siiski häid punkte ...

See võib olla väga keeruline, kasutades hreflangi sees ja pole selge, kas seda toetab Google:

  1. Peate kõik lehe lingid kasutama märgistust, nii et kui teil on palju artikleid, mis üksteist omavahel ühendavad, võib see muutuda keerukaks, väga keerukaks, kui teil on rohkem kui 2 keelevalikut. Märgistuse lisamine lehele linkide asemel on vähem keeruline, kuna teete lihtsalt GET URL-i ja paigutate selle muutuja linkide kanooniliseks, linkide hreflangiks, Facebooki opengraphiks, Twitteri kaartideks jne.
  2. Peamine probleem on siiski see, et Google'i otsingukonsooli spikrist ei mainita midagi kasutamist mitme keele puhul ei tähenda see, et seda ei toetata, vaid lihtsalt võin öelda, et see on nii.

Google'i sõnul toetab see:

HTML-lingi element päises. Jaotise HTML jaotises http://www.example.com/, lisage lingi element, mis osutab selle veebilehe hispaaniakeelsele versioonile aadressil http://es.example.com/, nagu nii:

<link rel='alternate' hreflang='es' href='http://es.example.com/' /> 

HTTP päis. Kui avaldate mitte-HTML-faile (nt PDF-faile), saate HTTP-päise abil näidata URL-i erineva keele versiooni:

; rel='alternate'; hreflang='es' 

Lingi HTTP päises mitme hreflang-väärtuse määramiseks eraldage väärtused komadega nii:

; rel='alternate'; hreflang='es'>, ; rel='alternate'; hreflang='de'> 

Saidikaart. Märgistuse kasutamise asemel võite saidi kaardil edastada teavet keeleversiooni kohta.

Soovitan teil oma MARKUP-i kontrollida W3C-valideerija abil, näiteks kasutades seda otsest sisendkoodi:

<!DOCTYPE html> <html lang='en'> <head> <meta charset='utf-8'> <title>Simon Hayter Rocks!</title> <link rel='stylesheet' href='example.css'> <script src='example.js'></script> </head> <body> <link rel='alternate' href='http://example.com/en-ie' hreflang='en-ie' /> </body> </html> 
  • 2 See pole tõsi. Saate paigutada @hreflang sama hästi edasi elemendid. Spetsifikatsioon: html.spec.whatwg.org/multipage/…
  • Ja W3C versioon: w3.org/TR/html5/textlevel-semantics.html#the-a-element
  • 1 @Boldewyn brauseri müüjad on kõik HTML-i jaoks kahjuks defektinud. Kasutage viitena WHATWG-d.
  • @Rob Google toetab <head><link></head>, HTTP päis või saidiplaan ja ei ütle mingil hetkel, et see toetab BCP 47 silte.
  • @Rob värskendatud vastus

Ei

Ainus linkis lubatud element <body> jaotis on loetletud 'body-ok'. Tabeli koopia leiate siit: https://www.w3.org/TR/html5/links.html#body-ok

Sa võid kasutada hreflang mõlema atribuudina <link> elemendid ja eranditult elemente. Niisiis, lühidalt öeldes, ei, te ei saa lühistades panna hreflang kohta <body> (nagu saaksite nt suhteliste URL-ide jaoks).

Näide lehe päises, viidates otsingumootorite alternatiivkeele versioonile:

<head> <link rel='alternate' href='?lang=en' hreflang='en'> </head> 

Näide lehe kehas, millele kasutajad saavad klõpsata:

<body> View this information in English </body> 
  • The area elemendil võib olla ka hreflang atribuut.

none: Charles Robertson | none