.animate-view{opacity: 1 !important;}

Hreflangi. Jak prawidłowo oznaczać wersje językowe strony?



Hreflangi. Jak prawidłowo oznaczać wersje językowe strony?d-tags
22 lutego 2023
Not-fun fact: według raportu przeprowadzonego przez SEMrush w 2017 roku, ok. 75% wielojęzycznych stron posiada źle wdrożone hreflangi lub nie posiada ich wcale. Może to zrodzić kilka pytań, jak - i po co - używać ich poprawnie.



Table of contents:

  1. What is a hreflang?
  2. Implementation
  3. Managing hreflangs and technical aspects
  4. Useful tools
  5. What to pay attention to – the most frequent mistakes
  6. Conclusion

Thanks to a detailed analysis performed by SEMrush with its tool, it was possible to check whether 20 thousands of analysed pages have implemented the hreflang tag properly, according to Google standards. The results showed how many mistakes were made when it comes to hreflang implementation. The main conclusion coming from this research is that ¾ of the analysed websites used the attribute improperly, or didn’t use it at all.

What is a hreflang?

Hreflang tag serves to inform the search engine bots that a given website has various language versions, meant for the visitors who speak different languages or come from different regions – i.e. countries with the same official language, such as Germany and Austria. It is, therefore, one of the important aspects of international SEO services.

In HTML language, there’s a lang attribute that describes the content of a given site. It doesn’t mention the availability of other language versions, though – and this is precisely what hreflangs are for. In practice, we get two important benefits of using them:

  1. Hreflangs can actually decrease the bounce rate since visitors are redirected to the most appropriate version of the website.
  2. Pages linked to one another with hreflangs won’t be treated as a duplicated content. That could happen in the case of separate sites for visitors coming from the US and Great Britain – the content would be similar, with only a few differences such as currency or travel costs. Thanks to hreflangs, we can inform the search engine bots that it’s still the same content, but it’s meant for a different audience.

John Mueller himself, who is often named as “the link between Google and the rest of the world”, admitted that hreflangs are one of the most complex aspects of SEO in his opinion. He was even asked to record a video on that topic – but he explained that it would take a proper online course rather than a 5-minute movie to clarify it. Nonetheless, he added that basic use and implementation are not that difficult.

Search engines that support hreflangs

Hreflangs are interpreted “only” by three search engines. But, the fact that one of those three is Google makes it much more relevant. The other two engines are Yandex and Seznam. In other cases, we’ll have to count on the language tag (<meta lang=”xx”>). Still, only Google handles hreflangs implemented differently than in HTML code.

The way hreflang works

When implemented properly, the hreflang attribute will inform the search engine bots about all the language versions available. When the search engine user starts the research, Google will first determine which address to put where in the search engine results page, and then check whether there are other language versions of the website that might suit the user better.

How does tag for language specific version of the page work?

Hreflang attribute vs. Google rank

As a result, hreflangs shouldn’t be treated as a ranking factor. Optimizing or building links to only one language version won’t affect the other versions of the site in terms of their position in SERP. Not directly, that is. Implementing such attributes properly will help you decrease the bounce rate and eliminate duplicated content, which can easily influence the rank of the website.


Basically, hreflang implementation can be done in three different ways:

  1. In the head section
  2. In HTTP headers
  3. In the XML sitemap

Hreflangs in the head section

The tag will have the following structure:

<link rel=”alternate” hreflang=”language_code-region_code” href=”website-url”>

The language code should be inserted accordingly to the ISO 639-1, format, whereas region code (according to ISO 3166-1 Alpha 2 format), is optional. Below you’ll find more details on when it’s worth using it. Still, the URL address should be absolute.

We have to add a proper hreflang tag to every language version of the website, as well as an additional URL that drives traffic to a given subpage. In order for the implementation to be correct, such a combination of hreflangs should be inserted on every version of the site.

For example, if our website is available in three language versions: Polish, English, and German (excluding the actual countries) – http://mywebsite.com (pl), http://mywebsite.com/en and http:/mywebsite.com/de, then on every site, we have to input the whole combination:

<link rel=”alternate” hreflang=”pl” href=”http://mywebsite.com”>
<link rel=”alternate” hreflang=”en” href=”http://mywebsite.com/en”>
<link rel=”alternate” hreflang=”de” href=”http://mywebsite.com/de”>

As can be seen, we always add the tag with a link to a website to which we add this combination.

Additionally, it’s worth adding an extra tag that will take into account the visitors who don’t speak any of those languages. In this case, the best solution is to redirect them to the English version of the site, therefore:

<link rel=”alternate” hreflang=”x-default” href=”http://mywebsite.com/en”>

You’ll read more about x-default hreflang below.

Hreflangs in HTTP headers

HTTP header is another piece of information attached to the requests sent to and by servers (“cookies” serve as a good example of such headers). This method is useful when it comes to files that have no HTML format – i.e. PDFs.

The header should have the following format:

Link: <url-1>; rel=”alternate”; hreflang=”language_code_1-region_code_1”, <url-2>; rel=”alternate”; hreflang=”language_code_2-region_code_2”, …

The language and region codes are corresponding to HTML tags. If we go back to our example, the headers will look as follows:

Link: <http://mywebsite.com>; rel=”alternate”; hreflang=”pl”,  <http://mywebsite.com/en>; rel=”alternate”; hreflang=”en”, <http://mywebsite.com/de>; rel=”alternate”; hreflang=”de”

To each language version of the website, there should be the same combination of headers used, in which specific parameters are separated with commas. The parameter redirecting to the current web page should be included in this set as well.

Hreflangs in the XML sitemap

Hreflangs can also be implemented with relevant tags in the XML sitemap. The template for two language versions of one subpage looks as follows:

<xhtml:link rel="alternate" hreflang="language_code_1-region_code_1"  href="url-1" />
<xhtml:link rel="alternate" hreflang="language_code_2-region_code_2"  href="url-2" />
<xhtml:link rel="alternate" hreflang="language_code_1-region_code_1"  href="url-1" />
<xhtml:link rel="alternate" hreflang="language_code_2-region_code_2"  href="url-2" />

It means, then, that in our case there should be the following code included in the XML sitemap:

<xhtml:link rel="alternate" hreflang="pl"  href="http://mywebiste.com" />
<xhtml:link rel="alternate" hreflang="en"  href="http://mywebiste.com/en" />
<xhtml:link rel="alternate" hreflang="de"  href="http://mywebiste.com/de" />

