Продвижение сайтов & web-аналитика

Выберите язык

Задать вопрос +38 096 558 7514

Hreflang в мультиязычности

Одним из самых последних трендов сайтостроения в Украине является добавление на сайт мультиязычности, для реализации которой требуется наличие hreflang на технической стороне сайта.

Владелец сайта порой может и не знать об этой директиве, пока не переведет сайт на несколько языков и ему не прийдет уведомление из Google Search Console. Постараемся разъяснить максимально коротко, что же такое hreflang и как его правильно использовать. Максимум полезной информации без лишних слов.

Hreflang - это специальный HTML-атрибут сайта, используемый для указания наличия языковых версий страниц.

Именно hreflang указывает роботу Google, что данная страница есть на таких-то языках, и какой URL ведет на страницу по-умолчанию, если перевода для данной страницы нет.

Hreflang в html

Hreflang имеет следующий вид в коде html:


<link href="https://holostenko.ua/contacts" rel="alternate" hreflang="ru" />
<link href="https://holostenko.ua/uk/contacts" rel="alternate" hreflang="uk-UA" />
<link href="https://holostenko.ua/contacts" rel="alternate" hreflang="x-default" />

Разберем по порядку что и зачем:

  • rel="alternate" - атрибут html тега link, который сообщает Google обо всех языковых версиях данной страницы;
  • hreflang="код языка и страны" - указание языка конкретной языковой версии и к какой стране он имеет отношение (язык прописывается в формате ISO 639-1 и страна в формате ISO 3166-1 Alpha 2). Для Украины hreflang будет следующим - hreflang="uk-UA";
  • x-default - основная версия страницы или как часто говорят резервная, предусматривается в том случае, если пользователь не найдет своего языка, то есть как страница по умолчанию.

* Атрибуты hreflang прописываются в раздел <head> html страницы.

Hreflang и SEO

Выше мы уже обсудили, что с помощью атрибута hreflang мы указываем языковую версию сайта для Google. Чисто теоретически поисковая машина должна у себя в базе хранить эти данные, и когда запрос пользователя осуществляется на конкретном языке - поисковая машина должна отдавать ответы на этом же языке, если такой ответ в машине имеется. По нашим ручным тестам это работает.

Но, основная польза hreflang в seo не только эта, но и решение проблемы рисков дублированного контента (“дубли сайта”, если на языке сеошников).

Дубль контента - это ситуация, когда один и тот же контент представлен на нескольких страницах сайта.

Представим ситуацию, когда один сайт продает на нескольких рынках сбыта в разных валютах на одном языке. К примеру, это Великобритания и США. Получится несколько карточек товара, которые будут отличаться лишь условиями доставки и ценой. Для Google это будет интерпретироваться как дублированный контент, но если указать hreflang в конкретных языковых версиях, этот вопрос будет решен.

По сути, hreflang является обязательным атрибутом для технической seo оптимизации мультиязычного сайта. И без него никак.

Hreflang в WordPress, Joomla, Opencart и других

Из нашего опыта с сайтами над которыми мы работали, если сайт обладает инструментом мультиязычности, то hreflang автоматически внедрен. Не нужно нигде ничего допиливать. Это железное правило для Wordpress, Joomla, Opencart.

О реализации hreflang стоит задуматься небольшим сайтам на html без CMS и большим проектам на Laravel (выше мы рассказали как внедрить hreflang в html).

Правила реализации hreflang, которые лучше не нарушать

Парность

Если Вы на странице с английским языком указываете 2 атрибута hreflang в которых есть ссылка на другой язык, то на странице с другим языком ссылки с атрибутами hreflang тоже обязательно должны быть.

Указание на себя

Ссылки с атрибутами hreflang должны указывать не только на другие языковые версии, но и указывать ссылку на саму себя.

Указание резервной страницы

С точки зрения html “x-default” - можно не указывать, но Google это рекомендует сделать.

Отсутствие битых страниц

Не должно быть в тегах ссылок на страницы, статус которых отдает 404.

Несовпадение языков

Язык мультиязычных страниц должен совпадать с кодами, которые указаны для языков в hreflang.

Альтернативные способы реализации hreflang

Если в html у Вас ничего не получается, хотя это самый рабочий способ, то есть еще 2 альтернативных:

  • HTTP-заголовки. Актуальный способ для страниц без html, а именно ссылки на скачивание файлов либо инсталляционные пакеты.
  • Файлы Sitemap. Прописывание осуществляется через тег “xhtml: link”. Совершенно аналогично, как и в способе html в директории <url> прописываются ссылки на другие языковые версии сайтов с помощью “xhtml: link”. Пример прилагаем.

<url>
<loc>https://example.com/blog/test/</loc>
<xhtml: link rel = "alternate" hreflang = "x-default" href = "https://example.com/blog/test/ "/>
<xhtml: link rel =" alternate "hreflang =" ru" href ="https://example.com/blog/test/ "/>
<xhtml: link rel =" alternate "hreflang ="uk" href =" https://example.com/blog/uk/test/ "/>
</url>

Hreflang Test (проверка на валидность)

