Miten toteuttaa hreflang-tunnisteet monikieliseen WordPressiin

Olet kääntänyt koko WordPress-sivustosi kuudelle kielelle. .po-tiedostot ovat puhtaat, .mo-tiedostot on käännetty, jokainen merkkijono näkyy täydellisesti ranskaksi, saksaksi ja japaniksi. Kuitenkin viikkoja julkaisun jälkeen tarkistat Google Search Consolen ja löydät jotain hämmentävää: ranskankielinen sivusi sijoittuu saksankielisillä hauilla, Espanjan-Meksikon sivuasi tarjoillaan hakijoille Espanjassa, ja kaksi kieliversiotasi kannibaloivat hiljaisesti toisiaan hakutuloksissa. Sisältö on kunnossa. Ongelma on, että Googlella ei ole aavistustakaan, mikä versio kuuluu millekin yleisölle.
Tämä on juuri se, mitä hreflang WordPress -tunnisteet on suunniteltu korjaamaan. Hreflang on signaali, joka kertoo hakukoneille, mikä kieli- ja alueversio sivusta tarjoillaan millekin käyttäjälle. Jos teet sen väärin, kärsit päällekkäisen sisällön laimenemisesta, vääränkielisistä tuloksista ja haaskatusta indeksointibudjetista. Jos teet sen oikein, jokainen käännetty sivu tavoittaa yleisön, jolle se on kirjoitettu. Tämä opas käsittelee syntaksia, kieli- ja kieli-aluekoodien eroa, pakollista x-default-arvoa, palautustunnisteiden vastavuoroisuutta ja kolmea käytännöllistä tapaa toteuttaa se WordPressissä.
Mitä hreflang itse asiassa tekee
Hreflang ei käännä mitään. Se on suhdekartta. Kun sinulla on sama sivu useilla kielillä, hreflang-merkinnät kertovat Googlelle: "tämä URL on englanninkielinen versio, tämä on saksankielinen versio, tämä on espanjankielisille käyttäjille Meksikossa." Google käyttää tätä karttaa tarjoillakseen oikean version hakutuloksissa käyttäjän kieliasetusten ja sijainnin perusteella.
Merkintä sijaitsee HTML-sivusi <head>-osiossa joukkona <link>-elementtejä. Jokainen elementti nimeää kohdesivun ja kielen (ja valinnaisesti alueen), jota se palvelee. Tässä on oikea sarja hreflang-tunnisteita sivulle, joka on saatavilla Yhdysvaltain englanniksi, Ison-Britannian englanniksi ja Meksikon espanjaksi, oletusarvoisella vararatkaisulla:
<link rel="alternate" hreflang="en-US" href="https://example.com/en-us/pricing/" />
<link rel="alternate" hreflang="en-GB" href="https://example.com/en-gb/pricing/" />
<link rel="alternate" hreflang="es-MX" href="https://example.com/es-mx/pricing/" />
<link rel="alternate" hreflang="x-default" href="https://example.com/pricing/" />
Jokaisen joukon sivun tulisi näyttää tämä sama lohko, luetellen kaikki vaihtoehdot, mukaan lukien itsensä. Tämä viimeinen kohta hämmentää useimpia ihmisiä, ja palaamme siihen.
Miksi tämä on tärkeää hakukoneoptimoinnin kannalta
Ilman hreflangia Google kohtelee käännettyjä sivujasi lähes kopioina, jotka kilpailevat samoista avainsanoista. Tuloksena on laimeneminen: sijoitussignaalit jakautuvat versioiden kesken sen sijaan, että ne yhdistyisivät. Oikein käytetyllä hreflangilla jokainen versio perii koko joukon auktoriteetin ja nousee esiin oikeille hakijoille. Tämä on yksi tehokkaimmista hakukoneoptimointitoimenpiteistä, joita monikielinen sivusto voi tehdä, ja se täydentää, ei korvaa, varsinaista sisällön käännöstä .po-tiedostoissasi. Käsittelemme sisältöpuolta syvällisesti oppaassamme miten PO-tiedostojen kääntäminen vaikuttaa Googlen sijoituksiin.
Kieli vs. kieli-aluekoodit
Mikä sinun tulisi käyttää, en vai en-GB? Käytä yksinkertaisinta koodia, joka on totta. Jos englanninkielinen sisältösi on yleisluonteista etkä ylläpidä erillisiä brittiläisiä ja amerikkalaisia versioita, käytä pelkkää en-koodia. Lisää alueen alikoodi vain, kun tarjoat aidosti erilaista sisältöä eri maihin.
Hreflang-arvot noudattavat muotoa language tai language-region. Kieliosa on ISO 639-1 -koodi (en, es, de, pt). Valinnainen alue on ISO 3166-1 Alpha 2 -maakoodi (US, GB, MX, BR). Eli:
enkohdistaa kaikki englanninkieliset puhujat maasta riippumatta.en-GBkohdistaa englanninkieliset puhujat Yhdistyneessä kuningaskunnassa.eskohdistaa kaikki espanjankieliset puhujat.es-MXkohdistaa espanjankieliset puhujat erityisesti Meksikossa.
Kriittinen yksityiskohta: alueen alikoodi on maa, ei kielivaihtoehto. es-MX ei tarkoita "meksikon espanjan murretta", vaan "espanjaa, näytettynä käyttäjille Meksikossa". Google tarjoilee sen edelleen käyttäjän sijainnin perusteella. Jos ylläpidät alueellisia murteita käännöksissäsi, aluekoodi on tapa reitittää ne. Syvennymme tämän kielitieteelliseen puoleen oppaassamme alueelliset espanjan ja portugalin variantit.
Yleinen väärä esimerkki
Tässä on rikkinäinen hreflang-lohko, jonka näemme jatkuvasti:
<link rel="alternate" hreflang="en-uk" href="https://example.com/uk/" />
<link rel="alternate" hreflang="sp" href="https://example.com/es/" />
<link rel="alternate" hreflang="pt-PT_BR" href="https://example.com/pt/" />
Kolme virhettä. en-uk on virheellinen, koska Yhdistyneen kuningaskunnan maakoodi on GB, ei UK. sp ei ole kielikoodi lainkaan; espanja on es. Ja pt-PT_BR sekoittaa kaksi aluetta alaviivalla, jolla ei ole merkitystä hreflangissa. Hakukoneet jättävät virheelliset arvot hiljaisesti huomiotta, joten et saa virhettä etkä hyötyä, vain tuntikausia virheenkorjausta ihmetellen, miksi mikään ei muuttunut.
Huomaa, että hreflang käyttää väliviivaa (en-GB), kun taas WordPressin maa-asetustiedostot käyttävät alaviivaa (en_GB). Älä kopioi .po-tiedostonimiesi koodeja suoraan hreflang-tunnisteisiin.
x-default ja palautustunnisteiden vastavuoroisuus
Kaksi sääntöä aiheuttavat enemmän hiljaisia hreflang-epäonnistumisia kuin mikään muu: puuttuva x-default ja rikkinäinen vastavuoroisuus.
x-default-arvo kertoo Googlelle, mikä sivu tarjoillaan, kun mikään muu kieli ei vastaa käyttäjää. Se on vararatkaisusi, tyypillisesti kielivalitsimesi tai päämarkkinasivusi. Se ei ole tiukasti pakollinen spesifikaation mukaan, mutta käytännössä sinun tulisi aina sisällyttää se. Ilman sitä portugalinkielinen vierailija, jolle sinulla ei ole portugalinkielistä versiota, saa "kolikonheiton" harkitun oletuksen sijaan.
Palautustunnisteiden vastavuoroisuus on ehdoton. Jokaisen hreflang-joukon sivun on osoitettava takaisin jokaiseen muuhun sivuun, mukaan lukien itseensä. Jos englanninkielinen sivusi listaa saksan vaihtoehtona, saksankielisen sivusi on listattava englanti vaihtoehtona. Jos saksankielinen sivu jättää palautusviitteen pois, Google epäilee koko suhdetta ja jättää merkinnät huomiotta.
<!-- On the German page, the set must still list ALL versions -->
<link rel="alternate" hreflang="de" href="https://example.com/de/about/" />
<link rel="alternate" hreflang="en" href="https://example.com/en/about/" />
<link rel="alternate" hreflang="x-default" href="https://example.com/about/" />
Itseviittaus (de osoittaa saksankieliseen sivuun saksankielistä sivua katseltaessa) on pakollinen, ei valinnainen. Viiden kieliversion joukko tarkoittaa, että jokainen viidestä sivusta tulostaa kaikki viisi <link>-tunnistetta sekä x-default-arvon.
Kolme tapaa toteuttaa hreflang WordPressissä
Sinulla on kolme käytännöllistä vaihtoehtoa, jotka vaihtelevat täysin manuaalisesta ohjauksesta täysin automatisoituun.
Menetelmä 1: Manuaalinen wp_headin kautta
Pienelle staattiselle sivujoukolle voit syöttää hreflang-tunnisteet suoraan wp_head-toiminnon kautta teemasi functions.php-tiedostossa:
add_action( 'wp_head', function () {
if ( ! is_page( 'pricing' ) ) {
return;
}
$alternates = array(
'en-US' => 'https://example.com/en-us/pricing/',
'es-MX' => 'https://example.com/es-mx/pricing/',
'x-default' => 'https://example.com/pricing/',
);
foreach ( $alternates as $lang => $url ) {
printf(
'<link rel="alternate" hreflang="%s" href="%s" />' . "\n",
esc_attr( $lang ),
esc_url( $url )
);
}
} );
Tämä antaa sinulle tarkan hallinnan, mutta ei skaalaudu. Vastavuoroisuuden ylläpitäminen käsin satojen julkaisujen yli on ylläpidon sudenkuoppa.
Menetelmä 2: Monikielinen lisäosa
Jos käytät Polylangia, WPML:ää tai TranslatePressiä, hreflang generoidaan automaattisesti käännössuhteidesi perusteella. Tämä on oikea vastaus useimmille sivustoille, koska lisäosa tietää jo, mikä julkaisu on minkäkin käännös, joten vastavuoroisuus ja x-default hoidetaan puolestasi. Kustannus on näiden lisäosien lisäämä suoritusaikakustannus, mikä on kompromissi, jota tutkimme vertailussamme manuaalisten ja tekoälykäännösten lähestymistapoihin.
Menetelmä 3: XML-sivukartta xhtml:linkin kanssa
Sen sijaan, että laitat hreflangin jokaisen sivun <head>-osioon, voit ilmoittaa suhteet XML-sivukartassasi käyttämällä xhtml:link-nimiavaruutta. Jokainen <url>-merkintä listaa kaikki kielivaihtoehtonsa:
<url>
<loc>https://example.com/en/about/</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://example.com/en/about/" />
<xhtml:link rel="alternate" hreflang="de" href="https://example.com/de/about/" />
<xhtml:link rel="alternate" hreflang="x-default" href="https://example.com/about/" />
</url>
Tämä pitää sivusi HTML:n kevyenä ja keskittää kielikartan yhteen indeksoitavaan tiedostoon, jonka Google lukee mielellään. Useimmat SEO-lisäosat voivat luoda tämän automaattisesti.
hreflang täydentää käännöstä, se ei korvaa sitä
Tässä on kohta, jonka kaikki unohtavat: hreflang on arvoton, jos taustalla olevia sivuja ei ole todellisuudessa käännetty. Tunniste kertoo Googlelle "tämä on saksankielinen versio", mutta jos saksankielinen URL näyttää edelleen englanninkielisiä lisäosamerkkijonoja, kääntämättömiä kassamerkintöjä tai puolivalmiita .po-tiedostoja, olet yksinkertaisesti käskenyt Googlea tarjoilemaan rikkinäistä sisältöä saksalaisille käyttäjille täysin luottavaisin mielin.
Todellinen monikielinen hakukoneoptimointi koostuu kahdesta kerroksesta. Sisältökerros koostuu käännetyistä .po-, .pot-, .json- ja .xliff-tiedostoistasi, jotka vievät jokaisen teeman ja lisäosan merkkijonon kohdekieleen. Signaalikerros on hreflang, joka ohjaa jokaisen valmiin version sen yleisölle. Molempien on oltava vankkoja. Virheetön hreflang-joukko 40 prosenttisesti käännetyn sivuston päällä takaa vain huonomman kokemuksen nopeammin.
Tässä käännöskerroksen puhtaanapito on tärkeintä. Kun käännät käyttöliittymätiedostojasi, paikkamerkkien kuten %s, %1$s ja {name} on säilyttävä ennallaan, tai "käännetty" saksankielinen sivusi renderöityy kirjaimellisilla %s-tunnuksilla, jotka näyttävät rikkinäisiltä sekä käyttäjille että hakukoneille. gettext-yhteensopiva käännösprosessi Syntax Locking -ominaisuudella suojaa näitä tunnuksia automaattisesti, joten jokainen vaihtoehtoinen sivu, johon ohjaat hreflangin, on todella tuotantovalmis. Koska se toimii pilvessä Smart Batching -ominaisuudella, voit käsitellä kokonaisen monikielisen sivuston sen kautta asentamatta käännöslisäosia, jotka paisuttavat niiden samojen sivujen tarjoamiseen tarvittavaa suoritusaikaa.
Tee sisältö oikein ensin, ja anna sitten hreflangin tehdä työnsä. Nämä kaksi yhdessä vahvistavat sijoitussignaaleja, eliminoivat vääränkieliset tulokset ja asettavat jokaisen käännetyn sivun ihmisten eteen, jotka osaavat lukea sen.
Oletko valmis korjaamaan vääränkieliset hakutulokset lähteeltä? Kokeile SimplePoTranslatea ilmaiseksi — luottokorttia ei vaadita. Käännä
.po,.potja.json-tiedostosi ilmaisella tasolla ja ohjaa sitten hreflang-tunnisteesi sivuille, jotka ovat todella valmiita jokaiselle markkinalle.