<xhtml:link rel="alternate" hreflang="pl"  href="http://mywebiste.com" />
<xhtml:link rel="alternate" hreflang="en"  href="http://mywebiste.com/en" />
<xhtml:link rel="alternate" hreflang="de"  href="http://mywebiste.com/de" />
<xhtml:link rel="alternate" hreflang="pl"  href="http://mywebiste.com" />
<xhtml:link rel="alternate" hreflang="en"  href="http://mywebiste.com/en" />
<xhtml:link rel="alternate" hreflang="de"  href="http://mywebiste.com/de" />

General rules for hreflang implementation

Apart from the above-mentioned guidelines, there are a few more rules we should take into account when implementing hreflangs.

  • Always consider all language versions and a current subpage.
    language specific version tag for 2 sites

    We have two language versions – both are linked with hreflangs. As a result, there will be two hreflangs on each version – one for the alternative version, and one to the current version plus x-default. This doesn’t seem that complicated… Yet.

    hreflang implementation for 3 sites

    Having three language versions means that each of them will be linked to others. Therefore, we should have three hreflangs on each subpage – one linking to the current subpage, two to other language versions, plus x-default on every one of them.

    Hreflang implementation on 4 and more websites

    Each subsequent language version (or one dedicated to a specific region) needs its own hreflang to be added.

  • All the URL addresses have to be full (with the http/https protocol).
  • We can also mix the addresses coming from different domains and subdomains, not only language catalogues (i.e. http://pl.mywebsite.com and http://en.mywebsite.com, or http://mywebsite.pl and http://mywebsite.en)
  • In order for the hreflang to be taken into account by the search engine bots, both subpages have to link to one another. It’s for security reasons – basically, no one else can tag your website as an alternative version of theirs.
  • Hreflangs should be added on every subpage, with accurate URL paths. Linking only your main pages won’t be enough!
  • There’s no difference when it comes to the sequence in which we add subsequent versions of the website. The version that is tagged the most accurately, with the language code and region code, will be indicated first – then, the one that has the language code, whereas the last one will include x-default parameter.
  • It’s always worth to set up the x-default parameter for those users who we didn’t specify the language for, redirecting them to the most popular language version.
  • In order for Google to take hreflangs into account, all connected pages have to be in the index.
Expert Comment

If I had to point out one piece of advice for anyone planning to start implementing different language versions to the website it would be: don’t rush. It’s a step that can really weigh on the effectiveness of your SEO, so it can’t be an impulsive choice. Take your time and consider your options, possible technical solutions to make sure that implementation of the new language version will be effective & will be working for your business

Matt Calik Delante
Matt Calik
Head of SEO & SEM

BONUS: Google Tag Manager

Google Tag Manager provides another opportunity to implement hreflangs. This method, however, is not included in the official Google documentation. Their authors claim that it works, though. Some of the elements listed might seem debatable, but many specialists say that GTM gives a lot of possibilities when it comes to SEO.

The whole concept is based on the usage of “Element DOM” variable. Thanks to this variable, it’s possible to build a tag which will dynamically generate hreflangs for every subpage. This method might seem complicated for someone who doesn’t have experience with Google Tag Manager or JavaScript – but all you have to do is to set it all up once and you can be sure that GTM will automatically generate the right set of hreflangs for every page.

You can find a detailed instructions on how to set up the tag on the SearchVIU blog. At the end of this blog post, you’ll find an example that proves that this method works. Theoretically – it should, but using JavaScript might raise doubts whether Google bots will manage to render such a code fragment in every case.

Managing hreflangs and technical aspects

Choosing the implementation method

The implementation of hreflangs with HTML tags or HTTP headers can be inconvenient, especially if we have more than a few language versions. It’s mostly due to the fact that it increases the number of database requests that has to generate those links. Additionally, for 20 language versions, the code needed for proper hreflang implementation will weigh approximately 1,5 KB. It doesn’t seem like much, but it will influence the page load speed, which is currently one of the important ranking factors. Basically, every second counts – which is why we should always stick to as few hreflangs as possible.

Adding the hreflang attribute to the XML sitemap, on the other hand, seems like the best solution for complex, multilingual sites. We don’t burden the subpages, which affects their speed. Simplicity is another benefit – it’s easier to implement and manage hreflangs from one place, rather than editing every single subpage.

Language and region codes

Hreflangs make it possible to link not only different language versions of the website but also the same language versions that are meant for visitors from different countries. It’s especially important when we address the visitors coming from multilingual countries.

For example: if our website is in English, but we have two different versions for the visitors coming from the US and Great Britain, then we should add relevant tags: “en-US”, or “en-GB”. The website, however, can also be visited by Australians, Canadians, or any other English-speaking users. T

For example: if our website is in English, but we have two different versions for the visitors coming from the US and Great Britain, then we should add relevant tags: “en-US”, or “en-GB”. The website, however, can also be visited by Australians, Canadians, or any other English-speaking users. There’s no need to specify the hreflang for each country because you can add only the language code “en” and determine which versions should be displayed to those who are not from the US or Great Britain.

Another example: We operate in Switzerland, which is why we maintain the website in two languages: German and French. We should then have four different language versions:

  • A French version of the website for Switzerland  (hreflang=”fr-ch”)
  • A German version of the website for Switzerland (hreflang=”de-ch”)
  • General French version (hreflang=”fr”)
  • General German version (hreflang=”fr”)

We’re not limited in any way by the official languages of a given region. We can mix languages and regions however we want to. For example, if we wish to create a subpage for German-speaking users in France, we would use hreflang=”de-fr”.

In some cases, the language tag can be extended with subtags, i.e. Extended Language Tag (according to the ISO 339-3 classification) or Script (ISO 15924). Such a situation can occur when our website is, as an example, in Uzbek – but in the Latin alphabet. Then, we would use “uz-Latn”. This example shows exactly how rare such cases are.

Download our free International SEO checklist and conquer global markets!

Download now!

X-default attribute

At the very beginning, the x-default variable in hreflangs was meant to redirect the visitors to the international version of the website. Currently, however, it aims to serve the users whose language and location are not related to any hreflangs. Coming back to the US-Great Britain example: technically, we could replace the “general, English-speaking” URL with an address including x-default, because both of them would redirect to the same website. Still, it’s better to keep both, since a URL with “en” tag would make it easier for the crawlers to understand the content of the website.

Hreflangs vs. canonical addresses

Hreflangs don’t replace canonical links in any way – they should complement each other. In fact, a hreflang tag added to a site without a canonical tag simply won’t work. We should then add the canonical tag to every subpage. Therefore:

  1. On the website http://mywebsite.com we should add:

<link rel=”cannonical” href=”http://mywebsite.com”>
<link rel=”alternate” hreflang=”pl” href=”http://mywebsite.com”>
<link rel=”alternate” hreflang=”en” href=”http://mywebsite.com/en”>
<link rel=”alternate” hreflang=”de” href=”http://mywebsite.com/de”>

  1. On the website http://mywebsite.comen:

<link rel=”cannonical” href=”http://mywebsite.com/en”>
<link rel=”alternate” hreflang=”pl” href=”http://mywebsite.com”>
<link rel=”alternate” hreflang=”en” href=”http://mywebsite.com/en”>
<link rel=”alternate” hreflang=”de” href=”http://mywebsite.com/de”>

  1. On the website http://mywebsite.com/de:

<link rel=”cannonical” href=”http://mywebsite.com/de”>
<link rel=”alternate” hreflang=”pl” href=”http://mywebsite.com”>
<link rel=”alternate” hreflang=”en” href=”http://mywebsite.com/en”>
<link rel=”alternate” hreflang=”de” href=”http://mywebsite.com/de”>

Additionally, if our site has separate mobile (f.ex. AMP) and desktop versions, there will be some modifications needed. On the iloveseo.net we can find a chart that shows how such an implementation should look like. These guidelines were actually inspired by John Mueller and his recommendations.

Managing hreflangs:

If we manage to implement hreflangs properly, it’s not the end of the road. In order not to waste our time and effort spent on the implementation, we should make sure that everything works properly at all times. Keep in mind that:

  1. If we erase a subpage in one language version, we should also update the hreflangs of its equivalents in different languages;
  2. If we set up some redirections, however, we should add hreflangs to the new address.

It’s also worth to keep in mind that when we publish other language versions of our website after Google crawls it, we have to wait for the effects of the hreflang implementation – till its crawlers visit our site again. Before that, Google will only see hreflang coming from the translation to the original, but not the other way round. In this case, when we add hreflangs to a number of subpages (or many language versions), the process of indexing those subpages with hreflangs might take a while.

Do you need help with implementing proper hreflangs on your website? Choose our technical SEO services and let us do the hard work!

Useful tools

In order to manage hreflangs properly, we might want to use dedicated tools. As already mentioned, we can take advantage of Google Tag Manager to implement hreflangs and keep an eye on them. There are many tools that are meant exactly for the management of this attribute, though.

Hreflang Tags Generator

Hreflangs tags generator

When implementing hreflangs, it’s worth using Hreflang Tags Generator. It’s simple: we indicate the addresses of all language versions of our website, we choose what language they are in (from the list provided) or choose “default” if we want to generate the x-default attribute, and optionally select a region. Then, we have to specify whether we want the code exported to the HTML file or XML sitemap, and click on “Generate the hreflang tags for these urls”. You can also upload your CSV file (with up to 50 addresses) into the form, which makes the whole process even more straightforward.

Hreflang Sitemap Tool, Flang

Hreflang Generator - Flang

Hreflang Sitemap Tool works quite similarly. Thanks to this tool, we can generate a sitemap with hreflangs, based on the URLs collected in the .csv file. In this case, we’re not limited to 50 addresses – but we do have to provide our email address. Flang is also a simple tool which allows us to check whether all hreflangs on our website work properly.


Hreflang - polyang

For website managed with WordPress CMS, we can use Polylang plug, which will let us translate various elements of the website (along with media, categories, tags, menu, and or own taxonomies). It will also be possible to add hreflangs into the head section. The plug is available for free with limited functionality.


Hreflangis- oncrawl

If we need something slightly more advanced, it’s worth giving OnCrawl a try. Thanks to this tool, we’ll be able to check whether hreflangs have been implemented properly – when they link to sites on different domains,  as well as when the attribute was added to the HTTP headers or XML sitemap. OnCrawl will also spot the most common mistakes with language and region codes and will check if all subpages have the right hreflang tags. Not to mention that the interface is really intuitive. We can take advantage of the 14-day free trial to check if we want to invest in the tool in the long run.

Screaming Frog

Hreflangs - screaming frog

Screaming Frog is also quite useful if we want to check how hreflangs were implemented. In the free version, we can scan up to 500 websites. The software will let us know whenever there’s a hreflang attribute or x-default missing, as well as to what subpages the existing hreflangs refer to, and if there are any errors. In the paid version, apart from the lack of the limit, the tool also checks hreflangs added into HTTP headers and sitemaps.

Hreflang checkHreflangs list

What to pay attention to – the most frequent mistakes

1. Wrong language/region codes

Language and region codes comprise of two letters, which are often closely related to the country names. Yet, it’s easy to make mistakes, such as “eng” instead of “en” and “UK” instead of “GB”, or simply mix up the order of these codes. Plus, there are various standards when it comes to language codes – for example, Facebook might use similar letters, but applies underscores (“_”) instead of dashes (“-”).

2. Lack of hreflang referring to the current webpage

When Google visits a certain subpage and sees some links with the hreflang attribute, it will immediately know what’s going on. Yet, the official documentation says that the link to the current webpage itself is necessary in order for hreflangs to be implemented properly.

3. Hreflang implemented only for one language version of the site

Since we implemented the hreflang attribute on a given subpage, remembering about the link to the current website, then everything should work properly, right?

Only when we added the same combination of hreflangs on every language version of this subpage. Taking into account that we can link to the URLs coming from different domains – it’s a simple, yet effective guarantee that no one will tag our website as their own.

4. Using the URLs which can’t be indexed anymore, or return the server response code that is different than 200

Similarly to the mistake mentioned above – in order for the hreflang attribute to be implemented properly, the search engine has to see him on both (or every) connected subpages. It won’t work if the search engine bot is unable to display the content of one of the pages, no matter the reason (i.e. due to 4xx or 5xx errors).
increase online visibility with well implemented hreflangs

5. Hreflang only on the main page

The main page and its language versions are often highlighted to show an exemplary hreflang implementation. It might give us the impression that the attribute on the main page is everything we need, and the search engine will connect all the remaining subpages by itself.

The problem is that It won’t. Hreflangs connect specific addresses with their equivalents in other languages, and the links have to be clear for the search engine. If the main page was enough, it would be much easier. It’s also wrong to connect subpages that are not equivalent.

6. No hreflangs implemented on the sites with national domains

If we have a site with a domain, for example, .com – then adding hreflang tags seems natural. But, if we have translated versions of the site on national domains (such as “.pl”, “.de”, “.fr”), then we might be under the impression that the search engine would know exactly which version to display in the search results.

Now, it might work in certain cases. But if we’re serious about running our own website and implementing hreflangs properly, then we shouldn’t assume that “the Google bot will probably guess which site is the best in a given case”.

7. Canonical link redirecting to the default version of the website

Since our website has a couple of language versions, then one of them is probably treated as the main, aka default version. Therefore, it might be a good idea to set the rel=canonical tag to it, coming from the remaining versions of the site.

It’s a serious mistake that would eventually make those versions disappear from the search results. It’s due to the threat of duplicated content, which is a serious problem for SEO. Nonetheless, hreflangs are a sufficient piece of information for the search engine, indicating that the connected addresses have the same content, but should be displayed differently depending on the language and location of every web visitor.

Clearly, the list of mistakes can go on. If you’re not sure whether a certain case of hreflang implementation is right, let us know in the comment section below.


There might be some complexities revolving around hreflangs – but all it takes is to stick to a few simple rules and implement them gradually in order to improve the rank in search results. Choose the method of implementation (such as HTML headers or XML sitemap) that suits your needs best. Remember about having the right combination of hreflangs on every subpage, including the links to a current page.

Also, always stick to the lowest number of hreflangs possible. Check the correctness of language and region codes thoroughly, keep an eye on the implemented hreflangs, and make changes if needed. Remember that there are certain tools that can help you with that.

Thanks to proper hreflang implementation, you can beat even 75% of other websites around the globe. It seems to be worth the effort, don’t you think?

Spis treści:

  1. Co to jest hreflang?
  2. Implementacja
  3. Zarządzanie hreflangami i aspekty techniczne
  4. Przydatne narzędzia
  5. Na co zwrócić szczególną uwagę, czyli najczęstsze błędy
  6. Podsumowanie

Analizując około 20 tysięcy wielojęzycznych stron internetowych za pomocą narzędzia SEMrush przebadano poprawność wdrożenia hreflangów zgodnie ze standardami Google. Szczegółowo omówili, jak często występują poszczególne błędy. Ogólny wniosek z badania jest taki, że ¾ stron www nie korzysta – lub korzysta nieprawidłowo – z atrybutu hreflang.

Co to jest hreflang?

Atrybut hreflang służy do poinformowania robotów wyszukiwarek, iż dana podstrona ma inne wersje, przeznaczone dla odbiorców posługujących się różnymi językami, bądź pochodzących z różnych regionów – np. krajów o tym samym języku, jak Niemcy i Austria. Jest to jeden z aspektów SEO międzynarodowego.

Pozycjonowanie za granicą - Delante

W języku HTML znajduje się co prawda atrybut lang, który określa język zawartości danej strony. Nic on nie mówi jednak o innych wersjach językowych – do tego bowiem służą hreflangi. W praktyce otrzymujemy dwie wymierne korzyści z ich zastosowania:

  1. Hreflangi pozwolą nam zmniejszyć współczynnik odrzuceń. Użytkownicy będą kierowani na najbardziej dopasowaną do nich wersję naszego serwisu.
  2. Strony powiązane za pomocą atrybutu hreflang nie będą traktowane jako duplikacja treści. Tak mogłoby się zdarzyć w przypadku, gdy mamy odrębne podstrony dla np. USA i Wielkiej Brytanii – zawarta treść byłaby taka sama, różnice dotyczyłyby walut i kosztów transportu. Poprzez hreflangi informujemy wyszukiwarkę, że jest to ta sama treść skierowana dla różnych odbiorców.

Sam John Mueller, nazywany czasami “łącznikiem między Google a resztą świata”, przyznał, że jego zdaniem hreflangi są jednym z najbardziej złożonych aspektów SEO. Podpytywany o przygotowanie materiału video na ten temat stwierdził, że to materiał raczej na rozbudowany kurs, aniżeli 5-minutowy filmik. Asekuracyjnie dodał jednak, że podstawowe implementacje nie są trudne.

Wyszukiwarki wspierające hreflangi

Hreflangi są interpretowane “tylko” przez trzy wyszukiwarki. Fakt, że jedną z nich jest Google, pozwala wziąć owo “tylko” w cudzysłów. Pozostałe dwie to Yandex i Seznam. W innych będziemy musieli liczyć na znacznik języka (tag <meta lang=”xx”>). Jednak tylko Google obsługuje hreflangi wdrożone inaczej, niż poprzez znaczniki HTML.

Sposób działania

Poprawnie zaimplementowany atrybut hreflang będzie informował wyszukiwarkę o wszystkich innych dostępnych wariantach językowych. W momencie wysłania zapytania przez użytkownika, Google najpierw określi adres, który chce umieścić w wynikach wyszukiwania, dopiero w następnej kolejności sprawdza, czy dla danego adresu istnieją inne wersje językowe, spośród których wybierze najbardziej adekwatny dla użytkownika.

Jak działa hreflang?

Atrybut hreflang a ranking Google

Z tego powodu hreflangi nie powinny być traktowane jako czynnik rankingowy, a optymalizacja bądź dolinkowanie jednej wersji podstrony nie wpłynie wprost na pozycję pozostałych. Oczywiście, tylko bezpośrednio. Poprawne ich zastosowanie pomaga zmniejszyć współczynnik odrzuceń i wyeliminować duplikację treści, poprzez co już może przełożyć się na poprawę pozycji w SERP-ach.


Implementację hreflangów można przeprowadzić – zasadniczo – na trzy sposoby:

  1. W sekcji head
  2. Jako nagłówki http
  3. Poprzez mapę XML

Hreflangi w sekcji head

Tag będzie miał wówczas następującą budowę:

<link rel=”alternate” hreflang=”kod_języka-kod_regionu” href=”url-strony”>

Kod języka należy podać według formatu ISO 639-1, kod regionu, podawany według formatu ISO 3166-1 Alpha 2, jest opcjonalny. Kiedy warto go stosować omówię poniżej. Url-strony musi zawierać pełną ścieżkę bezwzględną.
Tag musimy umieścić do każdej wersji strony oraz dodatkowy url prowadzący do bieżącej podstrony. Aby implementacja była poprawna, taki zestaw hreflangów należy umieścić na każdej wersji strony.

Przykładowo, jeżeli posiadamy witrynę przygotowaną w trzech wersjach językowych: polskiej, angielskiej i niemieckiej (pomijam na razie kwestię regionów) – http://mojastrona.com (pl), http://mojastrona.com/en oraz http://mojastrona.com/de, wówczas na każdej z nich musimy umieścić cały zestaw:

<link rel=”alternate” hreflang=”pl” href=”http://mojastrona.com”>
<link rel=”alternate” hreflang=”en” href=”http://mojastrona.com/en”>
<link rel=”alternate” hreflang=”de” href=”http://mojastrona.com/de”>

Jak widać, zawsze dodajemy też znacznik z linkiem do strony, na której ów zestaw dodajemy.

Dodatkowo, warto umieścić dodatkowy tag, który będzie zbierał użytkowników, którzy nie posługują się żadnym z wymienionych języków. W naszym przykładzie najlogiczniej kierować ich na wersję w języku angielskim, zatem:

<link rel=”alternate” hreflang=”x-default” href=”http://mojastrona.com/en”>

Więcej o hreflangu z x-default przeczytasz w dalszej części.

Hreflangi w nagłówku HTTP

Nagłówek HTTP to dodatkowa informacja dołączona do zapytań wysyłanych do i przez serwery (takim nagłówkiem są np. pliki Cookies, czyli popularne ciasteczka). Metoda ta przydaje się w przypadku plików, które nie mają formatu HTML, czyli np. PDF-ów.

Nagłówek powinien mieć format:

Link: <url-1>; rel=”alternate”; hreflang=”kod_języka_1-kod_regionu_1”, <url-2>; rel=”alternate”; hreflang=”kod_języka_2-kod_regionu_2”, …

Kody języka i regionu są analogiczne, jak w przypadku tagów HTML. Trzymając się więc naszego przykładu, nagłówek będzie miał postać:

Link: <http://mojastrona.com>; rel=”alternate”; hreflang=”pl”,  <http://mojastrona.com/en>; rel=”alternate”; hreflang=”en”, <http://mojastrona.com/de>; rel=”alternate”; hreflang=”de”

Dla każdej wersji strony należy określić taki sam zestaw nagłówków, w którym parametry są oddzielone przecinkami. W skład zestawu musi wejść także parametr odsyłający do bieżącej strony.

Hreflangi w mapie witryny

Hreflangi można wdrożyć także za pomocą znaczników XML w mapie witryny. Schemat dla dwóch wersji jednej podstrony prezentuje się następująco:

<xhtml:link rel="alternate" hreflang="kod_języka_1-kod_regionu_1"  href="url-1" />
<xhtml:link rel="alternate" hreflang="kod_języka_2-kod_regionu_2"  href="url-2" />
<xhtml:link rel="alternate" hreflang="kod_języka_1-kod_regionu_1"  href="url-1" />
<xhtml:link rel="alternate" hreflang="kod_języka_2-kod_regionu_2"  href="url-2" />

Czyli w naszym przykładzie w mapie witryny powinien się pojawić następujący kod:
<xhtml:link rel="alternate" hreflang="pl"  href="http://mojastrona.com" />
<xhtml:link rel="alternate" hreflang="en"  href="http://mojastrona.com/en" />
<xhtml:link rel="alternate" hreflang="de"  href="http://mojastrona.com/de" />

<xhtml:link rel="alternate" hreflang="pl"  href="http://mojastrona.com" />
<xhtml:link rel="alternate" hreflang="en"  href="http://mojastrona.com/en" />
<xhtml:link rel="alternate" hreflang="de"  href="http://mojastrona.com/de" />
<xhtml:link rel="alternate" hreflang="pl"  href="http://mojastrona.com" />
<xhtml:link rel="alternate" hreflang="en"  href="http://mojastrona.com/en" />
<xhtml:link rel="alternate" hreflang="de"  href="http://mojastrona.com/de" />

Ogólne zasady implementacji hreflangów

Oprócz powyższych zaleceń jest także kilka ogólnych uwag, o których musimy pamiętać, wdrażając hreflangi.

  • Zawsze musimy uwzględnić wszystkie inne wersje językowe oraz aktualną podstronę.
    Jak dodać hreflangi?

    Mamy dwie wersje językowe. Obie są ze sobą powiązane hreflangami. Na każdej będą więc dwa hreflangi – jeden do wersji alternatywnej, drugi do samej siebie plus x-default. Póki co, jest to dość proste…

    Hreflangi dla 3 wersji językowych

    Trzy wersje językowe, każda wskazuje na wszystkie pozostałe. Powinniśmy więc mieć na każdej podstronie trzy hreflangi – jeden do samej siebie, dwa do pozostałych wersji podstrony plus x-default na każdej.

    Hreflang - dodawanie linkowanie do siebie

    Każda kolejna wersja językowa (lub regionalna) to kolejny hreflang do dodania.

  • Podawane adresy URL muszą być pełne, tzn. obejmować także protokół http/https.
  • Możemy łączyć adresy także z różnych domen i subdomen, nie tylko katalogów językowych (np. http://pl.mojastrona.com i http://en.mojastrona.com, czy http://mojastrona.pl i http://mojastrona.en)
  • Aby hreflang został wzięty pod uwagę, obie podstrony muszą nawzajem na siebie wskazywać. Jest to swego rodzaju zabezpieczenie, dzięki któremu nikt nie będzie mógł wskazać twojej strony jako alternatywnej wersji swojej witryny.
  • Hreflangi należy ustawić na każdej podstronie, dla każdej podstrony podając dokładne ścieżki URL. Powiązanie różnych wersji strony głównej nie wystarczy!
  • Nie ma natomiast znaczenia kolejność, w jakiej podajemy kolejne wersje strony. Zawsze wskazana zostanie najbardziej szczegółowa, czyli zawierająca kod języka i kod regionu, następnie kod języka, a jako ostatnie zawierająca x-default.
  • Zawsze warto ustawiać parameter x-default dla użytkowników, dla których nie sprecyzowaliśmy języka, odsłyjąc ich do wersji przygotowanej w najbardziej popularnym języku.
  • Aby Google wziął pod uwagę hreflangi, wszystkie powiązane strony muszą być w indeksie.
Komentarz specjalisty

Gdybym miał wskazać jedną radę dla każdego, kto planuje rozpocząć wdrażanie różnych wersji językowych na stronie internetowej, to byłoby to: nie spiesz się. To krok, który może naprawdę zaważyć na skuteczności Twojego SEO, więc nie może być to impulsywne działanie. Poświęć czas, zastanów się nad różnymi opcjami, możliwymi rozwiązaniami technicznymi, aby upewnić się, że wdrożenie nowej wersji językowej będzie skuteczne i będzie działać na korzyść Twojej firmy.

Mateusz Calik Delante
Mateusz Calik
Head of SEO & SEM

BONUS: Google Tag Manager

Dodatkową metodą wdrożenia hreflangów na stronę jest skorzystanie z Google Tag Managera. Zaznaczmy jednak, że metoda ta nie znajduje się w oficjalnej dokumentacji Google. Jej autorzy twierdzą jednak, że działa. Kilka elementów może uchodzić za dyskusyjne, niemniej już od jakiegoś czasu nie brak specjalistów, którzy twierdzą, że GTM daje olbrzymie możliwości dla SEO.

Cały koncept opiera się na wykorzystaniu zmiennej “Element DOM”. Za jej pomocą można skonstruować taki tag, który dynamicznie będzie generował hreflangi dla każdej podstrony. Metoda ta może wydawać się skomplikowana dla kogoś, kto nie miał wcześniej styczności z Menadżerem Tagów czy JavaScriptem. Wystarczy jednak to skonfigurować raz i mieć pewność, że GTM automatycznie już wygeneruje zestaw hreflangów dla każdej podstrony.

Po szczegółową instrukcję, jak skonfigurować cały tag, można znaleźć na blogu SearchVIU. Na końcu tekstu znajdziemy przykład, który udowadnia, że metoda ta działa. Teoretycznie – powinna, jednak zastosowanie JavaScriptu może rodzić wątpliwości, czy roboty Google zawsze i w każdym przypadku poradzą sobie z wyrenderowaniem tego fragmentu kodu.

Zarządzanie hreflangami i aspekty techniczne

Wybór metody implementacji

Implementacja hreflangów za pomocą tagów HTML bądź nagłówków HTTP generuje pewną niedogodność, która staje się problemem, gdy mamy więcej, niż kilka wersji językowych. Zwiększa to bowiem liczbę zapytań bazy danych, która musi te linki wygenerować. Dodatkowo, dla 20 wersji językowych kod, potrzebny do poprawnego wdrożenia hreflangów dla pojedynczej podstrony, będzie ważył ok. 1,5 KB. Niby nie dużo, ale prędkość ładowania się strony jest obecnie jednym z czynników rankingowych. Liczy się każda setna sekundy. Praktyczny wniosek jest taki, iż powinniśmy się zawsze trzymać minimalnej, potrzebnej liczby hreflangów.

Dodanie atrybutu hreflang za pomocą mapy witryny, choć to metoda najbardziej “rozwlekła”, wydaje się najlepszym rozwiązaniem dla rozbudowanych, wielojęzykowych stron. Nie obciążamy bowiem kolejnych podstron – co negatywnie wpłynęłoby na ich czas ładowania. Drugim dużym plusem jest prostota – łatwiej wdrażać i zarządzać hreflangami zebranymi w jednym pliku, niż edytować po kolei wszystkie strony witryny.

Kody języka i regionu

Hreflangi umożliwiają nam powiązanie ze sobą treści nie tylko w różnych wersjach językowych, lecz także przygotowanych w tym samym języku lecz dla odbiorców z różnych krajów. Szczególnej uwagi będzie wymagało wdrożenia hreflangów dla strony, która adresowana jest do odbiorców z krajów wielojęzycznych.

Przykładowo: jeżeli nasza strona została przygotowana w języku angielskim, a mamy przygotowane różne wersje podstrony dla odbiorców z USA i z Wielkiej Brytanii, wówczas w pierwszej powinniśmy zastosować kod “en-US”, a w drugiej “en-GB”. Taką stronę mogą jednak odwiedzać anglojęzyczni użytkownicy z Australii, Kanady czy innych krajów. Nie ma potrzeby, by dla każdego kraju precyzować hreflang. Dla wszystkich użytkowników anglojęzycznych można ustawić bowiem dodatkowy wiersz z kodem samego języka “en” i wskazać, która strona ma im zostać wyświetlona.

Inny przykład: Działamy na terenie Szwajcarii, prowadzimy stronę w języku niemieckim i francuskim. Powinniśmy więc posiadać cztery wersje strony:

  • francuskojęzyczną dla Szwajcarii (hreflang=”fr-ch”)
  • niemieckojęzyczną dla Szwajcarii (hreflang=”de-ch”)
  • francuskojęzyczną ogólną (hreflang=”fr”)
  • niemieckojęzyczną ogólną (hreflang=”fr”)

Nie jesteśmy jednak ograniczeni w żaden sposób do języków urzędowych danego regionu. Języki i regiony możemy mieszać ze sobą w dowolny sposób. Jeżeli chcielibyśmy stworzyć podstronę dla użytkowników niemieckojęzycznych we Francji, wówczas mielibyśmy: hreflang=”de-fr”.

W niektórych przypadkach tag języka można rozszerzyć o subtagi, np. Extended Language Tag (klasyfikacja wg. ISO339-3) czy Script (ISO 15924). Taka sytuacja może mieć miejsce np. gdybyśmy mieli stronę w języku uzbeckim zapisanym alfabetem łacińskim. Przykład dobrze pokazuje, jak “często” będziemy się mogli spotkać z taką sytuacją. Na wszelki wypadek można sobie zapisać: “uz-Latn”.

Atrybut x-default

Początkowo wartość x-default w hreflangu miała odsyłać do wersji międzynarodowej strony. Obecnie jednak służy ona temu, by złapać użytkowników, dla których ani język, ani lokalizacja nie są zbieżne z innymi hreflangami. W przykładzie ze stroną z wersjami dla Wielkiej Brytanii i USA teoretycznie moglibyśmy zastąpić “ogólny, anglojęzyczny” URL linkiem z x-default, ponieważ oba i tak wskazywałyby ten sam adres. Lepiej jednak zachować oba, ponieważ link z kodem języka “en” ułatwi prawidłowe zrozumienie kodu crawlerom.

Hreflangi a adresy kanoniczne

Hreflangi nie zastępują w żaden sposób linków kanonicznych. Powinny się one uzupełniać. Ustawienie hreflanga na stronę niekanoniczną sprawi, że hreflang nie będzie działać. Powinniśmy dodać znacznik kanoniczny na każdej podstronie, prowadzący do niej samej. Zatem:

  1. Na stronie: http://mojastrona.com dodajemy:

<link rel=”cannonical” href=”http://mojastrona.com”>
<link rel=”alternate” hreflang=”pl” href=”http://mojastrona.com”>
<link rel=”alternate” hreflang=”en” href=”http://mojastrona.com/en”>
<link rel=”alternate” hreflang=”de” href=”http://mojastrona.com/de”>

  1. Na stronie http://mojastrona.com/en:

<link rel=”cannonical” href=”http://mojastrona.com/en”>
<link rel=”alternate” hreflang=”pl” href=”http://mojastrona.com”>
<link rel=”alternate” hreflang=”en” href=”http://mojastrona.com/en”>
<link rel=”alternate” hreflang=”de” href=”http://mojastrona.com/de”>

  1. A na stronie http://mojastrona.com/de:

<link rel=”cannonical” href=”http://mojastrona.com/de”>
<link rel=”alternate” hreflang=”pl” href=”http://mojastrona.com”>
<link rel=”alternate” hreflang=”en” href=”http://mojastrona.com/en”>
<link rel=”alternate” hreflang=”de” href=”http://mojastrona.com/de”>

Dodatkowo, jeżeli nasza strona posiada osobną wersję mobilną (obecnie np. AMP) i desktopową, potrzebne będą pewne modyfikacje. Na blogu iloveseo.net znajdziemy schemat ilustrujący, jak powinno wyglądać takie wdrożenie, opracowany na podstawie – a jakże by inaczej – twitterowych uwag Johna Muellera.

Zarządzanie hreflangami:

Gdy już uda nam się poprawnie wdrożyć hreflangi, zabawa się nie kończy. Aby nie zmarnować efektów pracy powinniśmy zorganizować proces, który pozwoli się upewnić, że wszystko funkcjonuje poprawnie. Pamiętać należy, że:

  1. gdy usuwamy jakąś podstronę wersji językowej, to powinniśmy także zaktualizować hreflangi pozostałych jej odpowiedników;
  2. jeżeli natomiast ustawiasz na jakiejś podstronie przekierowania, wówczas hreflangi należy ustawić na nowy adres.

Warto też pamiętać, że jeżeli kolejne wersje językowe danej podstrony opublikujemy po tym, jak Google zindeksuje wersję podstawową, na efekt dodania hreflangów musimy poczekać, aż jego crawlery ponownie odwiedzą pierwszą wersję. Dopóki to nie nastąpi, Google będzie widział tylko hreflang prowadzący z tłumaczenia do oryginału, ale już nie powrotny. W przypadku, gdy wdrażamy hreflangi na większej liczbie podstron (lub dla wielu wersji językowych), proces ponownego zindeksowania podstron z dodanymi hreflangami może trochę potrwać. Jak przyśpieszyć aktualizowanie indeksu wyszukiwarki, opisaliśmy we wpisie: Indeksowanie w Google.

Przydatne narzędzia

Aby zająć się tak ogromną działką przyda nam się trochę narzędzi. Jak już padło wcześniej, można się posiłkować Menadżerem Tagów, tak do implementacji, jak i sprawdzania hreflangów. Nie brak jednak narzędzi dedykowanych temu atrybutowi, bądź takich, które posiadają dla niego specjalne moduły.

Hreflang Tags Generator

Generator tagów hreflang

Przy wdrożeniu warto skorzystać z Generatora Tagów Hreflang. Obsługa jest prosta: podajemy adresy wszystkich wersji językowych naszej witryny, wybieramy z listy, w jakim są języku (język “default”, aby wygenerować wiersz z x-default) oraz opcjonalnie region. Zaznaczamy, czy chcemy kod do pliku HTML czy do sitemapy XML i klikamy “Generate the hreflang tags for these urls”. Dużym ułatwieniem jest możliwość wgrania do formularza do 50 adresów za pomocą pliku CSV.

Hreflang Sitemap Tool, Flang

Flang - generowanie hreflangów

No kto by się spodziewał… A jednak szewc chodzi w butach! 🙂

Nieco podobnym narzędziem jest Hreflang Sitemap Tool. Dzięki niemu również wygenerujemy sitemapę z poprawnymi hreflangami na bazie url-i zebranych w pliku .csv. W tym przypadku nie jesteśmy ograniczeni tylko do 50 adresów url, musimy jednak podać w zamian swój adres e-mail. Flang to również bardzo proste narzędzie, które pozwoli nam szybko sprawdzić, czy na danej stronie hreflangi działają poprawnie.


Hreflangi - polyang

Dla stron działających w oparciu o WordPressa możemy skorzystać z wtyczki Polylang, która umożliwi nam tłumaczenie wielu różnych elementów strony (łącznie z mediami, kategoriami, tagami, menu nawigacyjnym czy własnymi taksonomiami). Pozwoli również na wprowadzenie hreflangów w sekcji head. Wtyczka jest dostępna bezpłatnie w opcji z ograniczoną funkcjonalnością.

Hej! Chcesz dowiedzieć się więcej o WP? Przeczytaj lub pobierz za darmo nasz raport WordPress w 2021 roku.


Hreflangi - oncrawl

Jeżeli potrzebujemy natomiast czegoś bardziej zaawansowanego, warto się zainteresować narzędziem OnCrawl. Z jego pomocą będziemy mogli sprawdzać poprawność wdrożenia hreflangów łączących strony na różnych domenach, a także w przypadku wdrożenia tego atrybutu za pomocą nagłówków HTTP czy mapy XML. OnCrawl wykryje także często popełniane błędy w zapisie kodów poszczególnych języków i krajów i zweryfikuje, czy każda z podstron z posiada atrybut hreflang prowadzący do niej samej oraz czy któryś atrybut nie prowadzi do strony, która została wykluczona z indeksowania. A wszystko okraszone przejrzystym interfejsem. Do dyspozycji mamy 14-dniowy darmowy okres próbny, aby sprawdzić, czy chcemy na niego regularnie wydawać pieniądze.

Screaming Frog

Hreflangi - screaming frog

Dość przydatny w analizie poprawności wdrożenia hreflangów będzie Screaming Frog. W bezpłatnej wersji możemy przeskanować do 500 podstron. Program powie nam, na których podstronach brakuje atrybutu hreflang, gdzie brak jest x-default, do jakich podstron odsyłają istniejące hreflangi czy zidentyfikuje najczęściej popełniane błędy. Możemy także sprawdzić, do jakich podstron hreflangi odsyłają. W płatnej wersji nie tylko nie będzie nas ograniczać limit 500 podstron, lecz także program poradzi sobie z hreflangami wdrożonymi poprzez nagłówki HTTP czy sitemapę.

Hreflangi - sprawdzanie w screaming frogLista hreflangów - Screaming Frog

Na co zwrócić szczególną uwagę, czyli najczęstsze błędy:

1.        Błędne kody języka/regionu

Kody języka i regionu składają się tylko z dwóch liter. Często są to skróty wzięte od nazw państw. Łatwo tu o błędy, typu “eng” zamiast “en” lub “UK” zamiast “GB”, czy przestawienie kolejności. Poza tym funkcjonują także inne standardy w kodowaniu języków, np. Facebook posługuje się dość podobnym, z tym że zamiast dywiza (“-”) stosuje podkreślnik (“_”).

2.     Brak hreflanga odsyłającego do bieżącej strony

Skoro Google wszedł na jakąś podstronę i widzi na niej linki z atrybutem hreflang, to będzie wiedział, co jest grane. Kilka sekund pracy mniej – tylko co zrobić z tak zaoszczędzonym czasem?

Oficjalna dokumentacja wyszukiwarki mówi, że odnośnik do samej siebie jest niezbędnym elementem do poprawnej implementacji hreflangów.

3.     Hreflang ustawiony tylko dla jednej wersji strony

Skoro ustawiłem atrybut hreflang na podstronie, pamiętając o linku do bieżącej strony, to wszystko powinno działać poprawnie?

Tylko pod warunkiem, że na oznaczonej w ten sposób podstronie również umieściliśmy taki sam zestaw hreflangów. Biorąc pod uwagę, że możemy w ten sposób łączyć adresy z różnych domen, jest to dość proste, lecz sprytne zabezpieczenie, aby nikt nie podpiął się pod naszą podstronę.

4.     Używanie url-i, których indeksacja została zablokowana, lub które zwracają kod odpowiedzi serwera inny, niż 200

Podobnie jak wyżej – aby atrybut działał poprawnie, wyszukiwarka musi go zobaczyć na obu (wszystkich) powiązanych podstronach. A nie zobaczy, jeżeli nie będzie mogła wyświetlić zawartości jednej z podstron – nie ważne już czy z powodu błędów 4xx lub 5xx, czy z powodu niedopuszczenia GoogleBota do kodu strony.

5.     Hreflang tylko na stronie głównej

Jako przykład zastosowania hreflangów często podaje się adresy strony głównej i jej innych wersji językowych. Może to stwarzać wrażenie, że wystarczy dodać atrybut hreflang tylko na stronie głównej, a wyszukiwarka już sobie powiąże kolejne podstrony.

Hreflang wiąże konkretny adres url z jego odpowiednikami w innych językach i zawsze musi precyzyjnie prowadzić do ich adresów. Gdyby wystarczyło powiązać wersje językowe strony głównej, cóż… zdecydowanie sporo by to uprościło. Jednak nie wystarczy. Podobnie niepoprawne jest łączenie podstron, które nie posiadają własnej wersji alternatywnej ze stroną główną danego języka.

6.     Brak hreflangów dla stron na domenach krajowych.

Cóż, jeżeli mamy stronę na domenie z rozszerzeniem, na przykład, .com, wówczas hreflangi wydają się naturalną koniecznością. Niektórzy zdają się jednak zakładać, że w sytuacji, gdy tłumaczenia strony są umieszczone na domenach krajowych, (np. “.pl”, “.de”, “.fr”), wówczas wyszukiwarka się domyśli, jaką wersję językową wyświetlić w wynikach wyszukiwania.

Czasem to może zadziałać. Jeżeli jednak chcemy prowadzić poważny biznes, to nie będziemy powierzać owoców naszej pracy nadziei, że “robot się domyśli, o co nam chodzi”.

7.      Link kanoniczny prowadzący do domyślnej wersji strony

Skoro nasza strona ma kilka wersji językowych, to prawdopodobnie jedną z nich można uważać za główną vel domyślną. Na pewno dobrym pomysłem będzie ustawienie na nią rel=canonical z pozostałych wersji…

Jest to poważny błąd, który w krótkim czasie spowoduje, że pozostałe wersje językowe znikną z wyników wyszukiwania. Taka praktyka wynika z obawy przed zmorą SEO, czyli duplikacją treści. Jednak hreflang jest wystarczającą informacją dla wyszukiwarki, że powiązane adresy zawierają te same treści, z których powinna ona wyświetlić najbardziej odpowiednią dla użytkownika, biorąc pod uwagę jego ustawienia językowe i lokalizację.

Lista oczywiście nie jest zamknięta. Jeżeli nie masz pewności, czy jakaś praktyka w posługiwaniu się hreflangami jest poprawna, podziel się w komentarzu.


Hreflangi mają kilka zawiłości. Wystarczy jednak trzymać się kilku prostych zasad i sukcesywnie je wdrażać, aby osiągnąć poprawny efekt w wynikach wyszukiwania. Wybierz najbardziej adekwatną do twoich potrzeb metodę wdrożenia, z reguły jako znaczniki HTML lub sitemapa XML. Pamiętaj o kompletnym zestawie odnośników do każdej wersji podstrony i wzajemnych powiązaniach podstron, a także o linkach do bieżącego adresu.

Trzymaj się zawsze jak najmniejszej, potrzebnej liczby hreflangów. Dokładnie sprawdź poprawność kodów języków i regionów. Regularnie monitoruj prawidłowe funkcjonowanie atrybutu hreflang, w razie potrzeby wprowadzaj poprawki. Pamiętaj, że istnieją narzędzia, które pozwolą ci nad tym wszystkim zapanować.

Dzięki poprawnemu wdrożeniu tylko tego  jednego elementu optymalizacji strony, jakim jest atrybut hreflang, przebijesz 75% innych witryn na świecie. Chyba warto, nie uważasz?

Wojciech Urban SEO R&D Specialist
Wojciech Urban

SEO R&D Specialist

Specjalista R&D w dziedzinie SEO i analityki internetowej. Najlepiej czuje się w obszarze technicznego SEO, a jego głównym zadaniem jest zapewnienie, aby strony internetowe były zoptymalizowane pod kątem wyszukiwarek i osiągały wysokie pozycje w wynikach wyszukiwania.

Wojciech Urban SEO R&D Specialist
Wojciech Urban

SEO R&D Specialist

Specjalista R&D w dziedzinie SEO i analityki internetowej. Najlepiej czuje się w obszarze technicznego SEO, a jego głównym zadaniem jest zapewnienie, aby strony internetowe były zoptymalizowane pod kątem wyszukiwarek i osiągały wysokie pozycje w wynikach wyszukiwania.


  1. Czesć. Napisaliście „Skoro nasza strona ma kilka wersji językowych, to prawdopodobnie jedną z nich można uważać za główną vel domyślną. Na pewno dobrym pomysłem będzie ustawienie na nią rel=canonical z pozostałych wersji…” a wcześniej wskazujecie, że kanonikal na poszczególnych podstronach powinien wskazywać na tą samą stronę. Np. „Na stronie http://mojastrona.com/en:
    ” To jak w końcu? 😉

  2. Cześć,
    Pierwszy przytoczony fragment jest punktem w akapicie „najczęstsze błędy”. Omówione są tam najczęstsze pułapki 😉 W dalszej części tego akapitu możesz przeczytać:

    „Jest to poważny błąd, który w krótkim czasie spowoduje, że pozostałe wersje językowe znikną z wyników wyszukiwania.”

    Nie powinno się wskazywać kanonikalem innej wersji językowej strony. Hreflang jest wystarczającą informacją o tym, że dana strona jest tłumaczeniem innej.

Zostaw komentarz

Uzyskaj bezpłatną wycenę


Nagroda - Deloitte 2021 Nagroda - IPMA Nagroda - US Search Awards 2021 Nagroda - European eCommerce Awards 2022 Nagroda - Global Agency Awards 2022 Nagroda - European Search Awards 2022

Porozmawiajmy o Twoim SEO i SEM