В интернете есть несколько сайтов, которые предлагают услуги моментальной тест проверки hreflang. Но, все по порядку.

  • Если у Вас будут ошибки, Вам об этом в первую очередь сообщит Google Search Console в отчете покрытие или уведомлением на e-mail.
  • Если, Вы желаете проверить свою конкретную страницу - самый адекватный сайт-тест hreflang этот app.hreflang.org.

Запустив проверку, Вы должны получить положительный ответ:

тест hreflang

Вы должны получить зеленый тест. Если же что-то не так, тогда проверяете html.

На этом все. Надеемся, для Вас этот материал был полезным, понятным и без лишней информации. Желаем Вам успехов в реализации hreflang и мультиязычности для Вашего сайта.

Если у Вас есть вопросы по нашим услугам, пожалуйста напишите, как с Вами связаться и кратко опишите свой бизнес.

* Ваши личные данные полностью защищены и не будут переданы третьим лицам.

Выберите, каким способом С Вами лучше связаться.

  • United States+1
  • United Kingdom+44
  • Afghanistan (‫افغانستان‬‎)+93
  • Albania (Shqipëri)+355
  • Algeria (‫الجزائر‬‎)+213
  • American Samoa+1
  • Andorra+376
  • Angola+244
  • Anguilla+1
  • Antigua and Barbuda+1
  • Argentina+54
  • Armenia (Հայաստան)+374
  • Aruba+297
  • Ascension Island+247
  • Australia+61
  • Austria (Österreich)+43
  • Azerbaijan (Azərbaycan)+994
  • Bahamas+1
  • Bahrain (‫البحرين‬‎)+973
  • Bangladesh (বাংলাদেশ)+880
  • Barbados+1
  • Belarus (Беларусь)+375
  • Belgium (België)+32
  • Belize+501
  • Benin (Bénin)+229
  • Bermuda+1
  • Bhutan (འབྲུག)+975
  • Bolivia+591
  • Bosnia and Herzegovina (Босна и Херцеговина)+387
  • Botswana+267
  • Brazil (Brasil)+55
  • British Indian Ocean Territory+246
  • British Virgin Islands+1
  • Brunei+673
  • Bulgaria (България)+359
  • Burkina Faso+226
  • Burundi (Uburundi)+257
  • Cambodia (កម្ពុជា)+855
  • Cameroon (Cameroun)+237
  • Canada+1
  • Cape Verde (Kabu Verdi)+238
  • Caribbean Netherlands+599
  • Cayman Islands+1
  • Central African Republic (République centrafricaine)+236
  • Chad (Tchad)+235
  • Chile+56
  • China (中国)+86
  • Christmas Island+61
  • Cocos (Keeling) Islands+61
  • Colombia+57
  • Comoros (‫جزر القمر‬‎)+269
  • Congo (DRC) (Jamhuri ya Kidemokrasia ya Kongo)+243
  • Congo (Republic) (Congo-Brazzaville)+242
  • Cook Islands+682
  • Costa Rica+506
  • Côte d’Ivoire+225
  • Croatia (Hrvatska)+385
  • Cuba+53
  • Curaçao+599
  • Cyprus (Κύπρος)+357
  • Czech Republic (Česká republika)+420
  • Denmark (Danmark)+45
  • Djibouti+253
  • Dominica+1
  • Dominican Republic (República Dominicana)+1
  • Ecuador+593
  • Egypt (‫مصر‬‎)+20
  • El Salvador+503
  • Equatorial Guinea (Guinea Ecuatorial)+240
  • Eritrea+291
  • Estonia (Eesti)+372
  • Eswatini+268
  • Ethiopia+251
  • Falkland Islands (Islas Malvinas)+500
  • Faroe Islands (Føroyar)+298
  • Fiji+679
  • Finland (Suomi)+358
  • France+33
  • French Guiana (Guyane française)+594
  • French Polynesia (Polynésie française)+689
  • Gabon+241
  • Gambia+220
  • Georgia (საქართველო)+995
  • Germany (Deutschland)+49
  • Ghana (Gaana)+233
  • Gibraltar+350
  • Greece (Ελλάδα)+30
  • Greenland (Kalaallit Nunaat)+299
  • Grenada+1
  • Guadeloupe+590
  • Guam+1
  • Guatemala+502
  • Guernsey+44
  • Guinea (Guinée)+224
  • Guinea-Bissau (Guiné Bissau)+245
  • Guyana+592
  • Haiti+509
  • Honduras+504
  • Hong Kong (香港)+852
  • Hungary (Magyarország)+36
  • Iceland (Ísland)+354
  • India (भारत)+91
  • Indonesia+62
  • Iran (‫ایران‬‎)+98
  • Iraq (‫العراق‬‎)+964
  • Ireland+353
  • Isle of Man+44
  • Israel (‫ישראל‬‎)+972
  • Italy (Italia)+39
  • Jamaica+1
  • Japan (日本)+81
  • Jersey+44
  • Jordan (‫الأردن‬‎)+962
  • Kazakhstan (Казахстан)+7
  • Kenya+254
  • Kiribati+686
  • Kosovo+383
  • Kuwait (‫الكويت‬‎)+965
  • Kyrgyzstan (Кыргызстан)+996
  • Laos (ລາວ)+856
  • Latvia (Latvija)+371
  • Lebanon (‫لبنان‬‎)+961
  • Lesotho+266
  • Liberia+231
  • Libya (‫ليبيا‬‎)+218
  • Liechtenstein+423
  • Lithuania (Lietuva)+370
  • Luxembourg+352
  • Macau (澳門)+853
  • North Macedonia (Македонија)+389
  • Madagascar (Madagasikara)+261
  • Malawi+265
  • Malaysia+60
  • Maldives+960
  • Mali+223
  • Malta+356
  • Marshall Islands+692
  • Martinique+596
  • Mauritania (‫موريتانيا‬‎)+222
  • Mauritius (Moris)+230
  • Mayotte+262
  • Mexico (México)+52
  • Micronesia+691
  • Moldova (Republica Moldova)+373
  • Monaco+377
  • Mongolia (Монгол)+976
  • Montenegro (Crna Gora)+382
  • Montserrat+1
  • Morocco (‫المغرب‬‎)+212
  • Mozambique (Moçambique)+258
  • Myanmar (Burma) (မြန်မာ)+95
  • Namibia (Namibië)+264
  • Nauru+674
  • Nepal (नेपाल)+977
  • Netherlands (Nederland)+31
  • New Caledonia (Nouvelle-Calédonie)+687
  • New Zealand+64
  • Nicaragua+505
  • Niger (Nijar)+227
  • Nigeria+234
  • Niue+683
  • Norfolk Island+672
  • North Korea (조선 민주주의 인민 공화국)+850
  • Northern Mariana Islands+1
  • Norway (Norge)+47
  • Oman (‫عُمان‬‎)+968
  • Pakistan (‫پاکستان‬‎)+92
  • Palau+680
  • Palestine (‫فلسطين‬‎)+970
  • Panama (Panamá)+507
  • Papua New Guinea+675
  • Paraguay+595
  • Peru (Perú)+51
  • Philippines+63
  • Poland (Polska)+48
  • Portugal+351
  • Puerto Rico+1
  • Qatar (‫قطر‬‎)+974
  • Réunion (La Réunion)+262
  • Romania (România)+40
  • Russia (Россия)+7
  • Rwanda+250
  • Saint Barthélemy+590
  • Saint Helena+290
  • Saint Kitts and Nevis+1
  • Saint Lucia+1
  • Saint Martin (Saint-Martin (partie française))+590
  • Saint Pierre and Miquelon (Saint-Pierre-et-Miquelon)+508
  • Saint Vincent and the Grenadines+1
  • Samoa+685
  • San Marino+378
  • São Tomé and Príncipe (São Tomé e Príncipe)+239
  • Saudi Arabia (‫المملكة العربية السعودية‬‎)+966
  • Senegal (Sénégal)+221
  • Serbia (Србија)+381
  • Seychelles+248
  • Sierra Leone+232
  • Singapore+65
  • Sint Maarten+1
  • Slovakia (Slovensko)+421
  • Slovenia (Slovenija)+386
  • Solomon Islands+677
  • Somalia (Soomaaliya)+252
  • South Africa+27
  • South Korea (대한민국)+82
  • South Sudan (‫جنوب السودان‬‎)+211
  • Spain (España)+34
  • Sri Lanka (ශ්‍රී ලංකාව)+94
  • Sudan (‫السودان‬‎)+249
  • Suriname+597
  • Svalbard and Jan Mayen+47
  • Sweden (Sverige)+46
  • Switzerland (Schweiz)+41
  • Syria (‫سوريا‬‎)+963
  • Taiwan (台灣)+886
  • Tajikistan+992
  • Tanzania+255
  • Thailand (ไทย)+66
  • Timor-Leste+670
  • Togo+228
  • Tokelau+690
  • Tonga+676
  • Trinidad and Tobago+1
  • Tunisia (‫تونس‬‎)+216
  • Turkey (Türkiye)+90
  • Turkmenistan+993
  • Turks and Caicos Islands+1
  • Tuvalu+688
  • U.S. Virgin Islands+1
  • Uganda+256
  • Ukraine (Україна)+380
  • United Arab Emirates (‫الإمارات العربية المتحدة‬‎)+971
  • United Kingdom+44
  • United States+1
  • Uruguay+598
  • Uzbekistan (Oʻzbekiston)+998
  • Vanuatu+678
  • Vatican City (Città del Vaticano)+39
  • Venezuela+58
  • Vietnam (Việt Nam)+84
  • Wallis and Futuna (Wallis-et-Futuna)+681
  • Western Sahara (‫الصحراء الغربية‬‎)+212
  • Yemen (‫اليمن‬‎)+967
  • Zambia+260
  • Zimbabwe+263
  • Åland Islands+358
Спасибо! Ваше сообщение отправлено.
Отправка не удалась. Пожалуйста, исправьте ошибки и попробуйте еще раз.