# hreflang

> A teszt azt nézi, hogy a több nyelvű oldal hreflang-hivatkozásai teljes címet használnak-e, és van-e köztük az oldalra magára mutató. Egynyelvű oldalon nem számít.

A `hreflang` jelzi a keresőknek, hogy ugyanannak az oldalnak milyen nyelvi vagy országspecifikus változatai vannak, így a látogató a saját nyelvű változatot kapja a találatok között. Csak több nyelvű oldalon van értelme; egynyelvű oldalon nem kell.

## Hogyan mérjük

A riport a nyitóoldal HTML-jében összegyűjti azokat a `<link>` elemeket, amelyeknek van `hreflang` attribútuma, és a `rel` értékükben szerepel az `alternate`.

- **Nem mérhető:** nincs ilyen elem. Egynyelvű oldalon ez a normális eset; a teszt ilyenkor nem számít bele a pontszámba.
- **Hiba, relatív cím:** valamelyik `href` nem `http://` vagy `https://` kezdetű.
- **Hiba, nincs önhivatkozás:** egyik hivatkozás gazdagépneve sem egyezik az oldaléval (a `www.` előtagot figyelmen kívül hagyva).
- **Megfelelő:** minden cím teljes, és van köztük az oldal saját gazdagépére mutató.

A teszt súlyossága a riportban: alacsony. Mit nem néz a teszt:

- Az önhivatkozást a gazdagépnév egyezésével ellenőrzi, nem azzal, hogy a hivatkozás pontosan az oldal saját címe.
- Nem ellenőrzi a kölcsönös (visszamutató) hivatkozásokat a többi nyelvi változaton.
- Nem ellenőrzi a nyelvkódok érvényességét és az `x-default` meglétét.
- Csak a HTML `<head>`-beli hivatkozásokat nézi, a HTTP-fejlécben vagy a sitemapben megadott hreflangot nem.
- Csak a nyitóoldalt méri.

## Hogyan javítsd

A Google többnyelvű oldalakról szóló útmutatója szerint:

- a hivatkozás `<link rel="alternate" hreflang="nyelvkód" href="cím">` alakú, a `<head>` részben;
- a címek teljesek, protokollal együtt (`https://…`), relatív cím nem érvényes;
- minden nyelvi változat felsorolja önmagát és az összes többit;
- a hivatkozásoknak kölcsönösnek kell lenniük: ha két oldal nem mutat egymásra, a jelölések figyelmen kívül maradnak;
- az `x-default` az az oldal, amelyet akkor kap a látogató, ha egyik felsorolt nyelv sem illik hozzá (például nyelvválasztó);
- a nyelvkód ISO 639-1, az országkód ISO 3166-1 Alpha 2 szerinti legyen.

### HTML

A riport kétnyelvű mintája (írd át a nyelvkódokat és a címeket a saját változataidra):

```html title="HTML"
<link rel="alternate" hreflang="hu" href="https://pelda.hu/">
<link rel="alternate" hreflang="en" href="https://pelda.hu/en/">
<link rel="alternate" hreflang="x-default" href="https://pelda.hu/">
```

Minden nyelvi változat `<head>` részébe ugyanez a teljes lista kerül, a saját magára mutató sorral együtt. A meglévő hibás sorokat cseréld le.

### WordPress

A téma `header.php` fájljába írva minden oldalon ugyanaz a lista ismétlődne, pedig minden aloldalnak a saját nyelvi párjaira kell mutatnia. WordPressben ezért többnyelvű bővítmény vagy SEO-bővítmény írja ki oldalanként a hivatkozásokat, teljes címekkel és önhivatkozással. A kimenetben ellenőrizd, hogy a címek `https://` kezdetűek-e.

## Hogyan ellenőrizd

1. Futtasd újra a riportot.
2. Parancssorból:

```bash title="Terminál"
curl -s https://pelda.hu/ | grep -i hreflang
```

Ellenőrizd kézzel a másik nyelvi változaton is, hogy ott a lista ugyanaz, és tartalmazza a változat saját címét.
