{"id":11501,"date":"2023-06-14T06:29:36","date_gmt":"2023-06-14T03:29:36","guid":{"rendered":"https:\/\/www.stradiji.com\/?post_type=seo_sozlugu&#038;p=11501"},"modified":"2026-06-09T11:40:31","modified_gmt":"2026-06-09T08:40:31","slug":"what-is-hreflang","status":"publish","type":"seo_sozlugu","link":"https:\/\/www.stradiji.com\/en\/seo-glossary\/what-is-hreflang\/","title":{"rendered":"What is Hreflang?"},"content":{"rendered":"<p><span style=\"font-weight: 400;\">Hreflang is an HTML attribute that tells search engines which language or regional version of a page to serve to each user. If your site publishes the same content for, say, the US, the UK, and Germany, hreflang tags point Google to the right version based on the visitor&#8217;s language and location. Get them right and the correct page reaches the correct audience; get them wrong, and Google quietly ignores them.<\/span><\/p>\n<h2><strong>Why hreflang still trips up experienced teams<\/strong><\/h2>\n<p><span style=\"font-weight: 400;\">Hreflang looks simple in a single example and gets complicated fast at scale. On client audits, the same handful of errors show up again and again, and almost all of them cause Google to discard the tags entirely. The attribute does not &#8220;mostly work&#8221; when it is broken. It either reciprocates cleanly across every version or it fails. That all-or-nothing behavior is what makes hreflang worth understanding properly rather than copying a snippet and hoping.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">This is a glossary page, so we will give you the mechanics. But the reason we keep this entry on our site is practical: we run a multilingual site ourselves (this page exists in English and Turkish), so hreflang is not abstract for us. The errors below are the ones we have hit and fixed, not a generic checklist.<\/span><\/p>\n<h2><strong>How to implement hreflang: three methods<\/strong><\/h2>\n<p><span style=\"font-weight: 400;\">You can declare language and region versions in three places. Pick one and stay consistent.<\/span><\/p>\n<ol>\n<li><b> HTML head.<\/b><span style=\"font-weight: 400;\"> Add a <\/span><span style=\"font-weight: 400;\">link<\/span><span style=\"font-weight: 400;\"> element for each version in the page head: <\/span><span style=\"font-weight: 400;\">&lt;link rel=&#8221;alternate&#8221; hreflang=&#8221;en-gb&#8221; href=&#8221;https:\/\/example.com\/gb\/page&#8221; \/&gt;<\/span><\/li>\n<li><b> HTTP headers.<\/b><span style=\"font-weight: 400;\"> Useful for non-HTML files like PDFs, where you cannot add a head element.<\/span><\/li>\n<li><b> XML sitemap.<\/b><span style=\"font-weight: 400;\"> Best for large sites, because you manage all the mappings in one file instead of editing every page head.<\/span><\/li>\n<\/ol>\n<p><span style=\"font-weight: 400;\">The <\/span><span style=\"font-weight: 400;\">hreflang<\/span><span style=\"font-weight: 400;\"> value is a language code (en), optionally with a region code (en-gb, en-us, de). The <\/span><span style=\"font-weight: 400;\">href<\/span><span style=\"font-weight: 400;\"> must be the fully qualified URL, including <a href=\"https:\/\/www.stradiji.com\/en\/seo-glossary\/what-is-https\/\">https<\/a>.<\/span><\/p>\n<h2><strong>A complete example<\/strong><\/h2>\n<p><span style=\"font-weight: 400;\">&lt;link rel=&#8221;alternate&#8221; href=&#8221;https:\/\/example.com\/en\/page&#8221; hreflang=&#8221;en&#8221; \/&gt;<\/span><\/p>\n<p><span style=\"font-weight: 400;\">&lt;link rel=&#8221;alternate&#8221; href=&#8221;https:\/\/example.com\/gb\/page&#8221; hreflang=&#8221;en-gb&#8221; \/&gt;<\/span><\/p>\n<p><span style=\"font-weight: 400;\">&lt;link rel=&#8221;alternate&#8221; href=&#8221;https:\/\/example.com\/us\/page&#8221; hreflang=&#8221;en-us&#8221; \/&gt;<\/span><\/p>\n<p><span style=\"font-weight: 400;\">&lt;link rel=&#8221;alternate&#8221; href=&#8221;https:\/\/example.com\/de\/page&#8221; hreflang=&#8221;de&#8221; \/&gt;<\/span><\/p>\n<p><span style=\"font-weight: 400;\">&lt;link rel=&#8221;alternate&#8221; href=&#8221;https:\/\/example.com\/&#8221; hreflang=&#8221;x-default&#8221; \/&gt;<\/span><\/p>\n<p><span style=\"font-weight: 400;\">The <\/span><span style=\"font-weight: 400;\">x-default<\/span><span style=\"font-weight: 400;\"> value is the fallback for users whose language does not match any version. It is optional but strongly recommended, because without it Google has no instruction for the long tail of unmatched visitors.<\/span><\/p>\n<h2><strong>The three errors that break hreflang most often<\/strong><\/h2>\n<p><b>Missing return tags (non-reciprocal links).<\/b><span style=\"font-weight: 400;\"> Every version must link to itself and to all other versions, and every version must link back. If page A points to page B but B does not point to A, Google ignores the relationship. This is the single most common hreflang failure we see. The rule is mutual: the set only works when every page references the full set, itself included.<\/span><\/p>\n<p><b>Wrong language or country codes.<\/b><span style=\"font-weight: 400;\"> Use valid ISO codes. A frequent slip is using a country code where a language code belongs, for example <\/span><span style=\"font-weight: 400;\">en-uk<\/span><span style=\"font-weight: 400;\"> instead of the correct <\/span><span style=\"font-weight: 400;\">en-gb<\/span><span style=\"font-weight: 400;\"> (UK is not the ISO country code; GB is). Invalid codes are silently dropped.<\/span><\/p>\n<p><b>Relative or non-qualified URLs.<\/b><span style=\"font-weight: 400;\"> The <\/span><span style=\"font-weight: 400;\">href<\/span><span style=\"font-weight: 400;\"> must be absolute and include the protocol. Relative paths and missing https break the tag.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">A useful mental model: hreflang is a semantic triple Google reads as &#8220;this URL serves this language to this region.&#8221; If any of the three parts is malformed or unreciprocated, the statement is void.<\/span><\/p>\n<h2><strong>How we validate it<\/strong><\/h2>\n<p><span style=\"font-weight: 400;\">After implementing or auditing hreflang, validate before trusting it. Google Search Console&#8217;s International Targeting report flags missing return tags. A Screaming Frog crawl with the hreflang configuration enabled lists every mismatch across the site in one export, which is how we catch reciprocity errors at scale. For a single page, viewing source and confirming each alternate URL resolves and reciprocates is enough.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">For the wider strategy around multi-region sites, our colleague Emre Ercan&#8217;s guide on building an international SEO strategy covers the architecture decisions that sit above the tags themselves.<\/span><\/p>\n<h2><strong>FAQ<\/strong><\/h2>\n<p><b>What does hreflang do?<\/b><span style=\"font-weight: 400;\"> It tells search engines which language or regional version of a page to serve a given user, so a UK visitor sees the en-gb page and a German visitor sees the de page, even when the content is otherwise similar.<\/span><\/p>\n<p><b>Why is Google ignoring my hreflang tags?<\/b><span style=\"font-weight: 400;\"> Almost always because the tags are not reciprocal. Every language version must reference itself and every other version, and each must link back. Missing return tags, invalid ISO codes, and non-absolute URLs are the three usual causes.<\/span><\/p>\n<p><b>Is en-uk a valid hreflang value?<\/b><span style=\"font-weight: 400;\"> No. The correct code for the United Kingdom is <\/span><span style=\"font-weight: 400;\">en-gb<\/span><span style=\"font-weight: 400;\">, because GB is the ISO country code, not UK. Using <\/span><span style=\"font-weight: 400;\">en-uk<\/span><span style=\"font-weight: 400;\"> causes Google to drop the tag.<\/span><\/p>\n<p><b>Which hreflang method is best for a large site?<\/b><span style=\"font-weight: 400;\"> The XML sitemap method, because it centralizes every mapping in one file instead of requiring head edits on every page, which is far easier to maintain and audit at scale.<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Hreflang is an HTML attribute that tells search engines which language or regional version of a page to serve to each user. If your site publishes the same content for, say, the US, the UK, and Germany, hreflang tags point Google to the right version based on the visitor&#8217;s language and location. Get them right&#8230;<\/p>\n","protected":false},"author":1,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","format":"standard","meta":{"footnotes":""},"sozluk_kategori":[1277],"class_list":["post-11501","seo_sozlugu","type-seo_sozlugu","status-publish","format-standard","hentry","sozluk_kategori-h"],"_links":{"self":[{"href":"https:\/\/www.stradiji.com\/en\/wp-json\/wp\/v2\/seo_sozlugu\/11501","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.stradiji.com\/en\/wp-json\/wp\/v2\/seo_sozlugu"}],"about":[{"href":"https:\/\/www.stradiji.com\/en\/wp-json\/wp\/v2\/types\/seo_sozlugu"}],"author":[{"embeddable":true,"href":"https:\/\/www.stradiji.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.stradiji.com\/en\/wp-json\/wp\/v2\/comments?post=11501"}],"version-history":[{"count":2,"href":"https:\/\/www.stradiji.com\/en\/wp-json\/wp\/v2\/seo_sozlugu\/11501\/revisions"}],"predecessor-version":[{"id":15162,"href":"https:\/\/www.stradiji.com\/en\/wp-json\/wp\/v2\/seo_sozlugu\/11501\/revisions\/15162"}],"wp:attachment":[{"href":"https:\/\/www.stradiji.com\/en\/wp-json\/wp\/v2\/media?parent=11501"}],"wp:term":[{"taxonomy":"sozluk_kategori","embeddable":true,"href":"https:\/\/www.stradiji.com\/en\/wp-json\/wp\/v2\/sozluk_kategori?post=11501"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}