Модул 3 · 3.6
Многоезични сайтове и hreflang
Модул 3: Техническата основа на една страница · Време за четене: 12 минути
Цел на урока: След този урок ще можете правилно да настроите hreflang за сайт на няколко езика или за няколко държави и да проверите дали препратките са взаимни.
Основни понятия: езикова версия, hreflang, код на език (ISO 639-1), код на държава (ISO 3166-1 alpha-2), код на писменост (ISO 15924), x-default, взаимност (обратна препратка), препратка към самата страница, HTML, HTTP хедър или sitemap, отделни адреси за всеки език, без автоматично пренасочване според езика, атрибут lang
Проблемът: коя версия да се покаже?
Флорално ателие „Виктория“ расте. Към сайта се добавя английска версия за туристи и чужденци, живеещи в България, и немска версия за клиенти точно отвъд границата. Една и съща страница с булчински букети вече съществува три пъти:
https://www.example.com/bulchinski-buketi (български)
https://www.example.com/en/bridal-bouquets (английски)
https://www.example.com/de/brautstraeusse (немски)При всяко търсене търсачката трябва да избере коя от трите страници да покаже. Човек в Кьолн, който търси на немски, трябва да получи немската версия, а не нидерландската. С hreflang Вие казвате на търсачката кои страници са езикови версии една на друга и за кой език или коя държава е предназначена всяка версия.
hreflang не е трик за по-добро класиране. Той само гарантира, че правилната версия се показва на правилното място. Не служи и за разпознаване на езика: Google посочва, че не използва hreflang и HTML атрибута lang, за да определи езика на една страница. Това той прави сам, от текста. Все пак задайте правилно атрибута lang (<html lang="nl">) заради браузърите, програмите за превод и екранните четци.
Първо основата: отделни адреси
Google препоръчва отделен адрес за всяка езикова версия и не препоръчва езикът да се сменя чрез бисквитки или настройки на браузъра на един и същ адрес. Причината е практическа: Googlebot обикновено обхожда сайтовете от Съединените щати. Ако съдържанието на един адрес се променя според това кой го разглежда, Googlebot може да види само една версия.
По същата причина: не пренасочвайте посетителите автоматично към друга езикова версия според техния език или местоположение. Google изрично не препоръчва това. Нидерландец на почивка в Германия иска нидерландския сайт. По-добре поставете ясен избор на език на страницата и оставете всеки да може да достигне до всички версии.
Ако работите с държави вместо с езици и с отделни домейни като example.de и example.nl, важи същото. Версиите не е задължително да са на един и същ домейн.
Как изглежда hreflang
В <head> на всяка езикова версия стои един и същ набор от редове:
<link rel="alternate" hreflang="bg" href="https://www.example.com/bulchinski-buketi">
<link rel="alternate" hreflang="en" href="https://www.example.com/en/bridal-bouquets">
<link rel="alternate" hreflang="de" href="https://www.example.com/de/brautstraeusse">
<link rel="alternate" hreflang="x-default" href="https://www.example.com/bulchinski-buketi">Четири правила, които трябва да знаете:
- Всяка версия посочва себе си и всички останали. Английската страница има точно същите четири реда, включително реда за
en, който сочи към самата нея. - Препратките трябва да са взаимни. Ако нидерландската страница сочи към немската, немската трябва да сочи обратно към нидерландската. Google казва: ако две страници не сочат една към друга, препратките се пренебрегват. Това е най-честата грешка и затова задачата към този урок я проверява.
- Пълни адреси. Заедно с
https://. Път като/en/bridal-bouquetsили//www.example.com/en/...не се зачита. - В изряден
<head>. Редовете стоят в<head>на HTML. Ако нещо прекъсне head по-рано, например самостоятелен<img>или<div>, който не е на място там, търсачката може да приеме, че head е затворен, и да пропусне останалото.
Кодовете
Стойността на hreflang е код на език, по желание последван от код на държава:
| Код | Значение |
|---|---|
nl | Нидерландски, за всички, които говорят нидерландски |
nl-BE | Нидерландски за Белгия |
de-AT | Немски за Австрия |
en-GB | Английски за Обединеното кралство |
zh-Hant | Китайски с традиционна писменост (код на писменост ISO 15924) |
x-default | Резервната страница: за всички, за които не подхожда друга версия |
Кодът на езика идва от ISO 639-1 (две букви), а кодът на държавата от ISO 3166-1 alpha-2. Главните и малките букви нямат значение, но прието е езикът да се пише с малки, а държавата с главни букви. Три капана:
- Само държава не може.
hreflang="be"означава беларуски (кодът на езикbe), а не Белгия. Държавата винаги стои след езика:nl-BEилиfr-BE. en-UKне съществува. Кодът на държава на Обединеното кралство еGB. Google посочва, че кодове катоEU,UNилиUKнямат ефект.- Използвайте държава само ако версиите наистина се различават (други цени, валута, доставка, правопис). Ако имате една немска версия за всички, използвайте просто
de.
x-default
x-default не е задължителен. С него посочвате страницата за посетители, за които не подхожда нито една от Вашите версии, например човек, който говори френски. Често това е основният Ви език или страница, на която посетителят сам избира език.
Три начина, изберете един
Google познава три равностойни начина за посочване на hreflang:
- В HTML, с редове
<link>в head, както по-горе. Най-често използваният начин. Като HTTP хедър
Link, удобно за файлове без HTML, например pdf:Link: <https://www.example.com/en/price-list.pdf>; rel="alternate"; hreflang="en"- В картата на сайта (sitemap), с редове
xhtml:linkза всеки<url>. Удобно за големи сайтове, защото страниците не стават по-тежки.
Не е нужно да ги комбинирате. Ако използвате повече от един, те трябва да казват точно едно и също.
hreflang и canonical заедно
hreflang и canonical (урок 3.5) работят заедно, но не ги бъркайте:
- Всяка езикова версия има canonical към самата себе си. Английската страница не е копие на нидерландската, затова не сочи към нидерландската като каноничен адрес. Ако го направите, Вие казвате „английската страница всъщност не съществува“ и тя отпада от индекса.
- Адресите в hreflang са каноничните адреси на версиите. Ако hreflang сочи към адрес, който пренасочва, връща 404, има noindex или има canonical към друго място, групата се разпада.
Когато определя каноничния адрес, Google предпочита адреси, които са част от hreflang група. Така една изрядна група помага и за канонизацията.
На практика: оставете системата да го прави
Ръчното поддържане на hreflang лесно води до грешки: при десет езика и сто страници това са хиляда реда, които всички трябва да са верни. Оставете това на системата на Вашия уебсайт. При многоезичен сайт AI Builder на WebOké поставя на всяка страница hreflang препратки към същата страница на другите езици, плюс x-default към основния език, и съзнателно изключва от групата страница без преведен еквивалент. В WordPress същото правят плъгините за многоезични сайтове. При други конструктори на сайтове ще го намерите под имена като „езици“ или „международни“. След това проверете сами дали препратките са верни в двете посоки. Точно това прави задачата.
Обобщение
- hreflang показва кои страници са езикови версии или версии за държави една на друга; той не разпознава езика и не е трик за класиране.
- Всяка версия има собствен адрес, без автоматично пренасочване според езика или местоположението.
- Всяка версия посочва себе си и всички останали с пълни адреси и всяка препратка трябва да има обратна; иначе Google я пренебрегва.
- Кодове: език от ISO 639-1, по желание с държава от ISO 3166-1 alpha-2 (
en-GB, а неen-UK);x-defaultза всички останали. - Всяка версия има canonical към самата себе си; hreflang сочи само към канонични адреси, които връщат 200.
Тест
Задача
Задача A3.6: Взаимни ли са Вашите hreflang препратки? Въведете адреса на страница, която съществува на няколко езика. Програмата събира hreflang препратките от head и от хедъра Link, проверява кодовете и препратката към самата страница, зарежда всяка друга езикова версия и проверява дали тя сочи обратно, връща 200, няма noindex и има canonical към самата себе си. Нямате собствен многоезичен сайт? Използвайте https://european-union.europa.eu/index_nl.
Прочетете още
- Google Search Central, Информиране на Google за локализирани версии на Вашата страница: https://developers.google.com/search/docs/specialty/international/localized-versions
- Google Search Central, Управление на многоезични и международни сайтове: https://developers.google.com/search/docs/specialty/international/managing-multi-regional-sites
- Google Search Central, Обединяване на дублирани URL адреси: https://developers.google.com/search/docs/crawling-indexing/consolidate-duplicate-urls
- Кодове на езици ISO 639 (Library of Congress): https://www.loc.gov/standards/iso639-2/php/code_list.php
- Многоезичен уебсайт и Google: отделни адреси и hreflang
