If you sell to the UK, Ireland and the US from separate pages, Google can easily show your American prices to someone in Leeds or your sterling page to a shopper in Dublin. Hreflang tags tell Google which version of a page is meant for which language and country. This hreflang tags guide explains the codes to use for English-speaking markets, how x-default works, the three ways to implement it, and the mistakes that cause Google to ignore your annotations entirely.
Key takeaways
- Use en-gb for UK English pages, never en-uk, because UK is a reserved code with no effect in hreflang.
- Every version must list itself and all other versions, or Google may ignore annotations without return links.
- Pick one method from HTML tags, an XML sitemap or HTTP headers, and always use absolute https URLs.
- Give each version a self-referencing canonical rather than canonicalising regional pages to the UK version.
What hreflang does (and doesn't do)
Hreflang is an annotation that says "this page has equivalents in other languages or regions, and here they are". Google uses it to swap in the most suitable version for each searcher.
What it does:
- Helps Google show
/en-gb/to UK searchers and/en-us/to US searchers when both pages are relevant. - Tells Google that near-identical English pages for different countries are intentional regional variants, not careless duplicates.
What it doesn't do:
- It isn't a ranking boost. It chooses between your own pages; it doesn't make them rank higher than competitors.
- It doesn't redirect anyone. Visitors still land on whichever URL Google shows.
- It won't fix a page Google hasn't indexed, or a page whose canonical points elsewhere.
You only need hreflang if you have more than one version of the same content for different languages or regions. A UK-only business with one English site doesn't need it at all.
Choosing the right hreflang codes
Google's documentation is precise here. The value is a language code in ISO 639-1 format, optionally followed by a region in ISO 3166-1 Alpha 2 format.
| Audience | Code | Notes |
|---|---|---|
| English speakers in the UK | en-gb |
Not en-uk. |
| English speakers in Ireland | en-ie |
|
| English speakers in the US | en-us |
|
| English speakers anywhere | en |
Catch-all for English speakers not matched elsewhere. |
| Irish (Gaeilge) speakers | ga |
Language, not country. |
| Welsh speakers | cy |
Useful for bilingual Welsh sites. |
| French speakers in Canada | fr-ca |
|
| Fallback for everyone else | x-default |
No language code. |
The three most common code mistakes:
- Using
ukfor the United Kingdom. Google listsUKamong reserved codes that have no effect as a region, andukon its own is the language code for Ukrainian. Always usegb. - Using a country on its own. Google says a region code alone is invalid; its own example is
be, which means Belarusian, not Belgium. You can target a language without a country, but never a country without a language. - Using unsupported codes. Google says codes like
es-419(Latin American Spanish) aren't recognised, and reserved codes such asEUandUNdo nothing.
Codes are case-insensitive, so en-GB and en-gb both work.
Do I need separate en-gb and en-ie pages?
Only if the pages genuinely differ. If your Irish page shows euro prices, Irish delivery terms and an Irish phone number, it's a real variant and deserves its own hreflang entry. If the content is identical apart from the flag in the header, you probably don't need two versions: one en page will serve both markets.
Return links and x-default
Every page must list every version, including itself
Google's rule is that each version lists itself and all the others, and the set of annotations is identical on every version. If page A points to page B, page B must point back to page A. Google says annotations without these return links may be ignored or misinterpreted.
So for a site with UK, Irish and US versions plus a global fallback, all four pages carry the same block:
<link rel="alternate" hreflang="en-gb" href="https://www.example.com/uk/pricing/">
<link rel="alternate" hreflang="en-ie" href="https://www.example.com/ie/pricing/">
<link rel="alternate" hreflang="en-us" href="https://www.example.com/us/pricing/">
<link rel="alternate" hreflang="x-default" href="https://www.example.com/pricing/">
What x-default is for
x-default names the page for anyone whose language and location don't match any of your listed versions. Google suggests something like a language or country selector page, but a general international version is equally common. It's optional, but adding it prevents Google guessing which version to show an Australian or Canadian searcher.
URLs must be absolute
Google requires fully qualified URLs, including https://. Root-relative (/uk/pricing/) and protocol-relative (//www.example.com/uk/) URLs are not acceptable. Alternates can sit on different domains, so example.co.uk and example.ie can reference each other.
Three ways to implement hreflang
Google treats the three methods as equivalent. Pick one. Using two or three at once gives no benefit and makes it much more likely they drift out of sync.
1. HTML link tags
Put the block shown above inside the <head> of every page. Google says not to combine hreflang with other attributes such as media in the same tag. This is the easiest method for small sites, but it adds lines to every page and gets unwieldy with many languages.
2. XML sitemap
Best for larger sites, because it keeps the annotations out of page code. Declare the xhtml namespace, then give every URL its own <url> entry listing all variants, including itself:
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:xhtml="http://www.w3.org/1999/xhtml">
<url>
<loc>https://www.example.com/uk/pricing/</loc>
<xhtml:link rel="alternate" hreflang="en-gb" href="https://www.example.com/uk/pricing/"/>
<xhtml:link rel="alternate" hreflang="en-ie" href="https://www.example.com/ie/pricing/"/>
<xhtml:link rel="alternate" hreflang="en-us" href="https://www.example.com/us/pricing/"/>
<xhtml:link rel="alternate" hreflang="x-default" href="https://www.example.com/pricing/"/>
</url>
<url>
<loc>https://www.example.com/ie/pricing/</loc>
<!-- same four xhtml:link lines -->
</url>
<!-- and so on for /us/ and the x-default page -->
</urlset>
Our XML sitemap guide covers submitting and maintaining the sitemap itself.
3. HTTP Link header
Useful for non-HTML files such as PDFs. Send one Link header listing every variant, including the one requested:
Link: <https://www.example.com/uk/brochure.pdf>; rel="alternate"; hreflang="en-gb",
<https://www.example.com/ie/brochure.pdf>; rel="alternate"; hreflang="en-ie",
<https://www.example.com/us/brochure.pdf>; rel="alternate"; hreflang="en-us"
Hreflang on WordPress, Shopify and other platforms
- WordPress: multilingual plugins such as WPML, Polylang and TranslatePress generate hreflang automatically once you link translations together. Check the output after setup; plugin settings decide whether
x-defaultis added and which region codes are used. - Shopify: with Shopify Markets, themes output hreflang for your market and language subfolders (for example
/en-ie/) via thecontent_for_headerobject. You don't usually add tags by hand, but check that each market has distinct content worth targeting. - Wix and Squarespace: Wix Multilingual adds hreflang for translated sites. For other builders, check the platform's help pages, as support varies.
- Separate domains (
.co.uk,.ie,.com): usually easiest through a sitemap on each domain, or HTML tags in each site's shared template.
Common hreflang errors and how to fix them
| Error | What happens | Fix |
|---|---|---|
| Missing return links | Google ignores the pair | Make every version list the full, identical set |
en-uk or other invalid code |
Annotation ignored | Use en-gb |
| No self-reference | Set may be incomplete | Include the page itself in its own list |
| Hreflang points to a redirect or 404 | Alternate can't be used | Point only at final, indexable 200 URLs |
| Canonical points to another language version | Conflicting signals | Each version should have a self-referencing canonical |
Alternate page is noindex |
It can't be shown in results | Remove noindex or drop it from the set |
| Relative URLs | Annotation invalid | Use full https:// URLs |
| Same code used twice for different URLs | Google can't decide | One URL per language-region |
The canonical conflict deserves extra attention. Don't canonicalise your Irish and US pages to the UK page. A canonical says "this is a duplicate, index the other one", which defeats the purpose of hreflang. Our guide to canonical tags explains how they interact, and fixing duplicate content covers the wider problem.
If you're still deciding how to structure regional versions, subdomains vs subdirectories walks through the options.
Checking hreflang in Search Console and with our checker
Google retired the International Targeting report in Search Console in September 2022, and with it the dedicated hreflang error list. Google says it still supports and uses hreflang tags. Today you can:
- Use the Performance report filtered by country to see whether UK searchers are landing on your
/uk/pages and US searchers on/us/. - Use URL Inspection to confirm each version is indexed and that Google accepts its self-referencing canonical.
- Run an hreflang checker on each version.
Our free hreflang checker reads the hreflang tags in a page's HTML and checks that the codes are in a valid language-region format, looks for duplicate values, checks for a self-reference and an x-default, and fetches up to five of the alternate pages to confirm they link back. It checks HTML tags only, not sitemap or HTTP header annotations. You need a free account to run it. For a wider technical review, run a free website audit.
Frequently asked questions
Is it en-uk or en-gb in hreflang?
It's en-gb. Hreflang uses ISO 3166-1 country codes, where the United Kingdom is GB. Google lists UK as a reserved code that has no effect, so en-uk won't work.
Do I need hreflang for a UK-only website?
No. Hreflang is only for sites with multiple versions of the same content for different languages or regions. A single English site aimed at the UK doesn't need it.
What is x-default in hreflang?
x-default tells Google which page to show to searchers whose language or location doesn't match any version you've listed. It's often a country selector or a general international page.
Should I use HTML tags or a sitemap for hreflang?
Either works, and Google treats them as equivalent. HTML tags suit small sites; sitemaps suit large sites because they keep page code clean. Use only one method so they can't contradict each other.
Can hreflang point to a different domain?
Yes. Google allows alternate URLs on different domains, so example.co.uk, example.ie and example.com can reference each other, as long as every version links back to the others.
How long does hreflang take to work?
Google has to recrawl every version in the set before it can confirm the return links, so expect it to take at least as long as your normal recrawl cycle. Busy pages are recrawled sooner than rarely visited ones.
Sources
More guides for your industry
Free checklist (PDF)
Free manufacturers website checklist
29 practical checks for manufacturers: website speed and mobile, Google Business Profile and reviews, email security, booking and enquiry handling, and AI search visibility. Each one says why it matters, and many link to a free tool that checks it.
Written by the MakeItFlow team
We build the website audit these guides are based on. Every fact is checked against the primary sources listed above and this guide was last reviewed on 20 October 2026 . How we research and check
Check your own site in 30 seconds
Run a free audit covering speed, SEO, DNS, email authentication and security headers — and get a prioritised fix list.